Wiki source code of Concept

Last modified by Soeren Domroes on 2025/01/30 12:19

Show last authors
1 This is a rough concept of the aspects that should/can be covered in this project.
2
3 **SCCharts Railway Controller**
4
5 * **SCCharts Railway Controller**
6 The Controller from the previous railway project was nice, but you can surely make a better one.
7 Goal is to develop a modular controller using inheritance that can schedule as many trains as possible (max. 11).
8 Modular means that you should be able to write unit tests or do model checking for small components, e.g. a point or a station.
9 For this project, all previous documentation and SCCharts are available for inspection.
10 The environment simulation developed in the [[Railway Project 2017>>doc:Projects.Archive.Railway Project - Summer Term 2017.WebHome||shape="rect"]] should be used as an interface.
11 * **Railway Simulation and Visualization**
12 At the end of the project the controller should be testable with the existing environment and your modular controller inside KIELER or KEITH.
13
14 [[image:attach:dynamicScheduling.png]][[image:attach:ICIC.png]][[image:attach:overview.png]]
15
16 [[image:attach:020-Lego5.png]]
17
18 [[image:attach:2007-3.jpg]][[image:attach:2007-4.jpg]][[image:attach:gleisplan.png]]
19
20 **Optional / Additional Aspects:**
21
22 * **Railway Modeling DSL**
23 Philip Eumann developed a [[DSL for railway control>>url:https://rtsys.informatik.uni-kiel.de/~~biblio/downloads/theses/peu-bt.pdf||shape="rect"]]. Use it.
24
25 * **Lighthouses**
26 Extend your controller to be able to control the two [[mini-lighthouses>>url:https://rtsys.informatik.uni-kiel.de/confluence/display/RTProjectSS16||shape="rect"]] in H0 scale that were build In a previous student project
27 They should be included in the railway installation physically.
28
29 * **Train Tracking**
30 Develop a method to identify the positions of the trains from start, giving the controller the information which train is where on the track.
31
32 * **Dataflow or Hybrid Model**
33 Develop your controller or part of your controller in SCCharts dataflow.
34
35 * **Distributed SCCharts**
36 Split up your SCChart model to be executable on independent segment controllers. Each Raspberry Pi should only run the code for the components it is controlling.
37
38 * **Multiple Controllers**
39 Enable the railway system to support the execution of multiple controllers at once.
40
41 * **Model Checking**
42 Use model checking to validate your controller.
43
44