Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[*]
charset = utf-8
end_of_line = lf
indent_style = tab
tab_width = 4
insert_final_newline = true

[*.yml]
indent_style = space
indent_size = 2
26 changes: 26 additions & 0 deletions .github/workflows/validate-project-examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Validate project examples

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Deno stable
uses: denoland/setup-deno@v1
with:
deno-version: vx.x.x

- name: Run validation
run: cd Project-Examples && deno run --allow-read=. validate.mjs
19 changes: 19 additions & 0 deletions Project-Examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Ecdar project examples

This repository contains a few example projects to use with Ecdar.

The projects are intended to be used by:

- newcomers to Ecdar that want to understand how it works
- developers who need a quick project to test their work with

The projects can also be useful for:

- seasoned users that need a quick template to build from
- test suites that are testing support for real-world projects

This repository is NOT intended to be:

- an exhaustive list of all features and project types that Ecdar supports
- a long list of unit tests for use in test suites
- a long list of broken projects for use in test suites
113 changes: 113 additions & 0 deletions Project-Examples/examples/AG test/Components/A_Good.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"name": "A_Good",
"declarations": "",
"locations": [
{
"id": "L2",
"nickname": "",
"invariant": "",
"type": "INITIAL",
"urgency": "NORMAL",
"x": 210,
"y": 190,
"color": "9",
"nicknameX": 30,
"nicknameY": -10,
"invariantX": 30,
"invariantY": 10
}
],
"edges": [
{
"id": "E1",
"group": "",
"sourceLocation": "L2",
"targetLocation": "L2",
"status": "OUTPUT",
"select": "",
"guard": "",
"update": "",
"sync": "button1",
"isLocked": false,
"nails": [
{
"x": 150,
"y": 210,
"propertyType": "SYNCHRONIZATION",
"propertyX": -30,
"propertyY": 10
},
{
"x": 150,
"y": 160,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
},
{
"id": "E2",
"group": "",
"sourceLocation": "L2",
"targetLocation": "L2",
"status": "INPUT",
"select": "",
"guard": "",
"update": "",
"sync": "bad",
"isLocked": false,
"nails": [
{
"x": 180,
"y": 140,
"propertyType": "SYNCHRONIZATION",
"propertyX": 10,
"propertyY": -10
},
{
"x": 240,
"y": 140,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
},
{
"id": "E3",
"group": "",
"sourceLocation": "L2",
"targetLocation": "L2",
"status": "INPUT",
"select": "",
"guard": "",
"update": "",
"sync": "good",
"isLocked": false,
"nails": [
{
"x": 240,
"y": 240,
"propertyType": "SYNCHRONIZATION",
"propertyX": 10,
"propertyY": -10
},
{
"x": 180,
"y": 240,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
}
],
"description": "",
"x": 5,
"y": 5,
"width": 450,
"height": 600,
"color": "9",
"includeInPeriodicCheck": true
}
113 changes: 113 additions & 0 deletions Project-Examples/examples/AG test/Components/G.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"name": "G",
"declarations": "",
"locations": [
{
"id": "L3",
"nickname": "",
"invariant": "",
"type": "INITIAL",
"urgency": "NORMAL",
"x": 230,
"y": 300,
"color": "5",
"nicknameX": 30,
"nicknameY": -10,
"invariantX": 30,
"invariantY": 10
}
],
"edges": [
{
"id": "E4",
"group": "",
"sourceLocation": "L3",
"targetLocation": "L3",
"status": "INPUT",
"select": "",
"guard": "",
"update": "",
"sync": "button1",
"isLocked": false,
"nails": [
{
"x": 180,
"y": 330,
"propertyType": "SYNCHRONIZATION",
"propertyX": 10,
"propertyY": -10
},
{
"x": 180,
"y": 270,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
},
{
"id": "E5",
"group": "",
"sourceLocation": "L3",
"targetLocation": "L3",
"status": "INPUT",
"select": "",
"guard": "",
"update": "",
"sync": "button2",
"isLocked": false,
"nails": [
{
"x": 260,
"y": 360,
"propertyType": "SYNCHRONIZATION",
"propertyX": 10,
"propertyY": -10
},
{
"x": 200,
"y": 360,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
},
{
"id": "E6",
"group": "",
"sourceLocation": "L3",
"targetLocation": "L3",
"status": "OUTPUT",
"select": "",
"guard": "",
"update": "",
"sync": "good",
"isLocked": false,
"nails": [
{
"x": 280,
"y": 270,
"propertyType": "SYNCHRONIZATION",
"propertyX": 10,
"propertyY": -10
},
{
"x": 280,
"y": 330,
"propertyType": "NONE",
"propertyX": 0,
"propertyY": 0
}
]
}
],
"description": "",
"x": 5,
"y": 5,
"width": 450,
"height": 600,
"color": "5",
"includeInPeriodicCheck": true
}
Loading