Guidelines - Project Guidelines

Page / - last modified by stu114053 on 2017/05/16 18:27

Project Guidelines

last modified by stu114053

on 2017/05/16 18:27

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.