Hide last authors
ssm 3.1 1 {{info title="DEADLINE 13.05."}}
2 At the end of this summer term a railway controller modelled in SCCharts should exist that is able to //control// the model railway installation. What exactly //control// means is up to you!
3
4 Define your project goals! Therefore...
5
6 * Define the desired capabilities of your controller.
7 * Devide your project in several subprojects. Organize the whole team in subteams and determine who is responsible for what.
8 * Define interfaces between the subteams and/or components the subteams are responsible of.
9 * Create a detailed roadmap with milestones for each subproject.
10
ssm 4.1 11 You are going to present your plan in a short presentation (latex beamer preferred) in the following week, 13.05. 12:30. The presentation should last 30 min.
ssm 3.1 12
13 Remember, you are going to present your controller at the end of the summer term! Getting this task done right is a very important step to succeed with your controller and this project!
14 {{/info}}
15
16
17
cbu 8.1 18 **The following goals were defined:**
19
20 * At least 5 trains can drive on the track at the same time
21 * A "cleanup" function for trains should drive all trains to their original position
22 * Our test scenarios should work (see Test-Scenarios)
23 * The trains slow down before braking
24 * All signals are working correctly
25 * Gates should close, when a train is coming, and open again afterwards
26
27 **Additionally the following optional goals were defined:**
28
29 * Deadlock avoidance: Trains should never run into a deadlock
30 * Cleanup function: All Trains which are still on the track travel to their next destination and afterwards they take the shortest way home
31 * Trains should drive slowly at the points
32
33
34
35
36
nbw 6.1 37 === Sample Pass for one Track ===
nbw 5.1 38
39 {{code linenumbers="true"}}
40 state Foo
41 --> Gleissegment with contact(Segment,0)
42 state Gleissegment {
43 entry / req(next_Segment);
44 entry / setSignal(prevSegment, red);
45
46 inital state Entry
47 --> Continue with contact(Segment,0) & perm_next_Segment
48 --> Slowdown with contact(Segment,0);
49
50 state Slowdown {
51 entry / setSpeed(Segment,SLOW);
52 } --> Waiting with contact(Segment,1)
53 --> Continue with perm_next_Segment;
54
55 state Waiting {
56 entry / setSpeed(Segment,BRAKE);
57 } --> Continue with perm_next_Segment;
58
59 state Continue {
60 entry / setSignal(Segment,green);
61 entry / setSpeed(Segment,full);
62 entry / setSpeed(nextSegment,full);
63 entry / setSignal(nextSegment, red);
64 entry / free(prevSegment)
65 entry / setSpeed(prevSegment,OFF);
66 }--> leave immediate;
67
68 final state leave;
69 }
70 {{/code}}
nbw 6.1 71
72 === Roadmap ===
73
74 {{code}}
75 13.5. Präsentation Annahme: Wir bekommen Interface für Module
76 27.5. Station-Station Controller + C-Interface
77 17.6. Integrationstests
78 24.6. Definierte Testfälle mit Stoppflag
79 01.7. Fahrpläne
80
81 KW 34 Abschlusspräsentation
82 KW 35 Exkursion Miniatur Wunderland
83 {{/code}}
nbw 7.1 84
85 == Interfaces ==
86
87 === C-Interface ===
88
89 klar
90
91 === Station-Station Module ===
92
93 Input: Zugnummer, Startgleis, Zielgleis, Cleanup, (Mutex Variablen?)
94 Output: "Echtes" Zielgleis (Ausweichgleis?)
95
96 == Organisation ==
97
98 Regelmäßiges Treffen Mittwochs 16:00