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 ; } | ||
+ | } | ||
</ | </ | ||
+ | |||
+ |