XPDS is a dataflow language for constructing real-time programs in a succint, high-level visual syntax. The computational model is based upon the Giotto language developed by the BeAR research group at Berkeley.
XPDS programs consist of tasks (modularised snippets of functional code), communication channels (similar to drivers in Giotto), and modes (which are sub-designs that share information/data).
XPDS was developed at the University of Johannesburg as part of a Masters investigation. We've proven it on a number of complete systems - control systems for helicopters, normal and delta fixed-wings, as well as some derivative work like camera control systems and ground station interfaces.
If you try it out drop me a line at sam@adcourses.co.za, I'd appreciate the feedback.
Features
- Uploaded the build to the bin folder. It contains the stable version that was used for the simulated helicopter attitude controller+groundstation, as well as the example designs. Let me know if it gives you any trouble!
- The current build contains a graphical dataflow designer for construction of XPDS programs
- XPDS programs can be executed in soft real-time (>50ms) in simulation mode using the .Net Framework
- Programs can be converted to Xenomai designs (using analogues of the tasks and communication channels) and run in hard real-time (tested at <500us for three synchronised, concurrent tasks)
- I've included the current task libraries which contains most of the useful functionality, like PID controllers
- I've also added the communication channels for TCP/IP, MicroStrain GX-3 accelerometers, general NMEA GPS's, Pololu servo controllers, general RS-232 comms, and a CRC-enhanced RS-232 channel for radio modules