Re: [notes about] What's going on... ?
| Newsgroups | gmane.science.robotics.orocos.user |
|---|---|
| Organization | LAAS (CNRS) - Toulouse - France |
| Message-ID | <[email protected]> |
[email protected] writes: | | [... genom, execution engine ...] | We have also been discussing on and off about what exactly should be | the responsibility of the execution engine. We arrive at three | different aspects: | - logic control: i.e., some outputs are Boolean functions of some | inputs. This is the basic "PLC" functionality. I don't know where | you would put such kind of logic in the Genom framework. I don't really see what you mean here. Maybe an example? | - sequencing control, i.e., one activity (or set of activities) must | be finished before another one can start. This is "FSM/Petri" net | functionality. I guess this is a core functionality of the execution | engine. Right | - configuration control, i.e., make sure that an application can only | start if all components in the application are properly installed | and configured. I would rather see this as an external functionality (outside functional modules and execution engines). | Maybe event handling is also part of the execution engine's | responsibilities... Yes | So, this means (implicitly) that you let the execution engine use | "threads" as its basic elements. And what does it do with these basic | elements? Scheduling, I guess? If so, that means that you only see | the above-mentioned "sequencing control" as part of the execution | engine? Yes, sequencing and event handling as well as inter-component communication (data exchange). I think that when the OS provides scheduling we should use it: there's no need to stack redundant layers on top of the OS's ones. However, for a module that would run on a micro-controller without any underlying OS, then the execution engine could implement such a scheduling. As you can see the definition and the exact role of the execution engine is to fill the gap between the low level code (OS interface, hardware, ...) and the high level code which implements the algorithm you want to run. -- Anthony