On May 7, 2013, at 08:43 , Curtis Dutton wrote:

> I have a preliminary WJ200 modbus inverter driver that I've written, based
> upon other modbus drivers I have seen from the VFD wiki page.
> 
> The source code so far is posted at https://github.com/OKComputers/wj200vfd

Awesome!

Some feedback:

You have two commits in a stand-alone repository, it would be easier for us to 
integrate with the main linuxcnc code if your commits were based on the 
linuxcnc git repo at git://git.linuxcnc.org/git/linuxcnc.git (master branch).  
This would also let you integrate with the linuxcnc build system instead of 
making your own (go.sh).

It looks like you have a .c file that provides interface functions to the 
wj200, a .comp to connect the device to HAL, plus a bunch of .c programs to 
test different parts of the C interface and perform specific actions with the 
wj200.  The .c utils probably don't belong in linuxcnc (their functionality 
should be exported to HAL by the .comp driver).  That would let you put the 
helper functions into the .comp file and simplify your build.

The .comp file belongs in src/hal/user_comps.


> How do I report an error from user_mainloop? If the driver crashes, or
> errors out, how do I get the hal to automatically ESTOP and fail.  The
> usermode comp does not seem to be able to report an error. The behavior so
> far, seems to be that the pins and parameters just dissapear from the hal
> if the driver exits for any reason.

That is correct.  It's not great, but that's the way it currently is.  The way 
to have a failure of the driver cause an estop is to export a 'heartbeat' pin, 
and connect that to a watchdog component, and have watchdog failure cause an 
estop.  This works mostly, but it's not currently well documented or widely 
used.


> Also, when logging information, does the hal watch stdout and stderr and
> pass information along somewhere? I'm not sure if there is a page somewhere
> that shows me how to do logging.


I think if you print to stdout/stderr, it'll show up in the main linuxcnc.print 
and linuxcnc.debug files, respectively.  These live in /tmp, and they have 
random characters appended to the name so they're a little awkward to find.  
Logging is another area of linuxcnc that's a but wonky still…  Looks like 
you're finding all our shortcomings!


-- 
Sebastian Kuzminsky


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to