What multitasking really means to you
SPLat Controller only $29.00.
The EC1 "EasyOne", a 32-bit SPLat board with USB and true multitasking is an easy way to learn and a cheap way to explore your project ideas.
Imagine a controller that lets you write 32 separate, completely independent programs, and have them running simultaneously!
That's what you get with all SPLat controllers, even the $29.00 EC1 "EasyOne". In fact, the EC1 and subsequent 32-bit controllers, such as the HMI430, give you 64 separate tasks! You can, quite literally, have one SPLat control your aquarium, your blinds and your garage door at the same time, with your smartphone as the user interface. In reality, any non-trivial single control application needs to be able to do several things at once — just your aquarium, for example, needs to cycle the pump, control the temperature, time the lights, and monitor pH and salinity, all at the same time as interacting with a user interface.
This "magic" comes courtesy of our MultiTrack™ multitasking programming system.
Even a single "machine" will usually need more than one thing to be happening at once. The diagram above is a "top level" diagram of the control system for an automatic grind and brew espresso machine.
Now, multitasking is not something new. Embedded controls professional have been using Real Time multitasking Operating Systems (RTOS) for years. However, they are difficult to use, and error prone. Billion dollar space launches have failed because of programming errors around RTOS usage. Very possibly (though we will never find out!) cars have suddenly run out of control on freeways, or suddenly stopped, due to programming errors with RTOS systems.
What's different, and unique, about the SPLat MultiTrack system is that it is an integral part of the SPLat language, deeply embedded in the SPLat Virtual Machine, and extremely easy to use. It is so easy to use that you only need to learn two instructions to master it. It is also safe, because its design precludes many of the mechanisms that can cause problems in other systems such as priority inversion. In all other systems, the multitasking is done by an RTOS that is distinctly separate from the language. For example, C/C++ not only have no intrinsic multitasking, they don't even directly support physical inputs and outputs. All that stuff comes from clunky bolt-ons. In SPLat multitasking is Programming 101, not mind-numbing PhD material!