Click or drag to resize
StaMaTicket Vending Sample

The ticket vending sample demonstrates StaMa running on the Microsoft .NET Micro Framework emulator.

As with real ticket vending machines, the usage of the vending machine is intricate. The introduction text on the left side screenshot below explains how to use the buttons to fetch something out of the machine. Good luck!

Sample Ticket Vending Emulator
Figure 1: Startup and idle state of the ticket vending sample user interface

The central points of the sample are:

  • The button pressed events of the UP, DOWN, SELECT and RIGHT buttons trigger different transitions dependent on the state machine active state. UP and DOWN iterate through the selected list (either Destination or Coin), SELECT executes an action and RIGHT cancels.

  • In the implementation there is a single exit action ExitEmitRequired of the composite state EmitRequired which ensures that the vending machine delivers in any case either the inserted money or the product or the product and change pair.

  • The code for setting up the state machine structure and string constants for the states and transitions are generated from Microsoft Visio.

  • Timeouts are implemented through Microsoft.SPOT.DispatcherTimer instances.

Sample Ticket Vending State Machine
Figure 2: Ticket vending sample state machine