Wiki source code of Project goals
Version 8.1 by cbu on 2014/05/12 19:29
Show last authors
author | version | line-number | content |
---|---|---|---|
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 |