Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | Both sides next revision | ||
| alvis:cases:ats [2011/04/10 16:22] marcin | alvis:cases:ats [2021/09/23 08:51] (current) | ||
|---|---|---|---|
| Line 45: | Line 45: | ||
| } | } | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | ====== Automatic Train Stop System - version 2 ====== | ||
| + | |||
| + | ===== Files ===== | ||
| + | |||
| + | * {{: | ||
| + | * {{: | ||
| + | |||
| + | ===== Model ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | < | ||
| + | environment { | ||
| + | in off [] (map (1000*) [1..]) signal; | ||
| + | out brake [] []; | ||
| + | } | ||
| + | |||
| + | agent ATS { | ||
| + | loop { | ||
| + | in wakeup; | ||
| + | out warning 1; | ||
| + | select { | ||
| + | alt (ready [in(off)]) { | ||
| + | in off; | ||
| + | out warning 0; | ||
| + | } | ||
| + | alt(delay 6000) { | ||
| + | out warning 2; | ||
| + | select { | ||
| + | alt (ready [in(off)]) { | ||
| + | in off; | ||
| + | out warning 0; | ||
| + | } | ||
| + | alt (delay 3000) { | ||
| + | out brake; | ||
| + | exit; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | agent Timer { | ||
| + | loop (every 6000) { | ||
| + | out tick; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | agent Console { | ||
| + | state ::Int = 0; | ||
| + | proc setState { in setState state ; } | ||
| + | } | ||
| </ | </ | ||
| + | |||
| + | |||