discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Playing with gr-bokehgui


From: Kartik Patel
Subject: Re: [Discuss-gnuradio] Playing with gr-bokehgui
Date: Tue, 27 Feb 2018 14:41:50 -0600

Hello Marcus,

So, the Waterfall sink is a custom plot that the Bokeh does not provide by default. Because of this error and the warning, I think Bokeh v0.12.6 and the current recent version has significant API changes. I may need to look at it in detail. Is it fine if I look at it in this weekend?

For now, it would suggest you downgrade the Bokeh to version 0.12.6, and NodeJS version to v6.6? Those were the versions I tested everything with. Let me know if that solves the issue (temporarily). If you don't 

Thanks.

Regards,
Kartik Patel



On Tue, Feb 27, 2018 at 10:49 AM, Marcus D. Leech <address@hidden> wrote:
On 02/27/2018 02:13 AM, Kartik Patel wrote:
Hello Marcus, 

During my testing, I think, I set the time.sleep function by try and error. I didn't check for different PC. I will update it after testing it on my too slow AWS may be. 

Also, this resize issue is because Bokeh stopped the support of resize feature. If you can, use Bokeh V0.12.6, and tornado v4.4. I have to Port the code to recent Bokeh version. 

Thanks for the extensive verifications. I will try to update the basic suggestions this weekend probably.



On Tue, Feb 27, 2018, 1:06 AM Marcus D. Leech <address@hidden> wrote:
On 02/27/2018 01:25 AM, Marcus D. Leech wrote:
On 02/27/2018 12:15 AM, Kartik Patel wrote:
Hello Marcus,

Just for starters, make sure you have v3.7.12 of GNU Radio. In particular, your GR should contain the commit `3c989f9`. Also, make sure you select Bokeh GUI instead of QT GUI in Generate Options field in Options block. For Bokeh GUI we have a different `main()` function template that has necessary procedure to start the server and the stream.

Also, thank you very much for the suggestions about the vector plotter. In addition to the vector plotter, the Histogram plotter and BER curve are also in pipeline. I am too busy with several deadlines and projects. But I will try to incorporate the things as soon as possible (maybe in summer). Sorry for the loong promise! 

Let me know if you still have trouble working with the module.

Thanks.

Regards,
Kartik Patel
Thanks for the very-prompt response.  I know that you're probably very busy.

I managed to get to the point of GRC generating the correct startup code, with the "Bokeh GUI".  My repo was up-to-date, it's just that I hadn't actually built it.  Too many distractions...

But when I got to start now, I get:

Traceback (most recent call last):
  File "./top_block.py", line 153, in <module>
    main()
  File "./top_block.py", line 136, in main
    url = "" class="m_3568790170481352733m_-4013897295419667223m_1194434830328231585moz-txt-link-rfc2396E" href="http://localhost:" rel="noreferrer" target="_blank">"http://localhost:" + port + "/bokehgui")
  File "/usr/lib/python2.7/site-packages/bokeh/util/api.py", line 190, in wrapper
    return obj(*args, **kw)
  File "/usr/lib/python2.7/site-packages/bokeh/client/session.py", line 161, in push_session
    session.push(document)
  File "/usr/lib/python2.7/site-packages/bokeh/util/api.py", line 190, in wrapper
    return obj(*args, **kw)
  File "/usr/lib/python2.7/site-packages/bokeh/client/session.py", line 370, in push
    raise IOError("Cannot push session document because we failed to connect to the server (to start the server, try the 'bokeh serve' command)")
IOError: Cannot push session document because we failed to connect to the server (to start the server, try the 'bokeh serve' command)

I can get past this error by setting a longer "time.sleep()" in the generated "main" -- I guess it takes a bit for the server to come up to a state where it can accept connections.

But now:

 File "./top_block.py", line 140, in main
    tb = top_block_cls(doc)
  File "./top_block.py", line 65, in __init__
    legend_list = legend_list)
  File "/usr/local/lib64/python2.7/site-packages/bokehgui/freq_sink_f.py", line 63, in initialize
    active_scroll = 'ywheel_zoom', )
  File "/usr/lib/python2.7/site-packages/bokeh/plotting/figure.py", line 793, in figure
    return Figure(**kwargs)
  File "/usr/lib/python2.7/site-packages/bokeh/plotting/figure.py", line 149, in __init__
    tool_objs, tool_map = _process_tools_arg(self, opts.tools)
  File "/usr/lib/python2.7/site-packages/bokeh/plotting/helpers.py", line 530, in _process_tools_arg
    tool_obj = _tool_from_string(tool)
  File "/usr/lib/python2.7/site-packages/bokeh/plotting/helpers.py", line 467, in _tool_from_string
    raise ValueError("unexpected tool name '%s', %s tools are %s" % (name, text, nice_join(matches)))
ValueError: unexpected tool name 'resize', similar tools are reset



_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
OK, so, I removed the reference to 'resize' in the default tools list.  Now, it's complaining about nodejs:

address@hidden ~]$ ./top_block.py
Port is set to 5007

['bokeh', 'serve', '--port', '5007', '--allow-websocket-origin=*', '/usr/local/lib64/python2.7/site-packages/bokehgui/plots/bokehgui.py']
Port in main is 5007
Pid is 14986
2018-02-27 11:47:54,580 Starting Bokeh server version 0.12.14 (running on Tornado 4.5.3)
2018-02-27 11:47:54,583 Host wildcard '*' will allow connections originating from multiple (or possibly all) hostnames or IPs. Use non-wildcard values to restrict access explicitly
2018-02-27 11:47:54,594 Bokeh app running at: http://localhost:5007/bokehgui
2018-02-27 11:47:54,594 Starting Bokeh server with process id: 14986
2018-02-27 11:47:55,039 101 GET /bokehgui/ws?bokeh-protocol-version=1.0&bokeh-session-id=top_block (127.0.0.1) 2.38ms
2018-02-27 11:47:55,039 WebSocket connection opened
2018-02-27 11:47:55,045 ServerConnection created
INFO: Audio sink arch: alsa
/usr/lib/python2.7/site-packages/bokeh/client/session.py:316: UserWarning:

    !!!! PLEASE NOTE !!!!

The use of `session.loop_until_closed` and `push_session` to run Bokeh
application code outside a Bokeh server is **HIGHLY DISCOURAGED** for any real
use.

Running application code outside a Bokeh server with bokeh.client in this way
has (and always will have) several intrinsic drawbacks:

* Fast binary array transport is NOT available! Base64 fallback is much slower
* All network traffic is DOUBLED due to extra hop between client and server
* Server *and* client process must be running at ALL TIMES for callbacks to work
* App code run outside the Bokeh server is NOT SCALABLE behind a load balancer

The bokeh.client API is recommended to use ONLY for testing, or for customizing
individual sessions running in a full Bokeh server, before passing on to viewers.

For information about different ways of running apps in a Bokeh server, see:

    http://bokeh.pydata.org/en/latest/docs/user_guide/server.html

  warnings.warn(_BOKEH_CLIENT_APP_WARNING_FULL)
2018-02-27 11:48:02,506 Uncaught exception GET /bokehgui?bokeh-session-id=top_block (127.0.0.1)
HTTPServerRequest(protocol='http', host='localhost:5006', method='GET', uri='/bokehgui?bokeh-session-id=top_block', version='HTTP/1.1', remote_ip='127.0.0.1', headers={'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate', 'Host': 'localhost:5006', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0', 'Connection': 'keep-alive'})
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/tornado/web.py", line 1512, in _execute
    result = yield result
  File "/usr/lib64/python2.7/site-packages/tornado/gen.py", line 1055, in run
    value = future.result()
  File "/usr/lib64/python2.7/site-packages/tornado/concurrent.py", line 238, in result
    raise_exc_info(self._exc_info)
  File "/usr/lib64/python2.7/site-packages/tornado/gen.py", line 1069, in run
    yielded = self.gen.send(value)
  File "/usr/lib/python2.7/site-packages/bokeh/server/views/doc_handler.py", line 26, in get
    template_variables=session.document.template_variables)
  File "/usr/lib/python2.7/site-packages/bokeh/util/api.py", line 190, in wrapper
    return obj(*args, **kw)
  File "/usr/lib/python2.7/site-packages/bokeh/embed/server.py", line 231, in server_html_page_for_session
    return html_page_for_render_items(bundle, {}, render_items, title, template=template, template_variables=template_variables)
  File "/usr/lib/python2.7/site-packages/bokeh/util/api.py", line 190, in wrapper
    return obj(*args, **kw)
  File "/usr/lib/python2.7/site-packages/bokeh/embed/util.py", line 147, in html_page_for_render_items
    script = bundle_all_models()
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 514, in bundle_all_models
    _bundle_cache[key] = bundle = bundle_models(Model.model_class_reverse_map.values()) or ""
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 400, in bundle_models
    compiled = nodejs_compile(impl.code, lang=impl.lang, file=impl.file)
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 189, in nodejs_compile
    output = _run_nodejs([compilejs_script], dict(code=code, lang=lang, file=file))
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 168, in _run_nodejs
    return _run(_nodejs_path(), argv, input)
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 149, in _nodejs_path
    _nodejs = _detect_nodejs()
  File "/usr/lib/python2.7/site-packages/bokeh/util/compiler.py", line 141, in _detect_nodejs
    '("conda install nodejs" or follow https://nodejs.org/en/download/)')
RuntimeError: node.js v6.10.0 or higher is needed to allow compilation of custom models ("conda install nodejs" or follow https://nodejs.org/en/download/)
2018-02-27 11:48:02,510 500 GET /bokehgui?bokeh-session-id=top_block (127.0.0.1) 71.08ms




reply via email to

[Prev in Thread] Current Thread [Next in Thread]