Changes for page C Controller

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

From version 1.1
edited by Alexander Schulz-Rosengarten
on 2014/08/20 10:43
Change comment: There is no comment for this version
To version 9.1
edited by Alexander Schulz-Rosengarten
on 2014/08/20 13:49
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,6 @@
1 1  
2 2  
3 -{{toc/}}
3 +{{toc maxLevel="2"/}}
4 4  
5 5  = Components =
6 6  
... ... @@ -8,6 +8,8 @@
8 8  
9 9  [[image:attach:components.png]]
10 10  
11 +
12 +
11 11  == SCCharts Contoroller ==
12 12  
13 13  {{noformat}}
... ... @@ -24,12 +24,56 @@
24 24  hostcode.h hostcode.c
25 25  {{/noformat}}
26 26  
27 -This component provides an interface to affect the railway and request events. It acts as wrapper around the railway API
29 +This component provides an interface to affect the railway and request events.
28 28  
31 +The interface provides shorter and simpler access to most of the railway API. To prevent conflicts with existing function names all functions in our interface are prefixed with //rail//.
32 +
29 29  Most controls and requests are forwarded to the controller maintaining the synchronous environment of the tick-function. Some controls which do not require this maintenance are directly forwarded to the railway API.
30 30  
35 +The hostcode header contains the general documentation for any hostcode call used in the SCChart.
36 +
31 31  == Controller ==
32 32  
33 33  {{noformat}}
34 34  controller.h defaults.h controller.c
35 35  {{/noformat}}
42 +
43 +The core controller component sets up a connection to the railway, maintains an environment for the synchronous tick-function and invokes the tick-function in a loop.
44 +
45 +Additionally some time tracking is performed to determine time consumption of the tick function and its environment.
46 +
47 +To increase the robustness of the system the controller checks internal permissions of the SCChart-Controller against detected trains on the railway.
48 +
49 +== State Monitor ==
50 +
51 +{{noformat}}
52 +statemonitor.h statemonitor.c
53 +{{/noformat}}
54 +
55 +The state monitor component allows a thread-safe communication between connected GUIs and the running controller. This communication is also tick-safe meaning that changes are only applied at tick-borders.
56 +
57 +In addition to that the
58 +
59 +Furthermore it allows the generation of the current state of the controller in JSON format.
60 +
61 +== GUI Server ==
62 +
63 +{{noformat}}
64 +guiserver.h guiserver.c
65 +{{/noformat}}
66 +
67 += Interaction =
68 +
69 +== GUI ==
70 +
71 +The controller allows multiple [[doc:GUIs]] to connect and interact with the controller.
72 +
73 +== Interrupts ==
74 +
75 +=== Quit, Pause and Cleanup ===
76 +
77 +While running the console the following user inputs are provided by the controller:
78 +
79 +* **CTRL+C** (SIGINT)** **quits the controller
80 +* **CTRL+\** (SIGQUIT)** **cleans up
81 +* **CTRL+Z **(SIGSTP) pauses and continues
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9471700
1 +9471734
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471700/C Controller
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471734/C Controller