Finally, an inexpensive and lightweight tool seemingly perfectly designed for embedded software. I've used
OOSMOS in three medical devices thus far, one of which obtained FDA clearance and went on the market in April 2019.
I'm super excited about OOSMOS and will use it regularly in the future. So, I thought I would share my perspective with you.
OOSMOS is low cost and poses no threat to your budget. Even if you decide it's not the best tool for your project, give it a try. Unlike other lightweight state machine tools on the market:
And talk about lightweight, in my application OOSMOS itself compiled to about 2.2KB of executable Flash
code and only a dozen bytes of RAM, all the while supporting hierarchical state machines, the simultaneous
existence of object threads, state threads and non-blocking microsecond delays.
As the name indicates, the OOSMOS framework is object-oriented and uses
C, still the most widely used
language in embedded systems. The framework provides encapsulation better than C++, employing a typedef
of an incomplete type to expose only a pointer to the object to the outside world.
And, of course, OOSMOS includes a code generator. Since OOSMOS is object-oriented, the code associated with a given object and its state chart belongs in a single
C file. Other so-called lightweight modelers
and generators take full ownership of the generated files, forcing you to enter your code right in the modeler.
OOSMOS uses a simple tagging technique to wrap the generated code. You can then add your own code to the file
within your own editor.
OOSMOS even provides an expanding list of reusable classes. Yes, the reusable classes mean you don't need to write the code yourself. Give it a try and let me know what you think.