Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

SCCharts are typically modeled using the textual SCT language defined as an Xtext grammar in KIELER. Generally, if you do not know which elements can be placed at a certain cursor position you are assisted by a content-assist that can be called pressing <Ctrl>+<Space>. It will display all possible valid elements also considering scoping of variables.

 

In the following we will describe the basic elements using the famous ABRO example:

Code Block
linenumberstrue
scchart ABRO {
  input bool A;
  input bool B;
  input bool R;
  output bool O = false;
  region Main:
  initial state ABO {
    initial state WaitAB {
      region HandleA:
      initial state WA
      --> DA with A;
      final state DA;
      region HandleB:
      initial state WB
      --> DB with B;
      final state DB;
    }
    >-> Done with / O = true;
    state Done;
  }
  o-> ABO with R;
}            
  1. In the first line you see how an SCChart is defined using the scchart keyword where the ID of the SCChart will be ABRO. An optional label can be inserted after ABRO using "<LABEL>".
  2. In the next three lines variables are declared, namely, A, B, R and O, where O is initialized with the value false. A, B, and R are inputs which must not be initialized and get there valued from the environment.
  3. An SCChart typically contains concurrent regions which are introduced with the keyword region as shown in Line 6.