|
|
Who are SPLat?
If you (or your clients) make products that could benefit from a smart electronic controller, then we may be just who you need to
give you a competitive advantage.
We specialize in "deeply embedded electronic controls" for Original Equipment Manufacturers.
Our controllers are extremely easy to program, with special features to support FSMs and multitasking.
We have a range of Rapid Prototyping models, and we do custom designs with amazingly quick NRE recovery.
|
|
|
|
Take for example a program for cash withdrawal from an ATM. The customer needs to
be guided through a series of steps that direct them to the final goal. Along the
way there are many things that can go wrong and need to be corrected, so the process
has "side branches". At each point the transaction is therefore in a unique "state".
The ATM's response to the various buttons varies dramatically according to the current state.
Using a Finite State machine design for such a programming task will cut it right down
to size and make it perfectly manageable.
There is also a bonus: Designing the program for an ATM is going to involve a team of
stake holders, who all need to know it is going to work properly, and reliably. With FSMs
there is a diagram, called a state diagram, which shows the full logic in a way that
even non-programmers can understand. So here the FSM has become not only a programming
tool but a powerful communications tools as well.
Some classes of puzzle lend themselves to solutions based on FSM concepts. This is where
the word "finite" comes in. Some puzzles have a relatively small number of
possible states, like the "Missionaries and Cannibals problem". Many many years
ago I wrote a solver for that puzzle using state concepts. Games like chess have a finite
number of states, but the number is so large that a state machine solution is not practical
in present-day memory sizes.
Nevertheless, just thinking about a puzzle in terms of states and state transitions can be
very helpful.
Click to see the missionaries and cannibals puzzle.
Games programs are a dead sitter for FSMs. In games you frequently have on-screen
characters whose behaviour must be relevant to the past history of the game. That
knowledge of past history is represented by the "state" of the character.
It is easy to represent the state of a character as a single number. When an event
occurs in the game, that number can be used to select the appropriate reaction or action.
In some cases the program's response to an event under one set of conditions
can be the total opposite of the response under different conditions. For
example, when you play a movie clip on your computer there is a button on
the player that can pause or resume the playback (totally opposite responses),
depending on what it is already doing.
This covers a huge range of applications. Anything that involves reacting
to inputs, sequencing outputs, and timing according to a set of rules can
be considered machine control. Examples are:
- Pallet wrapper
- Air conditioner
- Dish washer
- Aquarium
- Grey water system
- Trash compactor, garbage truck
- Autoclave
- Palletiser
- Dairy equipment
- Energy management system
- Conveyors
- Bottling and packaging equipment
In fact, I am not even going to try and explain the name, for fear of losing
you before we even get started. By the time this is over you will pretty much
have it figured out for yourself
Talking of of losing the audience, the formal, mathematical definition of an
FSM is such brain numbing, eye popping mumbo jumbo I feel certain that 9 out
of 10 electronic engineering and IT students switch off in the first 5 minutes
of the FSM lecture series, never to ever benefit from the power of FSMs in their
work.
This is not difficult stuff, it's just made to look difficult by the academics!
Click now if you want your brain numbed and your eyes popped!...