#linuxcnc-devel | Logs for 2014-02-08

[01:50:14] <Pekkis> Hi
[01:51:10] <Pekkis> could anyone help me configure stepper motor
[01:52:21] <Pekkis> I am beginner for this
[01:53:44] <awallin_> Pekkis: #linuxcnc might be a better channel
[01:55:36] <Pekkis> ok
[02:39:57] <awallin_> mhaberler: morning! I notice you're involved a bit with zeromq - I'm thinking of using it for control/logging in the lab..
[02:40:10] <mhaberler> yes
[02:40:35] <mhaberler> have you been through the basics yet?
[02:41:13] <awallin_> I did run two python scripts on different machines yesterday - I need to measure latency on monday
[02:41:26] <awallin_> do you know what the deal is with the crossroads.io fork?
[02:42:02] <awallin_> also, I'd like to have Arduino+Eth-shield's as nodes (publishers, subscirbers)..
[02:42:40] <mhaberler> it is dead, and nanomsg likely too
[02:43:17] <mhaberler> for embedded/non-linux have a look at picoTCP, which has beginning zmq support
[02:43:36] <mhaberler> although IMO arduino/ethernet is a waste of time and money if you can use a $35 bb
[02:44:03] <mhaberler> and have the real thing without jumping embedded hoops
[02:44:59] <awallin_> hm, yeah, but I use the arduinos for simple SPI transfers, and perhaps toggling GPIO pins, so OTOH a full linux-install is a bit overkill for that :)
[02:45:44] <mhaberler> you get repaid handsomely by reusing the higher layers, and GPIO/SPI etc aint a problem with BB's anyway
[02:47:19] <mhaberler> I am pretty close to have zmq/protobuf messaging integrated with HAL components as actors, see https://github.com/mhaberler/messagebus/wiki/Message-Bus-Overview
[02:47:30] <awallin_> for zeromq on arduino, I only found this experiment so far https://github.com/gcba/zeromq-arduino-example
[02:48:19] <mhaberler> depends on whether one wants to play with bare metal or wants quick tesults (I ticked #2)
[02:48:58] <mhaberler> if you'd consider applying 'early' what I already have, happy to spin out an early branch
[02:50:04] <awallin_> not at that stage yet... but your work is interesting
[02:50:32] <mhaberler> have you considered message serialisation formats?
[02:51:40] <awallin_> no.. I guess zermq just transports bytes, so one has to interpret them somehow - is there some One True open-source standard for this too?
[02:52:45] <mhaberler> consider third-from-last slide here, this already works including websocketsjson I/O: http://static.mah.priv.at/public/portable-realtime-API-talk/osadl-rtapi.pdf
[02:56:04] <mhaberler> actually this is more accurate since includes the Messagbus switch: http://static.mah.priv.at/public/pipeline.png
[02:58:10] <awallin_> that looks interesting. I haven't looked at protobuf before..
[02:58:17] <mhaberler> anyway, whatever route you go - I suggest working through the google protobuf tutorials to get the idea, then look at https://code.google.com/p/nanopb/ if you really need to go embedded bare metal
[02:58:53] <awallin_> ok, thanks
[02:59:42] <mhaberler> the nice part is that thanks to introspection being available in protobuf, you can do protobuf <-> json automatic translation with full type checking - Pavel did that stunt: https://github.com/shramov/pb2json
[03:01:15] <mhaberler> my dev branch already contains a websocket/zmq bridge which makes web clients talk via websockets/json and internally it's zmq/protobuf - so you pick the ui API
[03:04:10] <mhaberler> and for zeroMQ and protobuf you get basically every conceivable language binding stock
[03:05:59] <mhaberler> btw the reason I'm using nanopb is because RT is a similarly restricted environment like bare metal; and the other angle is - if you want to extend that pipeline to bare metal, there's still a route with picoTCP and nanoPB - still all end-to-end, no proxies which get in the way
[03:22:50] <awallin_> on page 5 of http://static.mah.priv.at/public/portable-realtime-API-talk/osadl-rtapi.pdf is the plan that all arrows on the userland/left side of the figure are zmq?
[03:24:26] <awallin_> all these networks/graphs of components like HAL and zmq would need a graphical network/graph editor/visualizer...
[03:30:15] <mhaberler> I use dia
[03:30:27] <mhaberler> let me see..
[03:31:30] <mhaberler> no, that doesnt make sense in every case in this diagram, for instance the servo loop are hal pins linked to signals as usual
[03:32:15] <mhaberler> in the non-RT part: yes
[03:33:00] <mhaberler> in the motion/tp region: that's where Messagebus will provide a generic api, it uses zmq internally and externally, so there: yes, too
[03:34:30] <mhaberler> for UI/HAL interaction, see this: http://static.mah.priv.at/public/wip/html/wip/halrcomp.html
[03:35:01] <mhaberler> this already drives this - remotely: https://www.youtube.com/watch?v=vBynH_5KyPQ
[03:36:08] <awallin_> remote-HAL latency will I guess depend on network hardware/routers etc
[03:36:40] <mhaberler> or on whatever gladevcp happens to do
[03:37:06] <mhaberler> this is for situations where you can get away with soft RT - like userland halcomps or HAL UI's
[03:37:06] <awallin_> right.
[03:40:15] <mhaberler> see also thiss: http://static.mah.priv.at/public/wip/html/wip/rstatus.html - similar trick, but strictly observer (HALrcomp is basically a tunnel between or into a HALcomp and r/w in principle, whereas STP is a generic status observer and r/o, including but not limited to HAL (like task, interp status etc)
[03:42:12] <mhaberler> this stuff rests on two HAL features which arent mainlined yet: HAL ringbuffers and HAL groups (for the latter see the example in the rstatus doc)
[03:42:26] <awallin_> thanks for the chat - gotta go catch you later
[03:42:30] <mhaberler> sure, cu
[12:14:34] <norbert> If I select a gcode path in glade_gremlin, the coresponding line will be highlighted. How may I get the coresponding line number of the code? Axis is doing that, but I could not find out how: I want to include that option in gscreen.
[12:34:03] <norbert> bbl
[13:48:16] <cmorley> norbert: look in gremlin.py: get_highlight_line() this show be exposed to hal_gremlin using the same call
[13:48:26] <cmorley> Though I have not tried it.
[13:49:47] <cmorley> gremlin's select_fire() calls self.select(x,y) which calls glcanon.py 's select(self,x,y) which actually sets this
[13:51:13] <cmorley> Well .. actually which calls glcanon.py 's set_highlight_line()
[13:52:34] <cmorley> To make this work nicely with hal_sourceview widget, probably should have gremlin send the highlight line number as a gobject signal
[13:53:00] <cmorley> so that HAL_sourceview doesn't have to poll
[14:00:37] <cmorley> or I mean hal_gremlin should send the highlight line as a gobject signal, since it already is connected to Gstat for other reasons
[14:00:50] <cmorley> Hope that helps
[14:18:26] <KGB-linuxcnc> 03Michael Haberler 05master 56e1b9f 06linuxcnc 10docs/src/remap/structure.txt docs/remap: document restrictions on yield, recursive interpreter invocation * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=56e1b9f
[15:58:51] <norbert> cmorley: I tried get_highlight_line, but it return None in any case, there is no update after __init.
[17:34:31] <cmorley> ahh yes I see why...
[18:18:43] <cmorley> I'll push a fix for this
[18:24:45] <KGB-linuxcnc> 03Dewey Garrett 05master 00e7e13 06linuxcnc 10src/emc/ini/iniaxis.cc iniaxis.cc: fix uninitialized vars * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=00e7e13
[20:52:00] <seb_kuzminsky> :q
[20:53:28] <micges> seb_kuzminsky: hi
[20:54:07] <micges> seb_kuzminsky: are you running rtai 4.0 with 12.04?
[21:23:45] <KGB-linuxcnc> 03Chris Morley 05master 0b32984 06linuxcnc 10lib/python/gladevcp/hal_gremlin.py 10lib/python/rs274/glcanon.py gladevcp -fix hal_gremlin's highlight line behaivor * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=0b32984
[21:23:45] <KGB-linuxcnc> 03Chris Morley 05master 093e110 06linuxcnc 10share/gscreen/skins/gaxis/gaxis.glade 10share/gscreen/skins/gaxis/gaxis_handler.py gscreen -add gcode highlight-by-graphics-click to Gaxis * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=093e110
[21:48:21] <KGB-linuxcnc> 03Chris Morley 05pncconf_GTK_builder 529e04d 06linuxcnc 10(32 files in 3 dirs) pncconf -GTK BUILDER refactor * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=529e04d
[22:01:47] <cmorley> norbert: pull from master and try get_highlight_line again or use new GLADE signal from hal_gremlin - line-clicked
[22:02:38] <cmorley> Next you'll want clicking gcode line to highlight hal_gremlin lines.... :)