Show last authors
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
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.
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
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
37 === Sample Pass for one Track ===
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}}
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}}
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