Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

DEADLINE 13.05.

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!

Define your project goals! Therefore...

  • Define the desired capabilities of your controller.
  • Devide your project in several subprojects. Organize the whole team in subteams and determine who is responsible for what.
  • Define interfaces between the subteams and/or components the subteams are responsible of.
  • Create a detailed roadmap with milestones for each subproject.

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.

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!

 

The following goals were defined:

  • At least 5 trains can drive on the track at the same time
  • A "cleanup" function for trains should drive all trains to their original position
  • Our test scenarios should work (see Test-Scenarios)
  • The trains slow down before braking
  • All signals are working correctly
  • Gates should close, when a train is coming, and open again afterwards

Additionally the following optional goals were defined:

  • Deadlock avoidance: Trains should never run into a deadlock
  • Cleanup function: All Trains which are still on the track travel to their next destination and afterwards they take the shortest way home
  • Trains should drive slowly at the points

 

 

Sample Pass for one Track

state Foo
--> Gleissegment with contact(Segment,0)
state Gleissegment {
  entry / req(next_Segment);
  entry / setSignal(prevSegment, red);
  
  inital state Entry
  --> Continue with contact(Segment,0) & perm_next_Segment 
  --> Slowdown with contact(Segment,0);
  
  state Slowdown {
    entry / setSpeed(Segment,SLOW);
  } --> Waiting with contact(Segment,1)
    --> Continue with perm_next_Segment;
    
  state Waiting {
    entry / setSpeed(Segment,BRAKE);
  } --> Continue with perm_next_Segment;
  
  state Continue {
    entry / setSignal(Segment,green);
    entry / setSpeed(Segment,full);
    entry / setSpeed(nextSegment,full);
    entry / setSignal(nextSegment, red);
    entry / free(prevSegment)
    entry / setSpeed(prevSegment,OFF);
  }--> leave immediate;
  
  final state leave;
}

Roadmap

13.5. Präsentation    Annahme: Wir bekommen Interface für Module
27.5. Station-Station Controller + C-Interface
17.6. Integrationstests
24.6. Definierte Testfälle mit Stoppflag
01.7. Fahrpläne

KW 34 Abschlusspräsentation
KW 35 Exkursion Miniatur Wunderland

Interfaces

C-Interface

klar

Station-Station Module

Input: Zugnummer, Startgleis, Zielgleis, Cleanup, (Mutex Variablen?)
Output: "Echtes" Zielgleis (Ausweichgleis?)

Organisation

Regelmäßiges Treffen Mittwochs 16:00

  • No labels