Ah, the fog is clearing. I hadn't grasped the relationship between loadrt and addf. So basically loadrt initializes the module then addf connects it to a thread and runs it.
Thanks, Les Jeff Epler wrote: > On Mon, May 25, 2009 at 12:32:44AM +0100, Leslie Newell wrote: >> How do you specify which thread it is on? > > this is specified on the halcmd 'addf' line for the function and shown > by halcmd 'show thread'. > >> Is HAL event driven or a state machine? For instance if I change a pin >> that is connected to other modules, do those modules get notified >> immediately or does the change get processed on the next cycle? > > Realtime components are invoked in a specified order (the one shown by > halcmd show thread) at the specified interval (also shown by halcmd > show thread). If the execution order is first A then B, the B function > will see the outputs updated by A. The next time A is invoked (e.g., > after 25us has passed if it's in a BASE_PERIOD of 25000) it will see the > outputs updated by B. > > When functions in two different realtime threads, or some non-realtime > code is involved, then the ordering guarantee is only that they are not > re-ordered with respect to each other. > > The model of hal is discussed extensively in the first chapter of the HAL > manual, > http://www.linuxcnc.org/docs/2.3/HAL_User_Manual.pdf > > Jeff > ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
