Guidelines - Project Guidelines 

Page / - last modified by stu114053 on 2025/01/30 12:17 

Project Guidelines 
last modified by stu114053
on 2025/01/30 12:17

Table of Contents
Project Management
Development Environment
KIELER
Code Style
General
SCT Style
Build Settings
Git

Project Management
The general project meeting takes place in the Railwayroom, Tuesday at 16:00.
Development Environment
KIELER
Use the KIELER Nightly Build. Keep your version up-to-date.
You can update to a new version from within your running installation via Help > Check for updates. Thus it is not necessary to download the KIELER archive every time.
Use UTF-8 as codepage (especially when using Windows):
•	General > Workspace
•	Text file encoding: UTF-8
It may be helpful to configure the following settings to avoid Resource is out of sync warnings in Eclipse:
•	General > Workspace
•	Refresh using native hooks or polling: Check
•	Refresh on access
•	Save automatically before build
Code Style
General
Use an indentation of 2 Spaces:
•	General > Text Editors
•	Insert Spaces for Tabs: Check
•	Displayed Tab Width: 2
SCT Style
Use the following conventions when modeling an SCChart:
•	General order
•	inputs first
•	outputs second
•	internal variables third
•	regions and states afterwards
•	Name all regions if you have at least two (no implicit region, unless there is only one)
•	Naming
•	For semantically relevant names, use lower case with underscores (e.g. state some_long_state_name)
•	For labels and stuff that is intended to increase readability, use more natural english (e.g. state some_long_state_name "Wait for orders")
SCT Code Style
scchart Test {

  input bool trigger;
  input int array[10];
 
  output bool action0, action1;
 
  int fun;

  region first_region "Have fun":
  // State example
  initial state example_state
  --> example_state immediate "Having fun"
    with trigger
    / action0 = true
    ; action1 = false
    ; fun++
 
  --> example_state immediate "Having fun"
    with trigger
    / action0 = true
    ; action1 = false
    ; fun--
  ;

  // Region
  region second_region "Do nothing concurrently":

  initial state init;
}
SCTx CodeStyle
#import blub

scchart Test {

  input bool trigger
  input int array[10]
 
  output bool action0, action1
 
  int fun

  region first_region "Have fun":
  // State example
  initial state example_state
  go to example_state immediate 
    if trigger 
      && (trigger1
        || trigger2)
    do action0 = true
    ;  action1 = false
    ;  fun++
    label "Having fun"
 
  go to example_state immediate
    if trigger
    do action0 = true
    ;  action1 = false
    ;  fun--
    label "Having fun"

  // Region
  region second_region "Do nothing concurrently":

  initial state init;
}
Build Settings
To have the simulation and SCT build correctly via Prom, one has to modify the Prom environment that builds the project:
•	Preferences > KIELER SCCharts > Execution Environments
•	Select Generic
•	Select tab Compilation
•	Select kieler-gen as target directory
•	Set Snippets directory to snippets
•	Set  following as compile chain:
T_REFERENCE, T_CONST, T_MAP, T_FOR, T_HISTORY, T_SUSPEND, T_COUNTDELAY, T_SIGNAL, T_PRE, T_WEAKSUSPEND, T_DEFERRED, T_DURING, T_COMPLEXFINALSTATE, T_ABORT, T_EXIT, T_STATIC, T_INITIALIZATION, T_ENTRY, T_CONNECTOR, T_TRIGGEREFFECT, T_SURFACEDEPTH, T_sccharts.scg, T_scg.dependency, T_scg.basicblock.sc, T_scg.guardExpressions, T_scg.guards, T_scg.scheduling, T_scg.sequentialize, T_scg.s, T_s.c
Git
Use git.
Pull before you start coding.
Add a commit message.
In case of non-trivial conflicts: ask.