There appear to be some problems with "python module"s in Windows GRC too.
I get an error that the editor can't find a particular file.  If I add the
python block in GRC, then have it generate code and add the code to the
corresponding Python file from an external editor - I can then run the top
level Python file from a command prompt and it works!  (Appears to be using
portaudio).

If I try to execute from GRC it replaces my Python source with a file
containing the line:

   # this module will be imported in the into your flowgraph

and will not run anymore.

Thanks for your help, but I agree that it is time to give up.

Tony


On Mon, May 9, 2016 at 3:45 AM, Marcus Müller <marcus.muel...@ettus.com>
wrote:

> Hi Tony,
>
> > The lack of path separators is troubling.
>
> I couldn't agree more. But since that just means that the separator get's
> "eaten" somewhere, and we don't know whether that happens when generating
> these paths or just when printing, I'm still full of hope…
>
> The fact these directories don't exist on my machine (even with
> appropriate separators) is more troubling.
>
> … my hopes being crushed.
>
> > Is there a way to override the default values?
>
> Yes, but not at runtime, I'm afraid: The "first" directory a program looks
> into for configuration has to be hard-coded somewhere, and in the case of
> GNU Radio, it's specified via the GR_PREFSDIR CMake Variable when building
> GNU Radio.
> That happens in the gnuradio/gnuradio/lib/constants.cc.in file, where
> CMake expands the @GR_PREFSDIR@ macro.  The actual setting of that
> variable happens in the main gnuradio/CMakeLists.txt, line 165
>
>    set(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/${GR_CONF_DIR}" CACHE PATH "System 
> configuration directory" FORCE)
>
> so we learn that CMAKE_INSTALL_PREFIX was set to
> C:gr-buildsrc-stage3staged_install, plus a few \, probably :D
>
> So that's essentially where I'd have to give up: That code was put there
> during build, and I can't change it later.
>
> What I'll probably do is a bug report about GNU Radio, upon finding the
> prefsdir path not to be a directory (in your case: not to exist at all)
> giving up and not even trying to read any other paths. I might fix that by
> allowing users to specify these directories as environment variables; that
> would make sense to me, but as it kind of changes "logical" API, I'd like
> to discuss this with a maintainer.
>
> I think I might come up with a workaround, however. Again, I haven't tried
> this, especially not under windows, where the whole "launch an editor and
> edit that file" aspect might fail, but *shrug*:
>
> In your GRC flow graph, add a "python module".
> There, without indenting, add the following code
>
> from gnuradio import gr
> p = gr.prefs()
> p.set_string("audio","audio_module","portaudio")
>
> and close the editor. Basically, you're setting the configuration option
> manually for the meantime.
>
> Best regards,
> Marcus
>
>
> On 09.05.2016 04:38, Tony Richardson wrote:
>
> The command:
>
>     gnuradio-config-info --prefsdir --sysconfdir
>
> returns
>
>       C:gr-buildsrc-stage3staged_installReleaseetc
>       C:gr-buildsrc-stage3staged_installReleaseetcgnuradioconf.d
>
> The lack of path separators is troubling.  The fact these directories
> don't exist on my machine (even with appropriate separators) is more
> troubling.  I assume this is why config files in the installed etc
> directory are not being read.  After using the Windows installer, I have
> what appear to be corresponding directories here:
>
>       C:\Program Files\GNURadio-3.7\etc
>       C:\Program Files\GNURadio-3.7\etc\gnuradio\conf.d
>
> I have a HOME environment variable defined in Windows, so I think GRC is
> looking in $HOME/.gnuradio for a config.conf file.  Running GRC actually
> creates a $HOME/.gnuradio directory and places some configuration files in
> that directory, but doesn't appear to read from it.  I also tried putting a
> config.conf file in the APPDATA/.gnuradio directory but it isn't being read
> either.
>
> Is there a way to override the default values?
>
> Tony Richardson
>
> On Sat, May 7, 2016 at 9:05 AM, Marcus Müller <marcus.muel...@ettus.com>
> wrote:
>
>> Sooo gnuradio-runtime/lib/prefs.cc:
>>
>>  77     // Find if there is a ~/.gnuradio/config.conf file and add this to
>>  78     // the end of the file list to override any preferences in the
>>  79     // installed path config files.
>>  80     fs::path homedir = fs::path(gr::appdata_path());
>>  81     homedir = homedir/".gnuradio/config.conf";
>>  82     if(fs::exists(homedir)) {
>>  83       fnames.push_back(homedir.string());
>>  84     }
>>  85
>>
>>
>> This means that things in Users/youruser/Application
>> Data/.gnuradio/config.conf *should* be read.
>>
>> I also tried changing the canvas size in the "c:/Program
>> Files/GNURadio-3.7/etc/gnuradio/conf.d/grc.conf" file, which I think is
>> supposed to be the system-wide file, but changes there have no effect
>> either.
>>
>> Uh-oh.
>>
>> Can you execute a
>>
>> gnuradio-config-info --prefsdir --sysconfdir
>>
>> please?
>>
>> Back to topic:
>>
>> Is there a way for me to figure out what configuration files are being
>> read?
>>
>>
>> I'm really not experienced Windows debugger; under Unixes, I'd do run
>> like (to trace all "stat" calls, ie. when the code above checks for the
>> existence of config.conf)
>>
>> strace -e stat  -o '|grep config.conf'  gnuradio-config-info -v
>>
>>
>> but I really don't know whether that even works in theory under Windows.
>>
>> I'm a bit worried about this line:
>>
>>  81     homedir = homedir/".gnuradio/config.conf";
>>
>> Because it implicitly assumes that the OS considers "/" as path separator
>> between .gnuradio and config.conf. Boost might or might not fix that under
>> windows. But it's probably OK.
>>
>> Best regards,
>> Marcus
>>
>>
>> On 07.05.2016 15:41, Marcus Müller wrote:
>>
>> The * is actually just an artifact of how that list is generated; it's
>> written by CMake when gathering the enabled audio engines; When running
>> cmake, you'll see something like
>>
>> -- ######################################################
>> -- # Gnuradio enabled components
>> -- ######################################################
>> --   * python-support
>> --   * testing-support
>> [..]
>> --   * gr-atsc
>> --   * gr-audio
>> --   * * alsa
>> --   * * oss
>> --   * * portaudio
>> --   * gr-channels
>> [...]
>>
>>
>> And our beautiful hack to make alsa, oss, portaudio ... look like bullet
>> points under gr-audio is actually to get these the name "* alsa", "* oss"
>> and so on :D. That doesn't break automatic "grep-ability" to let scripts
>> check for any of these, and if you had something like
>>
>> gnuradio-config-info --enabled-components|sed s'/;/\n/g'
>>
>> it'd give you the "original" tree-ish looking structure.
>>
>> so, for now, that's totally ok.
>>
>> Is there a way for me to figure out what configuration files are being
>> read?
>>
>> Hm, logging. Waaaaitasec. I'll have to look this up; will do later.
>>
>> Best regards,
>> Marcus
>>
>>
>> On 06.05.2016 14:55, Tony Richardson wrote:
>>
>> I think I'm making progress with your help Marcus.
>>
>> The output of "gnuradio-config-info --enabled-components" is:
>>
>> python-support;testing-support;volk;doxygen;sphinx;gnuradio-runtime;gr-ctrlport;gr-blocks;gnuradio-companion;gr-fec;gr-fft;gr-filter;gr-analog;gr-digital;gr-dtv;gr-atsc;gr-audio;*
>> portaudio;*
>> windows;gr-channels;gr-noaa;gr-pager;gr-qtgui;gr-trellis;gr-uhd;gr-utils;gr-video-sdl;gr-vocoder;gr-fcd;gr-wavelet;gr-wxgui;gr-zeromq
>>
>> What does the '*' before portaudio mean?
>>
>> I think you are also correct in that it appears my config.conf file is
>> not being read.  GRC created a ~/.gnuradio directory and populated it with
>> a grc.conf file and prefs directory.  I created a config.conf file in the
>> same directory.  Adding the [grc] stanza seems to have no effect.  I also
>> tried changing the canvas size in the "c:/Program
>> Files/GNURadio-3.7/etc/gnuradio/conf.d/grc.conf" file, which I think is
>> supposed to be the system-wide file, but changes there have no effect
>> either.  Is there a way for me to figure out what configuration files are
>> being read?
>>
>> Tony Richardson
>>
>>
>>
>>
>> On Fri, May 6, 2016 at 3:14 AM, Marcus Müller <
>> <marcus.muel...@ettus.com>marcus.muel...@ettus.com> wrote:
>>
>>> Huh, can you verify portaudio is in the output of "gnuradio-config-info
>>> --enabled-components" ?
>>>
>>> Can you add another section,
>>>
>>>
>>> [audio_portaudio]
>>> verbose = true
>>>
>>> Just to verify: you're using the "[..]" section headers correctly, and
>>> the rest of the conf file looks ungarbled, right?
>>>
>>> We might be encountering a case where the config file simply isn't read;
>>> as a quick test:
>>> Close all gnuradio-companions, add
>>>
>>> [grc]
>>> canvas_default_size = 100,100
>>>
>>> to that file, and open up the companion – your canvas size should now be
>>> 100x100px. Is that the case?
>>>
>>> Best regards,
>>> Marcus
>>>
>>>
>>> On 06.05.2016 00:20, Tony Richardson wrote:
>>>
>>> Thanks, but I've tried that (setting "audio_module = portaudio").  It
>>> doesn't appear to have the desired effect.
>>>
>>> Tony
>>>
>>> On Thu, May 5, 2016 at 4:26 PM, Marcus Müller <
>>> <marcus.muel...@ettus.com>marcus.muel...@ettus.com> wrote:
>>>
>>>> Sorry, not currently running any Windows VM, but in the spirit of
>>>> giving you the info you need as fast as possible:
>>>>
>>>> Quick lecture of the audio sink/source factory tells me that under
>>>> windows, by default the windows audio architecture is used.
>>>> So to use portaudio instead, you need to have a GNU Radio config file
>>>> (under unixoids, that's ~/.gnuradio/config.conf), and add
>>>>
>>>> [audio]
>>>> audio_module= portaudio
>>>>
>>>>
>>>> Best regards,
>>>> Marcus
>>>>
>>>> On 05.05.2016 22:59, Tony Richardson wrote:
>>>>
>>>> I'm using the pre-built Win64 binary of GNURadio listed on the
>>>> gnuradio.org site.  The portaudio library was included as part of the
>>>> Win64 build, but I can't seem to figure out how to use it instead of the
>>>> default windows audio.  (I want an audio source and the windows audio
>>>> source does not work.)  I've tried putting "audio_module = portaudio" (and
>>>> "audio_module = audio_portaudio") in the config.conf file, but when I run a
>>>> simple flowgraph that includes an audio source and sink, I see:
>>>>
>>>> INFO: Audio source arch: windows
>>>> INFO: Audio sink arch: windows
>>>>
>>>> in the console and there is no sound.  I assume the lines above are
>>>> telling me that the windows audio devices are being used and not the
>>>> desired portaudio devices.  I have tried leaving the device name in the
>>>> audio source blank as well as trying "0" and "hw:0,0", but still see the
>>>> messages above.  Can someone tell me how to configure audio for portaudio
>>>> or is it just not supported?
>>>>
>>>> Tony Richardson
>>>>
>>>>
>>>> _______________________________________________
>>>> Discuss-gnuradio mailing 
>>>> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Discuss-gnuradio mailing list
>>>> Discuss-gnuradio@gnu.org
>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to