Structure
Structure
- Coffeeblock«Block»edit
- Coffee Beansblock«Block»edit
- Coffee Consumeractor«Actor»edit
- Coffee Machineblock«Block»edit
- Coffee Machine Productionblock«Block»edit
- Coffee Machine Systemblock«Block»edit
- Isolate Power (RCD trip)blockedit
- Maintenance Operatoractor«Actor»edit
- Make Coffeeusecase«UseCase»edit
- Refill Coffee Beansusecase«UseCase»edit
- Refill Water Tankusecase«UseCase»edit
- Remove Wasteusecase«UseCase»edit
- Select Coffeeusecase«UseCase»edit
- Waterblock«Block»edit
- Water Heating Analysis Contextblock«Block»edit
- Boiler Observerblock«Block»edit
- Water Inletblock«InterfaceBlock»edit
- Water Temperature Constraintblock«ConstraintBlock»edit
Signals
- Command
- Power
- Coffee Selection
- Brew Complete
- PowerOff
- PowerOn
- Selection Made
- Short Detected
- Target Time Reached
State and activity
State machine: Coffee Machine STM
Region 1
- Initialisingentry: Initialise System
- Idleentry: Check Systemdo: Select Coffee
- Brewingdo: Brew Coffee
Region 2
- Heating On
- Heating Off
Region 3
- Off
- On
Transitions
- Initialising → Idle [after(30s)]
- Idle → Brewing [signal:Selection Made]
- Brewing → Idle [signal:Brew Complete /Clean System]
- Heating On → Heating Off [after(60s)]
- Heating Off → Heating On [after(60s)]
- Off → On [signal:PowerOn]
- On → Off [signal:PowerOff]
- On → Off [signal:Short Detected /Isolate Power (RCD trip)]
Activities
Boiler
- InitialNode
- ForkNode
- AcceptEventAction — Target Time Reached
- DecisionNode
- MergeNode
- OpaqueAction
- OpaqueAction
Clean System
Initialise System
Check System
Select Coffee
Brew Coffee
- InitialNode
- ActivityFinalNode
- AcceptEventAction
- ForkNode
- OpaqueAction — Heat Water
- OpaqueAction — Grind Beans
- OpaqueAction — Extract Coffee
- OpaqueAction — Dispense Coffee
Heat Water
- ActivityParameterNode — input
- ActivityParameterNode — output
- InitialNode
- OpaqueAction — Open Valve
- OpaqueAction — Close Valve
- FlowFinalNode
- OpaqueAction — Read Coffee Size
- MergeNode — Merge 1
- OpaqueAction — Measure Water
- DecisionNode — Correct Volume?
- ForkNode — Fork 2
- OpaqueAction — Pump Water
- ForkNode — Fork 1
- OpaqueAction — Stop Pump
- FlowFinalNode
- MergeNode — Merge 2
- OpaqueAction — Heat Water
- DecisionNode — Temp OK?
Boiler Observer
- InitialNode
- MergeNode
- OpaqueAction
- DecisionNode
- SendSignalAction — Target Time Reached