How demiralp/umtsm-examples-c works
UMTSM C Examples is a collection of generated-C state-machine applications, rather than one combined product. The user-facing workflow varies by example: provide inputs or events, let the modeled machine process them, and observe a result or simulated device state. The README documents the capabilities and variants; sampled entry points confirm initialization, wiring, and start-up for several applications. Links within unsampled state-machine behavior are omitted rather than inferred.
Main entry points: main/main.c Crossroad Runner · main/main.c Door Runner · main/main.c Keypress Runner · main/main.c Stopwatch Runner
Components 29
Math and Games
- Paroot Solver
01-paroot - Number Guess
02-numberguess
Interactive Apps
- Keypress Tracker
03-keypress/src/keypress - Key Event Generator
03-keypress/src/keypress - Calculator
04-calculator/src/calculator - Calculator Keypad
04-calculator/src/calculator - Calculator Display
04-calculator/src/calculator - Stopwatch
06-timewatch/src/timewatch - Stopwatch Commands
06-timewatch/src/command
Device Simulations
- Four-Lane Junction
05-crossroad/src/crossroad - Traffic Lanes
05-crossroad/src/lane - Traffic Lights
05-crossroad/src/trafficlight - Pedestrian Lights
05-crossroad/src/pedestrian-light - Crossroad Monitor
05-crossroad/src/monitor - Execution Director
05-crossroad/src/execution-director - Crossroad Dashboard
05-crossroad/src/dashboard - Door Controller
07-door/case-3/src/door - Door Button
07-door/case-3/src/button - Door Engine
07-door/case-3/src/engine - End Sensors
07-door/case-3/src/sensor_open_end - Door Dashboard
07-door/case-3/src/dashboard
Application Wiring
- Paroot Runner
01-paroot/case-1/src/main/main.c - Guess Runner
02-numberguess/case-3/src/main/main.c - Keypress Runner
03-keypress/src/main/main.c - Calculator Runner
04-calculator/src/main/main.c - Crossroad Runner
05-crossroad/src/main/main.c - Stopwatch Runner
06-timewatch/src/main/main.c - Door Runner
07-door/case-3/src/main/main.c
Other components
- User
Connections 29
- User → Paroot Runner: runs example
- Paroot Runner → Paroot Solver: starts solver
- User → Guess Runner: plays game
- Guess Runner → Number Guess: starts; sends events
- User → Keypress Runner: presses keys
- Keypress Runner → Key Event Generator: starts generator
- Keypress Runner → Keypress Tracker: starts tracker
- Keypress Runner → Key Event Generator: wires tracker
- User → Calculator Runner: uses calculator
- Calculator Runner → Calculator: starts machine
- Calculator Runner → Calculator Keypad: wires calculator
- User → Crossroad Runner: views simulation
- Crossroad Runner → Four-Lane Junction: starts junction
- Crossroad Runner → Traffic Lanes: configures lanes
- Crossroad Runner → Traffic Lights: configures lights
- Crossroad Runner → Pedestrian Lights: configures crossings
- Crossroad Runner → Crossroad Monitor: wires monitor
- Crossroad Runner → Execution Director: wires director
- Crossroad Runner → Crossroad Dashboard: wires dashboard
- User → Stopwatch Runner: uses stopwatch
- Stopwatch Runner → Stopwatch: starts timer
- Stopwatch Runner → Stopwatch Commands: starts commands
- Stopwatch Runner → Stopwatch Commands: attaches timer
- User → Door Runner: operates door
- Door Runner → Door Controller: starts controller
- Door Runner → Door Button: connects door
- Door Runner → Door Engine: connects door
- Door Runner → End Sensors: connects door
- Door Runner → Door Dashboard: wires dashboard