mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 03:59:19 +02:00
Add vehicle graph core: .vhg loader, logic and cab blocks, -graph-run and -graph-catalog
This commit is contained in:
107
tools/vehicle_graph/README.md
Normal file
107
tools/vehicle_graph/README.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Vehicle graph (.vhg)
|
||||
|
||||
A vehicle graph describes a vehicle as connected blocks, in place of the `.fiz` file. The graph holds the cab
|
||||
controls and indicators, the logic, the sounds and, in the following stages, the electrical, mechanical and
|
||||
pneumatic systems of the vehicle. The simulator code is in `vehicle/graph/`.
|
||||
|
||||
Current stage: the core of the graph with logic and cab blocks, available through the command line tools below.
|
||||
Vehicles aren't loaded from `.vhg` files yet.
|
||||
|
||||
## File format, version 2
|
||||
|
||||
A `.vhg` file is JSON. Comments (`//`, `/* */`) are allowed.
|
||||
|
||||
```json
|
||||
{
|
||||
"format": "maszyna-vehicle-graph",
|
||||
"version": 2,
|
||||
"vehicle": { "name": "ET22" },
|
||||
"settings": { "low_voltage_simulation": false },
|
||||
"body": { },
|
||||
"profiles": { "brake_pipe": 1 },
|
||||
"nodes": [
|
||||
{ "id": "bat", "type": "cab.switch", "title": "Battery", "params": { "behaviour": "bistable", "submodel": "battery_sw:" } },
|
||||
{ "id": "lamp", "type": "fb.lamp", "params": { "color": "red" } }
|
||||
],
|
||||
"connections": [
|
||||
{ "from": "bat.pos", "to": "lamp.on" }
|
||||
],
|
||||
"layout": { }
|
||||
}
|
||||
```
|
||||
|
||||
- `nodes[].id`: letters, digits, `_` and `-`; unique in the file.
|
||||
- `nodes[].type`: block type from the catalog (see `-graph-catalog`).
|
||||
- `nodes[].params`: typed values. Numbers are JSON numbers, switches are `true`/`false`, choices are ASCII ids
|
||||
from the catalog (e.g. `"bistable"`, `"rotate"`, `"ne"`). Parameters left out take their default values.
|
||||
- `connections`: `"node.port"` of an output to `"node.port"` of an input. An output can feed many inputs; an input
|
||||
has at most one source. Unconnected inputs see their default value.
|
||||
- `settings.low_voltage_simulation`: when enabled, blocks with low voltage ports simulate the voltages and currents
|
||||
of the control circuits (e.g. a lamp needs enough voltage and draws current). When disabled, low voltage
|
||||
connections have no effect and the apparatus behaves as if always powered.
|
||||
- `body`, `profiles`: parameters of the vehicle body and standard interfaces between vehicles; used by the next stages.
|
||||
- `layout`: positions of the blocks in the editor; ignored by the simulator.
|
||||
|
||||
### Ports and domains
|
||||
|
||||
Signal ports carry one value (bool, int or float; booleans are 0 and 1). Physical ports carry a pair of values
|
||||
in opposite directions:
|
||||
|
||||
| domain | forward | back |
|
||||
|---|---|---|
|
||||
| `high_voltage`, `low_voltage` | voltage [V] | current [A] |
|
||||
| `aux_ac` | voltage [V] | power [W] |
|
||||
| `drive` | demand [0-1] | power [W] |
|
||||
| `mechanical` | torque [Nm] | rotational speed [rad/s] |
|
||||
| `traction` | force at the wheel rim [N] | velocity [m/s] |
|
||||
| `air`, `brake_pipe`, `feed_pipe` | pressure [bar] | flow |
|
||||
|
||||
### Order of evaluation
|
||||
|
||||
Blocks are evaluated once per step in the order given by the connections. A loop of connections has to pass through
|
||||
a deferred block (`logic.sr`, `logic.ton`, `logic.tof`, `logic.delay`), whose outputs change in the next step; other
|
||||
loops are rejected when the file is loaded. Back values of physical connections are always taken from the previous
|
||||
step. The graph has no other source of time or randomness, so the same inputs give the same results.
|
||||
|
||||
## Command line tools
|
||||
|
||||
```
|
||||
eu07 -graph-catalog [-o <catalog.json>]
|
||||
eu07 -graph-run <file.vhg> [-script <events>] [-o <results.csv>] [-dt <step, s>] [-t <duration, s>] [-every <steps>]
|
||||
```
|
||||
|
||||
`-graph-catalog` writes the description of all block types, ports and parameters, for the external editor.
|
||||
|
||||
`-graph-run` loads and checks the graph, reports problems, and runs it without the simulator. The results are
|
||||
the values of all signal outputs and the states of the blocks (e.g. `lamp:lit`), separated with `;`.
|
||||
The script lists events, one per line:
|
||||
|
||||
```
|
||||
# <time, s> <operation> <target> [value]
|
||||
0.0 toggle bat
|
||||
6.0 press ws_on
|
||||
6.3 release ws_on
|
||||
11.0 inc reverser
|
||||
21.0 set lever 10
|
||||
1.1 force x.q 3
|
||||
1.7 unforce x.q
|
||||
```
|
||||
|
||||
Operations on cab switches: `press`, `release`, `toggle`, `inc`, `dec`, `set <position>`, `value <value>`.
|
||||
Operations on signal ports: `force <node.port> <value>`, `unforce <node.port>`.
|
||||
|
||||
On Windows the simulator runs without a console, so use `-o` for the results, and redirect the output to a file
|
||||
to see the messages, e.g. `eu07.exe -graph-run test.vhg > log.txt`.
|
||||
|
||||
## Tests
|
||||
|
||||
```
|
||||
python3 tools/vehicle_graph/run_tests.py <path to the simulator executable> [--update]
|
||||
```
|
||||
|
||||
- `tests/*.vhg` start with `// expect: ok`, `// expect: error <text>` or `// expect: warning <text>`;
|
||||
- every `.vhg` with a `.script` is run twice; both runs have to give identical results, equal to `.expected.csv`.
|
||||
`--update` replaces the expected results with the current ones, after checking the change.
|
||||
|
||||
`examples/` holds the cab logic of two vehicles, modelled after the 303E (ET22, resistor starting) and Vectron
|
||||
(induction motors) `.fiz` files.
|
||||
181
tools/vehicle_graph/examples/303e-logic.expected.csv
Normal file
181
tools/vehicle_graph/examples/303e-logic.expected.csv
Normal file
@@ -0,0 +1,181 @@
|
||||
time;bat.pos;bat.index;pant_f.pos;pant_f.index;pant_r.pos;pant_r.index;ws_on.pos;ws_on.index;ws_off.pos;ws_off.index;conv_sw.pos;conv_sw.index;comp_sw.pos;comp_sw.index;reverser.pos;reverser.index;mainctrl.pos;mainctrl.index;pant_any.q;pant_air.q;pant_up.q;hv_nominal.q;hv.q;hv_ok.q;ws_close.q;ws_close2.q;ws_lost.q;ws_open.q;ws.q;ws_lamp_on.q;conv_run.q;conv.q;conv_lamp_on.q;comp.q;dir_set.q;power_req.q;line_req.q;line.q;line_lamp_on.q;bat:position;pant_f:position;pant_r:position;ws_on:position;ws_off:position;conv_sw:position;comp_sw:position;reverser:position;mainctrl:position;pant_up:elapsed;ws:state;conv:elapsed;lamp_ws:lit;lamp_conv:lit;lamp_line:lit;v_hv:value;snd_conv:playing;snd_conv:volume;snd_conv:pitch;snd_comp:playing;snd_comp:volume;snd_comp:pitch
|
||||
0.1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.2;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.3;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.4;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.5;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.1;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.2;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.3;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
0.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.4;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.5;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.6;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.7;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.8;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0.9;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.1;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.2;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.3;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
1.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.4;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.5;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.6;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.7;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.8;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;1.9;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.1;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.2;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.3;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
2.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.4;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.5;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.6;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.7;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.8;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;2.9;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.1;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.2;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.3;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
3.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.4;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.5;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.6;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.7;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.8;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;3.9;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
4.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
4.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
4.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
4.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.3;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
5.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
6.1;1;1;1;1;0;0;1;1;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;1;1;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;1;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.2;1;1;1;1;0;0;1;1;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;1;1;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;1;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.3;1;1;1;1;0;0;1;1;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;1;1;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;1;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.4;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.5;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.6;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.8;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
6.9;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
7;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;0;1;0;4;1;0;0;1;1;3000;0;1;1;0;1;1
|
||||
7.1;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.1;0;1;1;3000;0;1;1;0;1;1
|
||||
7.2;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.2;0;1;1;3000;0;1;1;0;1;1
|
||||
7.3;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.3;0;1;1;3000;0;1;1;0;1;1
|
||||
7.4;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.4;0;1;1;3000;0;1;1;0;1;1
|
||||
7.5;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.5;0;1;1;3000;0;1;1;0;1;1
|
||||
7.6;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.6;0;1;1;3000;0;1;1;0;1;1
|
||||
7.7;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.7;0;1;1;3000;0;1;1;0;1;1
|
||||
7.8;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.8;0;1;1;3000;0;1;1;0;1;1
|
||||
7.9;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;0.9;0;1;1;3000;0;1;1;0;1;1
|
||||
8;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;4;1;1;0;1;1;3000;0;1;1;0;1;1
|
||||
8.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.1;0;1;1;3000;0;1;1;0;1;1
|
||||
8.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.2;0;1;1;3000;0;1;1;0;1;1
|
||||
8.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.3;0;1;1;3000;0;1;1;0;1;1
|
||||
8.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.4;0;1;1;3000;0;1;1;0;1;1
|
||||
8.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.5;0;1;1;3000;0;1;1;0;1;1
|
||||
8.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.6;0;1;1;3000;0;1;1;0;1;1
|
||||
8.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.7;0;1;1;3000;0;1;1;0;1;1
|
||||
8.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.8;0;1;1;3000;0;1;1;0;1;1
|
||||
8.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;1.9;0;1;1;3000;0;1;1;0;1;1
|
||||
9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2;0;1;1;3000;0;1;1;0;1;1
|
||||
9.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.1;0;1;1;3000;0;1;1;0;1;1
|
||||
9.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.2;0;1;1;3000;0;1;1;0;1;1
|
||||
9.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.3;0;1;1;3000;0;1;1;0;1;1
|
||||
9.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.4;0;1;1;3000;0;1;1;0;1;1
|
||||
9.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.5;0;1;1;3000;0;1;1;0;1;1
|
||||
9.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.6;0;1;1;3000;0;1;1;0;1;1
|
||||
9.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.7;0;1;1;3000;0;1;1;0;1;1
|
||||
9.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.8;0;1;1;3000;0;1;1;0;1;1
|
||||
9.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;2.9;0;1;1;3000;0;1;1;0;1;1
|
||||
10;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;1;1;3000;0;1;1;0;1;1
|
||||
10.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
10.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11;1;1;1;1;0;0;0;0;0;0;1;1;1;1;0;1;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;0;0;0;0;1;1;1;0;0;0;1;1;1;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;0;0;0;1;1;1;0;0;0;1;1;2;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;0;0;0;1;1;1;0;0;0;1;1;2;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;0;0;0;1;1;1;0;0;0;1;1;2;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;0;0;0;1;1;1;0;0;0;1;1;2;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;0;0;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;0;0;0;1;1;1;0;0;0;1;1;2;0;4;1;3;0;0;1;3000;1;1;1;1;1;1
|
||||
11.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;1;1;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;1;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
11.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
11.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
11.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
12.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.1;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.2;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
13.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
14;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;1;1;0;0;0;1;1;2;2;4;1;3;0;0;0;3000;1;1;1;1;1;1
|
||||
14.1;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;1;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;1;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.2;1;1;1;1;0;0;0;0;1;1;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;1;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;1;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.3;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.4;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.5;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.6;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.7;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.8;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
14.9;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
15;1;1;1;1;0;0;0;0;0;0;1;1;1;1;1;2;2;2;1;1;1;3000;3000;1;0;0;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;1;2;2;4;0;0;1;1;1;3000;0;1;1;0;1;1
|
||||
15.1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.2;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.3;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.4;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.5;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.6;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.7;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.8;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
15.9;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.2;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.3;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.4;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.5;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.6;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.7;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.8;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
16.9;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.1;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.2;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.3;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.4;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.5;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.6;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.7;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.8;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
17.9;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
18;0;0;0;0;0;0;0;0;0;0;1;1;1;1;1;2;2;2;0;0;0;3000;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;2;2;0;0;0;1;1;1;0;0;1;1;0;1;1
|
||||
|
17
tools/vehicle_graph/examples/303e-logic.script
Normal file
17
tools/vehicle_graph/examples/303e-logic.script
Normal file
@@ -0,0 +1,17 @@
|
||||
# events for: -graph-run 303e-logic.vhg -script 303e-logic.script
|
||||
# <time, s> <operation> <target> [value]
|
||||
# operations on cab switches: press, release, toggle, inc, dec, set <position>, value <value>
|
||||
# operations on signals: force <node.port> <value>, unforce <node.port>
|
||||
0.0 toggle bat
|
||||
0.5 toggle pant_f
|
||||
6.0 press ws_on
|
||||
6.3 release ws_on
|
||||
7.0 toggle conv_sw
|
||||
8.0 toggle comp_sw
|
||||
11.0 inc reverser
|
||||
11.5 inc mainctrl
|
||||
11.6 inc mainctrl
|
||||
14.0 press ws_off
|
||||
14.2 release ws_off
|
||||
15.0 toggle pant_f
|
||||
17.0 toggle bat
|
||||
95
tools/vehicle_graph/examples/303e-logic.vhg
Normal file
95
tools/vehicle_graph/examples/303e-logic.vhg
Normal file
@@ -0,0 +1,95 @@
|
||||
// cab logic of an electric locomotive with resistor starting, modelled after the 303E (ET22) .fiz.
|
||||
// stage 1 of the vehicle graph: only logic and cab blocks are available, so the pantographs and the high voltage
|
||||
// are represented by timers and constants. the physical blocks replace them in the next stages
|
||||
{
|
||||
"format": "maszyna-vehicle-graph",
|
||||
"version": 2,
|
||||
"vehicle": { "name": "303E (logic test)" },
|
||||
"settings": { "low_voltage_simulation": false },
|
||||
"nodes": [
|
||||
{ "id": "bat", "type": "cab.switch", "title": "Battery", "params": { "behaviour": "bistable", "submodel": "battery_sw:", "command": "batterytoggle" } },
|
||||
{ "id": "pant_f", "type": "cab.switch", "title": "Front pantograph", "params": { "behaviour": "bistable", "submodel": "pantfront_sw:", "command": "pantographtogglefront" } },
|
||||
{ "id": "pant_r", "type": "cab.switch", "title": "Rear pantograph", "params": { "behaviour": "bistable", "submodel": "pantrear_sw:", "command": "pantographtogglerear" } },
|
||||
{ "id": "ws_on", "type": "cab.switch", "title": "Line breaker on", "params": { "behaviour": "monostable", "animation": "move", "step": 4, "submodel": "main_on_bt:", "command": "linebreakerclose" } },
|
||||
{ "id": "ws_off", "type": "cab.switch", "title": "Line breaker off", "params": { "behaviour": "monostable", "animation": "move", "step": 4, "submodel": "main_off_bt:", "command": "linebreakeropen" } },
|
||||
{ "id": "conv_sw", "type": "cab.switch", "title": "Converter", "params": { "behaviour": "bistable", "submodel": "converter_sw:", "command": "convertertoggle" } },
|
||||
{ "id": "comp_sw", "type": "cab.switch", "title": "Compressor", "params": { "behaviour": "bistable", "submodel": "compressor_sw:", "command": "compressortoggle" } },
|
||||
{ "id": "reverser", "type": "cab.switch", "title": "Reverser", "params": { "behaviour": "multi", "positions": 3, "min": -1, "max": 1, "default": 0, "labels": "back;0;forward", "step": 45, "offset": -45, "submodel": "dirkey:" } },
|
||||
{ "id": "mainctrl", "type": "cab.switch", "title": "Master controller", "params": { "behaviour": "multi", "positions": 44, "min": 0, "max": 43, "default": 0, "step": 6, "submodel": "mainctrl:" } },
|
||||
|
||||
{ "id": "pant_any", "type": "logic.or", "title": "Any pantograph selected" },
|
||||
{ "id": "pant_air", "type": "logic.and", "title": "Pantograph valve powered" },
|
||||
{ "id": "pant_up", "type": "logic.ton", "title": "Pantograph raising", "params": { "time": 4.0 } },
|
||||
{ "id": "hv_nominal", "type": "logic.const", "title": "Catenary voltage", "params": { "value": 3000 } },
|
||||
{ "id": "hv", "type": "logic.math", "title": "Voltage behind the pantographs", "params": { "op": "mul" } },
|
||||
{ "id": "hv_ok", "type": "logic.hyst", "title": "Voltage above minimum", "params": { "lo": 1800, "hi": 1900 } },
|
||||
|
||||
{ "id": "ws_close", "type": "logic.and", "title": "Closing allowed" },
|
||||
{ "id": "ws_close2", "type": "logic.and", "title": "Closing with voltage" },
|
||||
{ "id": "ws_lost", "type": "logic.nand", "title": "Battery or voltage missing" },
|
||||
{ "id": "ws_open", "type": "logic.or", "title": "Opening" },
|
||||
{ "id": "ws", "type": "logic.sr", "title": "Line breaker", "params": { "reset_priority": true } },
|
||||
{ "id": "ws_lamp_on", "type": "logic.not", "title": "Line breaker open" },
|
||||
|
||||
{ "id": "conv_run", "type": "logic.and", "title": "Converter powered" },
|
||||
{ "id": "conv", "type": "logic.ton", "title": "Converter starting", "params": { "time": 3.0 } },
|
||||
{ "id": "conv_lamp_on", "type": "logic.not", "title": "Converter off" },
|
||||
{ "id": "comp", "type": "logic.and", "title": "Compressor running" },
|
||||
|
||||
{ "id": "dir_set", "type": "logic.compare", "title": "Direction selected", "params": { "op": "ne", "value": 0 } },
|
||||
{ "id": "power_req", "type": "logic.compare", "title": "Controller above zero", "params": { "op": "gt", "value": 0 } },
|
||||
{ "id": "line_req", "type": "logic.and", "title": "Line contactors requested" },
|
||||
{ "id": "line", "type": "logic.and", "title": "Line contactors closed" },
|
||||
{ "id": "line_lamp_on", "type": "logic.not", "title": "Line contactors open" },
|
||||
|
||||
{ "id": "lamp_ws", "type": "fb.lamp", "title": "Line breaker lamp", "params": { "color": "red", "submodel": "i-mainbreaker:" } },
|
||||
{ "id": "lamp_conv", "type": "fb.lamp", "title": "Converter lamp", "params": { "color": "yellow", "submodel": "i-converteroverload:" } },
|
||||
{ "id": "lamp_line", "type": "fb.lamp", "title": "Line contactors lamp", "params": { "color": "green", "submodel": "i-stlinoff:" } },
|
||||
{ "id": "v_hv", "type": "fb.gauge", "title": "High voltage", "params": { "min": 0, "max": 4000, "unit": "V", "angle_min": 0, "angle_max": 270, "submodel": "hvoltage:" } },
|
||||
{ "id": "snd_conv", "type": "fb.sound", "title": "Converter", "params": { "file": "przetwornica.wav", "placement": "engine", "loop": true } },
|
||||
{ "id": "snd_comp", "type": "fb.sound", "title": "Compressor", "params": { "file": "sprezarka.wav", "placement": "engine", "loop": true } }
|
||||
],
|
||||
"connections": [
|
||||
{ "from": "pant_f.pos", "to": "pant_any.a" },
|
||||
{ "from": "pant_r.pos", "to": "pant_any.b" },
|
||||
{ "from": "pant_any.q", "to": "pant_air.a" },
|
||||
{ "from": "bat.pos", "to": "pant_air.b" },
|
||||
{ "from": "pant_air.q", "to": "pant_up.a" },
|
||||
{ "from": "hv_nominal.q", "to": "hv.a" },
|
||||
{ "from": "pant_up.q", "to": "hv.b" },
|
||||
{ "from": "hv.q", "to": "hv_ok.a" },
|
||||
{ "from": "hv.q", "to": "v_hv.value" },
|
||||
|
||||
{ "from": "ws_on.pos", "to": "ws_close.a" },
|
||||
{ "from": "bat.pos", "to": "ws_close.b" },
|
||||
{ "from": "ws_close.q", "to": "ws_close2.a" },
|
||||
{ "from": "hv_ok.q", "to": "ws_close2.b" },
|
||||
{ "from": "bat.pos", "to": "ws_lost.a" },
|
||||
{ "from": "hv_ok.q", "to": "ws_lost.b" },
|
||||
{ "from": "ws_off.pos", "to": "ws_open.a" },
|
||||
{ "from": "ws_lost.q", "to": "ws_open.b" },
|
||||
{ "from": "ws_close2.q", "to": "ws.s" },
|
||||
{ "from": "ws_open.q", "to": "ws.r" },
|
||||
{ "from": "ws.q", "to": "ws_lamp_on.a" },
|
||||
{ "from": "ws_lamp_on.q", "to": "lamp_ws.on" },
|
||||
|
||||
{ "from": "ws.q", "to": "conv_run.a" },
|
||||
{ "from": "conv_sw.pos", "to": "conv_run.b" },
|
||||
{ "from": "conv_run.q", "to": "conv.a" },
|
||||
{ "from": "conv.q", "to": "conv_lamp_on.a" },
|
||||
{ "from": "conv_lamp_on.q", "to": "lamp_conv.on" },
|
||||
{ "from": "conv.q", "to": "comp.a" },
|
||||
{ "from": "comp_sw.pos", "to": "comp.b" },
|
||||
{ "from": "conv.q", "to": "snd_conv.play" },
|
||||
{ "from": "comp.q", "to": "snd_comp.play" },
|
||||
|
||||
{ "from": "reverser.pos", "to": "dir_set.a" },
|
||||
{ "from": "mainctrl.pos", "to": "power_req.a" },
|
||||
{ "from": "dir_set.q", "to": "line_req.a" },
|
||||
{ "from": "power_req.q", "to": "line_req.b" },
|
||||
{ "from": "line_req.q", "to": "line.a" },
|
||||
{ "from": "ws.q", "to": "line.b" },
|
||||
{ "from": "line.q", "to": "line_lamp_on.a" },
|
||||
{ "from": "line_lamp_on.q", "to": "lamp_line.on" }
|
||||
]
|
||||
}
|
||||
253
tools/vehicle_graph/examples/vectron-logic.expected.csv
Normal file
253
tools/vehicle_graph/examples/vectron-logic.expected.csv
Normal file
@@ -0,0 +1,253 @@
|
||||
time;bat.pos;bat.index;pant_sel.pos;pant_sel.index;pant_raise.pos;pant_raise.index;pant_lower.pos;pant_lower.index;main_sw.pos;main_sw.index;reverser.pos;reverser.index;lever.pos;lever.index;pant_cmd.q;pant_cmd_on.q;pant_cmd_off.q;no_lower.q;pant_up.q;hv_nominal.q;hv.q;hv_ok.q;ms_on_req.q;ms_off_req.q;ms_init.q;ms_close.q;ms_lost.q;ms_open.q;ms.q;ms_lamp_on.q;zero.q;minus_one.q;lever_pos.q;lever_neg.q;lever_brake.q;dir_set.q;drive_ok.q;traction.q;ed_brake.q;pant_moving.q;pant_not_up.q;snd_base.q;snd_gain.q;bat:position;pant_sel:position;pant_raise:position;pant_lower:position;main_sw:position;reverser:position;lever:position;pant_cmd:state;pant_up:elapsed;ms_init:elapsed;ms:state;lamp_ms:lit;lamp_pant:lit;v_hv:value;v_demand:value;snd_inverter:playing;snd_inverter:volume;snd_inverter:pitch
|
||||
0.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
0.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;0;1;0.3;0.3;1;1;0;0;1;1;15;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
1.1;1;1;1;1;1;1;0;0;0;1;0;1;0;15;1;1;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;1;0;1;1;15;1;0.09;0;0;1;1;0;0;0;0.300000012;1
|
||||
1.2;1;1;1;1;1;1;0;0;0;1;0;1;0;15;1;1;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;1;0;1;1;15;1;0.19;0;0;1;1;0;0;0;0.300000012;1
|
||||
1.3;1;1;1;1;1;1;0;0;0;1;0;1;0;15;1;1;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;1;0;1;1;15;1;0.29;0;0;1;1;0;0;0;0.300000012;1
|
||||
1.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.39;0;0;1;1;0;0;0;0.300000012;1
|
||||
1.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.49;0;0;1;0;0;0;0;0.300000012;1
|
||||
1.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.59;0;0;1;0;0;0;0;0.300000012;1
|
||||
1.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.69;0;0;1;0;0;0;0;0.300000012;1
|
||||
1.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.79;0;0;1;0;0;0;0;0.300000012;1
|
||||
1.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.89;0;0;1;0;0;0;0;0.300000012;1
|
||||
2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;0.99;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.09;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.19;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.29;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.39;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.49;0;0;1;1;0;0;0;0.300000012;1
|
||||
2.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.59;0;0;1;0;0;0;0;0.300000012;1
|
||||
2.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.69;0;0;1;0;0;0;0;0.300000012;1
|
||||
2.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.79;0;0;1;0;0;0;0;0.300000012;1
|
||||
2.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.89;0;0;1;0;0;0;0;0.300000012;1
|
||||
3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;1.99;0;0;1;0;0;0;0;0.300000012;1
|
||||
3.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.09;0;0;1;1;0;0;0;0.300000012;1
|
||||
3.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.19;0;0;1;1;0;0;0;0.300000012;1
|
||||
3.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.29;0;0;1;1;0;0;0;0.300000012;1
|
||||
3.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.39;0;0;1;1;0;0;0;0.300000012;1
|
||||
3.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.49;0;0;1;1;0;0;0;0.300000012;1
|
||||
3.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.59;0;0;1;0;0;0;0;0.300000012;1
|
||||
3.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.69;0;0;1;0;0;0;0;0.300000012;1
|
||||
3.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.79;0;0;1;0;0;0;0;0.300000012;1
|
||||
3.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.89;0;0;1;0;0;0;0;0.300000012;1
|
||||
4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;2.99;0;0;1;0;0;0;0;0.300000012;1
|
||||
4.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.09;0;0;1;1;0;0;0;0.300000012;1
|
||||
4.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.19;0;0;1;1;0;0;0;0.300000012;1
|
||||
4.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.29;0;0;1;1;0;0;0;0.300000012;1
|
||||
4.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.39;0;0;1;1;0;0;0;0.300000012;1
|
||||
4.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.49;0;0;1;1;0;0;0;0.300000012;1
|
||||
4.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.59;0;0;1;0;0;0;0;0.300000012;1
|
||||
4.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.69;0;0;1;0;0;0;0;0.300000012;1
|
||||
4.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.79;0;0;1;0;0;0;0;0.300000012;1
|
||||
4.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.89;0;0;1;0;0;0;0;0.300000012;1
|
||||
5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;3.99;0;0;1;0;0;0;0;0.300000012;1
|
||||
5.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.09;0;0;1;1;0;0;0;0.300000012;1
|
||||
5.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.19;0;0;1;1;0;0;0;0.300000012;1
|
||||
5.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.29;0;0;1;1;0;0;0;0.300000012;1
|
||||
5.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.39;0;0;1;1;0;0;0;0.300000012;1
|
||||
5.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.49;0;0;1;1;0;0;0;0.300000012;1
|
||||
5.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.59;0;0;1;0;0;0;0;0.300000012;1
|
||||
5.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.69;0;0;1;0;0;0;0;0.300000012;1
|
||||
5.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.79;0;0;1;0;0;0;0;0.300000012;1
|
||||
5.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.89;0;0;1;0;0;0;0;0.300000012;1
|
||||
6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0;0;0;0;0;0;1;1;0.3;0.3;1;1;0;0;1;1;15;1;4.99;0;0;1;0;0;0;0;0.300000012;1
|
||||
6.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.08;0;1;0;3000;0;0;0.300000012;1
|
||||
6.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.18;0;1;0;3000;0;0;0.300000012;1
|
||||
6.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.28;0;1;0;3000;0;0;0.300000012;1
|
||||
6.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.38;0;1;0;3000;0;0;0.300000012;1
|
||||
6.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.48;0;1;0;3000;0;0;0.300000012;1
|
||||
6.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.58;0;1;0;3000;0;0;0.300000012;1
|
||||
6.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.68;0;1;0;3000;0;0;0.300000012;1
|
||||
6.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.78;0;1;0;3000;0;0;0.300000012;1
|
||||
6.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.88;0;1;0;3000;0;0;0.300000012;1
|
||||
7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;0.98;0;1;0;3000;0;0;0.300000012;1
|
||||
7.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.08;0;1;0;3000;0;0;0.300000012;1
|
||||
7.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.18;0;1;0;3000;0;0;0.300000012;1
|
||||
7.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.28;0;1;0;3000;0;0;0.300000012;1
|
||||
7.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.38;0;1;0;3000;0;0;0.300000012;1
|
||||
7.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.48;0;1;0;3000;0;0;0.300000012;1
|
||||
7.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.58;0;1;0;3000;0;0;0.300000012;1
|
||||
7.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.68;0;1;0;3000;0;0;0.300000012;1
|
||||
7.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.78;0;1;0;3000;0;0;0.300000012;1
|
||||
7.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.88;0;1;0;3000;0;0;0.300000012;1
|
||||
8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;1.98;0;1;0;3000;0;0;0.300000012;1
|
||||
8.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.08;0;1;0;3000;0;0;0.300000012;1
|
||||
8.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.18;0;1;0;3000;0;0;0.300000012;1
|
||||
8.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.28;0;1;0;3000;0;0;0.300000012;1
|
||||
8.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.38;0;1;0;3000;0;0;0.300000012;1
|
||||
8.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.48;0;1;0;3000;0;0;0.300000012;1
|
||||
8.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.58;0;1;0;3000;0;0;0.300000012;1
|
||||
8.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.68;0;1;0;3000;0;0;0.300000012;1
|
||||
8.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.78;0;1;0;3000;0;0;0.300000012;1
|
||||
8.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.88;0;1;0;3000;0;0;0.300000012;1
|
||||
9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;2.98;0;1;0;3000;0;0;0.300000012;1
|
||||
9.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.08;0;1;0;3000;0;0;0.300000012;1
|
||||
9.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.18;0;1;0;3000;0;0;0.300000012;1
|
||||
9.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.28;0;1;0;3000;0;0;0.300000012;1
|
||||
9.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.38;0;1;0;3000;0;0;0.300000012;1
|
||||
9.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.48;0;1;0;3000;0;0;0.300000012;1
|
||||
9.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.58;0;1;0;3000;0;0;0.300000012;1
|
||||
9.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.68;0;1;0;3000;0;0;0.300000012;1
|
||||
9.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.78;0;1;0;3000;0;0;0.300000012;1
|
||||
9.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.88;0;1;0;3000;0;0;0.300000012;1
|
||||
10;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;3.98;0;1;0;3000;0;0;0.300000012;1
|
||||
10.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.08;0;1;0;3000;0;0;0.300000012;1
|
||||
10.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.18;0;1;0;3000;0;0;0.300000012;1
|
||||
10.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.28;0;1;0;3000;0;0;0.300000012;1
|
||||
10.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.38;0;1;0;3000;0;0;0.300000012;1
|
||||
10.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.48;0;1;0;3000;0;0;0.300000012;1
|
||||
10.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.58;0;1;0;3000;0;0;0.300000012;1
|
||||
10.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.68;0;1;0;3000;0;0;0.300000012;1
|
||||
10.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.78;0;1;0;3000;0;0;0.300000012;1
|
||||
10.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.88;0;1;0;3000;0;0;0.300000012;1
|
||||
11;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;4.98;0;1;0;3000;0;0;0.300000012;1
|
||||
11.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.08;0;1;0;3000;0;0;0.300000012;1
|
||||
11.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.18;0;1;0;3000;0;0;0.300000012;1
|
||||
11.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.28;0;1;0;3000;0;0;0.300000012;1
|
||||
11.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.38;0;1;0;3000;0;0;0.300000012;1
|
||||
11.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.48;0;1;0;3000;0;0;0.300000012;1
|
||||
11.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.58;0;1;0;3000;0;0;0.300000012;1
|
||||
11.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.68;0;1;0;3000;0;0;0.300000012;1
|
||||
11.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.78;0;1;0;3000;0;0;0.300000012;1
|
||||
11.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.88;0;1;0;3000;0;0;0.300000012;1
|
||||
12;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;5.98;0;1;0;3000;0;0;0.300000012;1
|
||||
12.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.08;0;1;0;3000;0;0;0.300000012;1
|
||||
12.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.18;0;1;0;3000;0;0;0.300000012;1
|
||||
12.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.28;0;1;0;3000;0;0;0.300000012;1
|
||||
12.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.38;0;1;0;3000;0;0;0.300000012;1
|
||||
12.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.48;0;1;0;3000;0;0;0.300000012;1
|
||||
12.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.58;0;1;0;3000;0;0;0.300000012;1
|
||||
12.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.68;0;1;0;3000;0;0;0.300000012;1
|
||||
12.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.78;0;1;0;3000;0;0;0.300000012;1
|
||||
12.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.88;0;1;0;3000;0;0;0.300000012;1
|
||||
13;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;6.98;0;1;0;3000;0;0;0.300000012;1
|
||||
13.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.08;0;1;0;3000;0;0;0.300000012;1
|
||||
13.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.18;0;1;0;3000;0;0;0.300000012;1
|
||||
13.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.28;0;1;0;3000;0;0;0.300000012;1
|
||||
13.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.38;0;1;0;3000;0;0;0.300000012;1
|
||||
13.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.48;0;1;0;3000;0;0;0.300000012;1
|
||||
13.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.58;0;1;0;3000;0;0;0.300000012;1
|
||||
13.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.68;0;1;0;3000;0;0;0.300000012;1
|
||||
13.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.78;0;1;0;3000;0;0;0.300000012;1
|
||||
13.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.88;0;1;0;3000;0;0;0.300000012;1
|
||||
14;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;7.98;0;1;0;3000;0;0;0.300000012;1
|
||||
14.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.08;0;1;0;3000;0;0;0.300000012;1
|
||||
14.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.18;0;1;0;3000;0;0;0.300000012;1
|
||||
14.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.28;0;1;0;3000;0;0;0.300000012;1
|
||||
14.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.38;0;1;0;3000;0;0;0.300000012;1
|
||||
14.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.48;0;1;0;3000;0;0;0.300000012;1
|
||||
14.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.58;0;1;0;3000;0;0;0.300000012;1
|
||||
14.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.68;0;1;0;3000;0;0;0.300000012;1
|
||||
14.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.78;0;1;0;3000;0;0;0.300000012;1
|
||||
14.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.88;0;1;0;3000;0;0;0.300000012;1
|
||||
15;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;8.98;0;1;0;3000;0;0;0.300000012;1
|
||||
15.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.08;0;1;0;3000;0;0;0.300000012;1
|
||||
15.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.18;0;1;0;3000;0;0;0.300000012;1
|
||||
15.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.28;0;1;0;3000;0;0;0.300000012;1
|
||||
15.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.38;0;1;0;3000;0;0;0.300000012;1
|
||||
15.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.48;0;1;0;3000;0;0;0.300000012;1
|
||||
15.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.58;0;1;0;3000;0;0;0.300000012;1
|
||||
15.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.68;0;1;0;3000;0;0;0.300000012;1
|
||||
15.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.78;0;1;0;3000;0;0;0.300000012;1
|
||||
15.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.88;0;1;0;3000;0;0;0.300000012;1
|
||||
16;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;0;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;9.98;0;1;0;3000;0;0;0.300000012;1
|
||||
16.1;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.2;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.3;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.4;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.5;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
16.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
17;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
17.1;1;1;1;1;0;0;0;0;1;2;0;1;0;15;1;0;0;1;1;3000;3000;1;1;0;1;1;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;2;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.2;1;1;1;1;0;0;0;0;1;2;0;1;0;15;1;0;0;1;1;3000;3000;1;1;0;1;1;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;2;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.3;1;1;1;1;0;0;0;0;1;2;0;1;0;15;1;0;0;1;1;3000;3000;1;1;0;1;1;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;2;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.4;1;1;1;1;0;0;0;0;1;2;0;1;0;15;1;0;0;1;1;3000;3000;1;1;0;1;1;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;2;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.5;1;1;1;1;0;0;0;0;1;2;0;1;0;15;1;0;0;1;1;3000;3000;1;1;0;1;1;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;2;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.6;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.7;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.8;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
17.9;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18;1;1;1;1;0;0;0;0;0;1;0;1;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;0;0;0;0;0;0;0.3;0.3;1;1;0;0;1;1;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.1;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.2;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.3;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.4;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.5;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.6;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.7;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.8;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
18.9;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
19;1;1;1;1;0;0;0;0;0;1;1;2;0;15;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0;0;1;1;0;0;0;0;0.3;0.3;1;1;0;0;1;2;15;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
19.1;1;1;1;1;0;0;0;0;0;1;1;2;0.0666666667;16;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.0666666667;-0.0666666667;0;1;1;0.0666666667;0;0;0;0.3;0.366666667;1;1;0;0;1;2;16;1;5;10;1;0;0;3000;0.0666666701;1;0.366666675;1
|
||||
19.2;1;1;1;1;0;0;0;0;0;1;1;2;0.133333333;17;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.133333333;-0.133333333;0;1;1;0.133333333;0;0;0;0.3;0.433333333;1;1;0;0;1;2;17;1;5;10;1;0;0;3000;0.13333334;1;0.433333337;1
|
||||
19.3;1;1;1;1;0;0;0;0;0;1;1;2;0.2;18;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.2;-0.2;0;1;1;0.2;0;0;0;0.3;0.5;1;1;0;0;1;2;18;1;5;10;1;0;0;3000;0.200000003;1;0.5;1
|
||||
19.4;1;1;1;1;0;0;0;0;0;1;1;2;0.266666667;19;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.266666667;-0.266666667;0;1;1;0.266666667;0;0;0;0.3;0.566666667;1;1;0;0;1;2;19;1;5;10;1;0;0;3000;0.266666681;1;0.566666663;1
|
||||
19.5;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
19.6;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
19.7;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
19.8;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
19.9;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.1;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.2;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.3;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.4;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.5;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.6;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.7;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.8;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
20.9;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
21;1;1;1;1;0;0;0;0;0;1;1;2;0.333333333;20;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0.333333333;-0.333333333;0;1;1;0.333333333;0;0;0;0.3;0.633333333;1;1;0;0;1;2;20;1;5;10;1;0;0;3000;0.333333343;1;0.633333325;1
|
||||
21.1;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.2;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.3;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.4;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.5;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.6;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.7;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.8;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
21.9;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.1;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.2;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.3;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.4;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.5;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.6;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.7;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.8;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
22.9;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
23;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;1;0;0;-1;0;0.333333333;0.333333333;1;1;0;0.333333333;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;1;0;0;3000;0;1;0.300000012;1
|
||||
23.1;1;1;1;1;0;0;0;0;-1;0;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;1;1;0;0;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;0;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.2;1;1;1;1;0;0;0;0;-1;0;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;1;1;0;0;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;0;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.3;1;1;1;1;0;0;0;0;-1;0;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;1;1;0;0;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;0;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.4;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.5;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.6;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.7;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.8;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
23.9;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
24;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;1;0;0;1;1;3000;3000;1;0;0;1;0;0;0;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;0;0.3;0.3;1;1;0;0;1;2;10;1;5;10;0;1;0;3000;0;0;0.300000012;1
|
||||
24.1;1;1;1;1;0;0;1;1;0;1;1;2;-0.333333333;10;0;0;1;0;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;1;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.2;1;1;1;1;0;0;1;1;0;1;1;2;-0.333333333;10;0;0;1;0;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;1;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.3;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.4;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.5;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.6;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.7;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.8;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
24.9;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
25;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
25.1;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
25.2;1;1;1;1;0;0;0;0;0;1;1;2;-0.333333333;10;0;0;0;1;0;3000;0;0;0;0;0;0;1;1;0;1;0;-1;0;0.333333333;0.333333333;1;0;0;0;0;1;0.3;0.3;1;1;0;0;1;2;10;0;0;0;0;1;0;0;0;0;0.300000012;1
|
||||
|
17
tools/vehicle_graph/examples/vectron-logic.script
Normal file
17
tools/vehicle_graph/examples/vectron-logic.script
Normal file
@@ -0,0 +1,17 @@
|
||||
# events for: -graph-run vectron-logic.vhg -script vectron-logic.script
|
||||
0.0 toggle bat
|
||||
1.0 press pant_raise
|
||||
1.3 release pant_raise
|
||||
17.0 inc main_sw
|
||||
17.5 release main_sw
|
||||
18.0 inc reverser
|
||||
19.0 inc lever
|
||||
19.1 inc lever
|
||||
19.2 inc lever
|
||||
19.3 inc lever
|
||||
19.4 inc lever
|
||||
21.0 set lever 10
|
||||
23.0 dec main_sw
|
||||
23.3 release main_sw
|
||||
24.0 press pant_lower
|
||||
24.2 release pant_lower
|
||||
112
tools/vehicle_graph/examples/vectron-logic.vhg
Normal file
112
tools/vehicle_graph/examples/vectron-logic.vhg
Normal file
@@ -0,0 +1,112 @@
|
||||
// cab logic of an electric locomotive with induction motors, modelled after the Vectron .fiz.
|
||||
// stage 1 of the vehicle graph: only logic and cab blocks are available, so the pantograph, the main circuit
|
||||
// and the inverters are represented by timers and constants. the combined power/brake lever is split into
|
||||
// a traction demand and an electrodynamic brake demand, which will drive the inverter blocks in the next stages
|
||||
{
|
||||
"format": "maszyna-vehicle-graph",
|
||||
"version": 2,
|
||||
"vehicle": { "name": "Vectron (logic test)" },
|
||||
"settings": { "low_voltage_simulation": false },
|
||||
"nodes": [
|
||||
{ "id": "bat", "type": "cab.switch", "title": "Battery", "params": { "behaviour": "bistable", "submodel": "battery_sw:", "command": "batterytoggle" } },
|
||||
{ "id": "pant_sel", "type": "cab.switch", "title": "Pantograph selector", "params": { "behaviour": "multi", "positions": 4, "min": 0, "max": 3, "default": 1, "labels": "rear;front;both;rear", "step": 30, "submodel": "pantselect_sw:" } },
|
||||
{ "id": "pant_raise", "type": "cab.switch", "title": "Raise pantographs", "params": { "behaviour": "monostable", "animation": "move", "step": 4, "submodel": "pantselectedraise_bt:", "command": "pantographraiseselected" } },
|
||||
{ "id": "pant_lower", "type": "cab.switch", "title": "Lower pantographs", "params": { "behaviour": "monostable", "animation": "move", "step": 4, "submodel": "pantselectedlower_bt:", "command": "pantographlowerselected" } },
|
||||
{ "id": "main_sw", "type": "cab.switch", "title": "Main switch", "params": { "behaviour": "multi", "positions": 3, "min": -1, "max": 1, "default": 0, "spring": true, "labels": "off;0;on", "step": 40, "offset": -40, "submodel": "main_sw:" } },
|
||||
{ "id": "reverser", "type": "cab.switch", "title": "Direction", "params": { "behaviour": "multi", "positions": 3, "min": -1, "max": 1, "default": 0, "labels": "back;0;forward", "step": 45, "offset": -45, "submodel": "dirkey:" } },
|
||||
{ "id": "lever", "type": "cab.switch", "title": "Power/brake lever", "params": { "behaviour": "multi", "positions": 31, "min": -1, "max": 1, "default": 0, "step": 2, "offset": -30, "submodel": "jointctrl:" } },
|
||||
|
||||
{ "id": "pant_cmd", "type": "logic.sr", "title": "Pantographs commanded up" },
|
||||
{ "id": "pant_cmd_on", "type": "logic.and", "title": "Raising with battery" },
|
||||
{ "id": "pant_cmd_off", "type": "logic.nand", "title": "Lowering or battery off" },
|
||||
{ "id": "no_lower", "type": "logic.not", "title": "Lower button released" },
|
||||
{ "id": "pant_up", "type": "logic.ton", "title": "Pantograph raising", "params": { "time": 5.0 } },
|
||||
{ "id": "hv_nominal", "type": "logic.const", "title": "Catenary voltage", "params": { "value": 3000 } },
|
||||
{ "id": "hv", "type": "logic.math", "title": "Voltage behind the pantograph", "params": { "op": "mul" } },
|
||||
{ "id": "hv_ok", "type": "logic.hyst", "title": "Voltage above minimum", "params": { "lo": 1800, "hi": 1900 } },
|
||||
|
||||
{ "id": "ms_on_req", "type": "logic.compare", "title": "Main switch to on", "params": { "op": "gt", "value": 0 } },
|
||||
{ "id": "ms_off_req", "type": "logic.compare", "title": "Main switch to off", "params": { "op": "lt", "value": 0 } },
|
||||
{ "id": "ms_init", "type": "logic.ton", "title": "Main circuit initialisation", "params": { "time": 10.0 } },
|
||||
{ "id": "ms_close", "type": "logic.and", "title": "Closing allowed" },
|
||||
{ "id": "ms_lost", "type": "logic.nand", "title": "Battery or voltage missing" },
|
||||
{ "id": "ms_open", "type": "logic.or", "title": "Opening" },
|
||||
{ "id": "ms", "type": "logic.sr", "title": "Main circuit breaker" },
|
||||
{ "id": "ms_lamp_on", "type": "logic.not", "title": "Main circuit open" },
|
||||
|
||||
{ "id": "zero", "type": "logic.const", "title": "Zero", "params": { "value": 0 } },
|
||||
{ "id": "minus_one", "type": "logic.const", "title": "Minus one", "params": { "value": -1 } },
|
||||
{ "id": "lever_pos", "type": "logic.math", "title": "Traction part", "params": { "op": "max" } },
|
||||
{ "id": "lever_neg", "type": "logic.math", "title": "Lever inverted", "params": { "op": "mul" } },
|
||||
{ "id": "lever_brake", "type": "logic.math", "title": "Brake part", "params": { "op": "max" } },
|
||||
{ "id": "dir_set", "type": "logic.compare", "title": "Direction selected", "params": { "op": "ne", "value": 0 } },
|
||||
{ "id": "drive_ok", "type": "logic.and", "title": "Ready to drive" },
|
||||
{ "id": "traction", "type": "logic.select", "title": "Traction demand" },
|
||||
{ "id": "ed_brake", "type": "logic.select", "title": "ED brake demand" },
|
||||
|
||||
{ "id": "lamp_ms", "type": "fb.lamp", "title": "Main circuit lamp", "params": { "color": "red", "submodel": "i-mainbreaker:" } },
|
||||
{ "id": "lamp_pant", "type": "fb.lamp", "title": "Pantograph lamp", "params": { "color": "yellow", "blink": true, "blink_period": 1.0, "submodel": "i-pantraising:" } },
|
||||
{ "id": "pant_moving", "type": "logic.and", "title": "Pantograph moving" },
|
||||
{ "id": "pant_not_up", "type": "logic.not", "title": "Pantograph not up yet" },
|
||||
{ "id": "v_hv", "type": "fb.gauge", "title": "Catenary voltage", "params": { "min": 0, "max": 4000, "unit": "V", "angle_min": 0, "angle_max": 270, "submodel": "hvoltage:" } },
|
||||
{ "id": "v_demand", "type": "fb.gauge", "title": "Traction demand", "params": { "min": 0, "max": 1, "angle_min": 0, "angle_max": 270, "submodel": "tractionforce:" } },
|
||||
|
||||
{ "id": "snd_base", "type": "logic.const", "title": "Idle volume", "params": { "value": 0.3 } },
|
||||
{ "id": "snd_gain", "type": "logic.math", "title": "Volume rising with demand", "params": { "op": "add" } },
|
||||
{ "id": "snd_inverter", "type": "fb.sound", "title": "Inverters", "params": { "file": "vectron-inverter.wav", "placement": "engine", "loop": true } }
|
||||
],
|
||||
"connections": [
|
||||
{ "from": "pant_raise.pos", "to": "pant_cmd_on.a" },
|
||||
{ "from": "bat.pos", "to": "pant_cmd_on.b" },
|
||||
{ "from": "pant_lower.pos", "to": "no_lower.a" },
|
||||
{ "from": "no_lower.q", "to": "pant_cmd_off.a" },
|
||||
{ "from": "bat.pos", "to": "pant_cmd_off.b" },
|
||||
{ "from": "pant_cmd_on.q", "to": "pant_cmd.s" },
|
||||
{ "from": "pant_cmd_off.q", "to": "pant_cmd.r" },
|
||||
{ "from": "pant_cmd.q", "to": "pant_up.a" },
|
||||
{ "from": "hv_nominal.q", "to": "hv.a" },
|
||||
{ "from": "pant_up.q", "to": "hv.b" },
|
||||
{ "from": "hv.q", "to": "hv_ok.a" },
|
||||
{ "from": "hv.q", "to": "v_hv.value" },
|
||||
{ "from": "pant_up.q", "to": "pant_not_up.a" },
|
||||
{ "from": "pant_cmd.q", "to": "pant_moving.a" },
|
||||
{ "from": "pant_not_up.q", "to": "pant_moving.b" },
|
||||
{ "from": "pant_moving.q", "to": "lamp_pant.on" },
|
||||
|
||||
{ "from": "main_sw.pos", "to": "ms_on_req.a" },
|
||||
{ "from": "main_sw.pos", "to": "ms_off_req.a" },
|
||||
{ "from": "hv_ok.q", "to": "ms_init.a" },
|
||||
{ "from": "ms_on_req.q", "to": "ms_close.a" },
|
||||
{ "from": "ms_init.q", "to": "ms_close.b" },
|
||||
{ "from": "bat.pos", "to": "ms_lost.a" },
|
||||
{ "from": "hv_ok.q", "to": "ms_lost.b" },
|
||||
{ "from": "ms_off_req.q", "to": "ms_open.a" },
|
||||
{ "from": "ms_lost.q", "to": "ms_open.b" },
|
||||
{ "from": "ms_close.q", "to": "ms.s" },
|
||||
{ "from": "ms_open.q", "to": "ms.r" },
|
||||
{ "from": "ms.q", "to": "ms_lamp_on.a" },
|
||||
{ "from": "ms_lamp_on.q", "to": "lamp_ms.on" },
|
||||
|
||||
{ "from": "lever.pos", "to": "lever_pos.a" },
|
||||
{ "from": "zero.q", "to": "lever_pos.b" },
|
||||
{ "from": "lever.pos", "to": "lever_neg.a" },
|
||||
{ "from": "minus_one.q", "to": "lever_neg.b" },
|
||||
{ "from": "lever_neg.q", "to": "lever_brake.a" },
|
||||
{ "from": "zero.q", "to": "lever_brake.b" },
|
||||
{ "from": "reverser.pos", "to": "dir_set.a" },
|
||||
{ "from": "dir_set.q", "to": "drive_ok.a" },
|
||||
{ "from": "ms.q", "to": "drive_ok.b" },
|
||||
{ "from": "drive_ok.q", "to": "traction.sel" },
|
||||
{ "from": "zero.q", "to": "traction.a" },
|
||||
{ "from": "lever_pos.q", "to": "traction.b" },
|
||||
{ "from": "drive_ok.q", "to": "ed_brake.sel" },
|
||||
{ "from": "zero.q", "to": "ed_brake.a" },
|
||||
{ "from": "lever_brake.q", "to": "ed_brake.b" },
|
||||
{ "from": "traction.q", "to": "v_demand.value" },
|
||||
|
||||
{ "from": "ms.q", "to": "snd_inverter.play" },
|
||||
{ "from": "snd_base.q", "to": "snd_gain.a" },
|
||||
{ "from": "traction.q", "to": "snd_gain.b" },
|
||||
{ "from": "snd_gain.q", "to": "snd_inverter.volume" }
|
||||
]
|
||||
}
|
||||
96
tools/vehicle_graph/run_tests.py
Normal file
96
tools/vehicle_graph/run_tests.py
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Tests of the vehicle graph core, run through the simulator's -graph-run command.
|
||||
|
||||
usage: run_tests.py <simulator executable> [--update]
|
||||
|
||||
- every tests/*.vhg file starts with a line "// expect: ok", "// expect: error <text>" or "// expect: warning <text>",
|
||||
and is checked against the output of -graph-run;
|
||||
- every <name>.vhg with a <name>.script, in both directories, is run twice, and both results have to be identical (determinism)
|
||||
and equal to <name>.expected.csv. --update writes the current results as the expected ones.
|
||||
"""
|
||||
|
||||
import pathlib
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
ROOT = pathlib.Path(__file__).resolve().parent
|
||||
|
||||
|
||||
def run(executable, *arguments):
|
||||
result = subprocess.run([str(executable), "-graph-run", *map(str, arguments)], capture_output=True, text=True)
|
||||
return result.returncode, result.stdout + result.stderr
|
||||
|
||||
|
||||
def check_file(executable, path):
|
||||
first = path.read_text(encoding="utf-8").splitlines()[0]
|
||||
if not first.startswith("// expect:"):
|
||||
return f"{path.name}: missing '// expect:' line"
|
||||
expectation = first[len("// expect:"):].strip()
|
||||
kind, _, text = expectation.partition(" ")
|
||||
code, output = run(executable, path)
|
||||
if kind == "ok":
|
||||
if code != 0 or "error" in output:
|
||||
return f"{path.name}: expected no errors, got:\n{output}"
|
||||
elif kind == "error":
|
||||
if code == 0 or text not in output:
|
||||
return f"{path.name}: expected error containing '{text}', got (exit {code}):\n{output}"
|
||||
elif kind == "warning":
|
||||
if code != 0 or "warning" not in output or text not in output:
|
||||
return f"{path.name}: expected warning containing '{text}', got (exit {code}):\n{output}"
|
||||
else:
|
||||
return f"{path.name}: unknown expectation '{expectation}'"
|
||||
return None
|
||||
|
||||
|
||||
def check_example(executable, path, update):
|
||||
script = path.with_suffix(".script")
|
||||
expected = path.with_suffix(".expected.csv")
|
||||
results = []
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
for attempt in range(2):
|
||||
output = pathlib.Path(directory) / f"run{attempt}.csv"
|
||||
code, log = run(executable, path, "-script", script, "-every", 10, "-o", output)
|
||||
if code != 0:
|
||||
return f"{path.name}: run failed:\n{log}"
|
||||
# git may check the expected files out with windows line endings
|
||||
results.append(output.read_bytes().replace(b"\r\n", b"\n"))
|
||||
if results[0] != results[1]:
|
||||
return f"{path.name}: two runs gave different results"
|
||||
if update:
|
||||
expected.write_bytes(results[0])
|
||||
return None
|
||||
if not expected.exists():
|
||||
return f"{path.name}: missing {expected.name}, run with --update to create it"
|
||||
if expected.read_bytes().replace(b"\r\n", b"\n") != results[0]:
|
||||
return f"{path.name}: results differ from {expected.name}"
|
||||
return None
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print(__doc__)
|
||||
return 2
|
||||
executable = pathlib.Path(sys.argv[1]).resolve()
|
||||
update = "--update" in sys.argv[2:]
|
||||
failures = []
|
||||
count = 0
|
||||
for path in sorted((ROOT / "tests").glob("*.vhg")):
|
||||
count += 1
|
||||
problem = check_file(executable, path)
|
||||
if problem:
|
||||
failures.append(problem)
|
||||
for path in sorted((ROOT / "tests").glob("*.vhg")) + sorted((ROOT / "examples").glob("*.vhg")):
|
||||
if path.with_suffix(".script").exists():
|
||||
count += 1
|
||||
problem = check_example(executable, path, update)
|
||||
if problem:
|
||||
failures.append(problem)
|
||||
for problem in failures:
|
||||
print("FAIL", problem)
|
||||
print(f"{count - len(failures)} of {count} passed")
|
||||
return 1 if failures else 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
2
tools/vehicle_graph/tests/bad-choice.vhg
Normal file
2
tools/vehicle_graph/tests/bad-choice.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error has to be one of
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "sw", "type": "cab.switch", "params": { "behaviour": "bistabilny" } } ] }
|
||||
2
tools/vehicle_graph/tests/bad-param-type.vhg
Normal file
2
tools/vehicle_graph/tests/bad-param-type.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error has to be a number
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "sw", "type": "cab.switch", "params": { "positions": "3" } } ] }
|
||||
36
tools/vehicle_graph/tests/blocks.expected.csv
Normal file
36
tools/vehicle_graph/tests/blocks.expected.csv
Normal file
@@ -0,0 +1,36 @@
|
||||
time;x.q;y.q;and.q;or.q;xor.q;nand.q;nor.q;not.q;sr.q;sr_set.q;ton.q;tof.q;delay.q;hyst.q;le.q;div.q;min.q;sel.q;button.pos;button.index;lever.pos;lever.index;sr:state;sr_set:state;ton:elapsed;tof:elapsed;button:position;lever:position
|
||||
0.1;1;0;0;1;1;1;0;0;1;1;0;1;1;0;1;0;0;1;0;0;0;2;1;1;0.1;0;0;2
|
||||
0.2;1;0;0;1;1;1;0;0;1;1;0;1;1;0;1;0;0;1;0;0;0;2;1;1;0.2;0;0;2
|
||||
0.3;1;0;0;1;1;1;0;0;1;1;0;1;1;0;1;0;0;1;0;0;0;2;1;1;0.3;0;0;2
|
||||
0.4;1;1;1;1;0;0;0;0;0;1;0;1;1;0;1;1;1;1;0;0;0;2;0;1;0.4;0;0;2
|
||||
0.5;1;1;1;1;0;0;0;0;0;1;1;1;1;0;1;1;1;1;0;0;0;2;0;1;0.5;0;0;2
|
||||
0.6;1;1;1;1;0;0;0;0;0;1;1;1;1;0;1;1;1;1;0;0;0;2;0;1;0.5;0;0;2
|
||||
0.7;0;1;0;1;1;1;0;1;0;0;0;1;0;0;1;0;0;0;0;0;0;2;0;0;0;0.1;0;2
|
||||
0.8;0;1;0;1;1;1;0;1;0;0;0;1;0;0;1;0;0;2;1;1;2;4;0;0;0;0.2;1;4
|
||||
0.9;0;1;0;1;1;1;0;1;0;0;0;1;0;0;1;0;0;2;1;1;2;4;0;0;0;0.3;1;4
|
||||
1;0;1;0;1;1;1;0;1;0;0;0;1;0;0;1;0;0;0;0;0;2;4;0;0;0;0.4;0;4
|
||||
1.1;0;1;0;1;1;1;0;1;0;0;0;0;0;0;1;0;0;0;0;0;0;2;0;0;0;0.5;0;2
|
||||
1.2;3;1;1;1;0;0;0;0;0;1;0;1;3;0;1;3;1;3;0;0;0;2;0;1;0.1;0;0;2
|
||||
1.3;5;1;1;1;0;0;0;0;0;1;0;1;5;1;0;5;1;5;0;0;0;2;0;1;0.2;0;0;2
|
||||
1.4;2.5;1;1;1;0;0;0;0;0;1;0;1;2.5;1;1;2.5;1;2.5;0;0;0;2;0;1;0.3;0;0;2
|
||||
1.5;1;1;1;1;0;0;0;0;0;1;0;1;1;0;1;1;1;1;0;0;0;2;0;1;0.4;0;0;2
|
||||
1.6;1;0;0;1;1;1;0;0;1;1;1;1;1;0;1;0;0;1;0;0;0;2;1;1;0.5;0;0;2
|
||||
1.7;1;0;0;1;1;1;0;0;1;1;1;1;1;0;1;0;0;1;0;0;-2;0;1;1;0.5;0;0;0
|
||||
1.8;0;0;0;0;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.1;0;0
|
||||
1.9;0;0;0;0;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.2;0;0
|
||||
2;0;0;0;0;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.3;0;0
|
||||
2.1;0;0;0;0;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.4;0;0
|
||||
2.2;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.5;0;0
|
||||
2.3;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.5;0;0
|
||||
2.4;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.5;0;0
|
||||
2.5;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;0;0;0;-2;0;1;1;0;0.5;0;0
|
||||
2.6;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
2.7;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
2.8;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
2.9;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3.1;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3.2;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3.3;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3.4;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
3.5;0;0;0;0;0;1;1;1;1;1;0;0;0;0;1;0;0;-2;1;1;-2;0;1;1;0;0.5;1;0
|
||||
|
16
tools/vehicle_graph/tests/blocks.script
Normal file
16
tools/vehicle_graph/tests/blocks.script
Normal file
@@ -0,0 +1,16 @@
|
||||
0.0 force x.q 1
|
||||
0.3 force y.q 1
|
||||
0.6 force x.q 0
|
||||
0.7 press button
|
||||
0.71 inc lever
|
||||
0.72 inc lever
|
||||
0.9 release button
|
||||
1.0 release lever
|
||||
1.1 force x.q 3
|
||||
1.2 force x.q 5
|
||||
1.3 force x.q 2.5
|
||||
1.4 force x.q 1
|
||||
1.5 force y.q 0
|
||||
1.6 value lever -1.9
|
||||
1.7 unforce x.q
|
||||
2.5 toggle button
|
||||
39
tools/vehicle_graph/tests/blocks.vhg
Normal file
39
tools/vehicle_graph/tests/blocks.vhg
Normal file
@@ -0,0 +1,39 @@
|
||||
// expect: ok
|
||||
// every logic block driven by forced inputs; see blocks.script
|
||||
{
|
||||
"format": "maszyna-vehicle-graph", "version": 2,
|
||||
"nodes": [
|
||||
{ "id": "x", "type": "logic.const", "params": { "value": 0 } },
|
||||
{ "id": "y", "type": "logic.const", "params": { "value": 0 } },
|
||||
{ "id": "and", "type": "logic.and" }, { "id": "or", "type": "logic.or" }, { "id": "xor", "type": "logic.xor" },
|
||||
{ "id": "nand", "type": "logic.nand" }, { "id": "nor", "type": "logic.nor" }, { "id": "not", "type": "logic.not" },
|
||||
{ "id": "sr", "type": "logic.sr" },
|
||||
{ "id": "sr_set", "type": "logic.sr", "params": { "reset_priority": false } },
|
||||
{ "id": "ton", "type": "logic.ton", "params": { "time": 0.5 } },
|
||||
{ "id": "tof", "type": "logic.tof", "params": { "time": 0.5 } },
|
||||
{ "id": "delay", "type": "logic.delay", "params": { "initial": 7 } },
|
||||
{ "id": "hyst", "type": "logic.hyst", "params": { "lo": 2, "hi": 4 } },
|
||||
{ "id": "le", "type": "logic.compare", "params": { "op": "le", "value": 3 } },
|
||||
{ "id": "div", "type": "logic.math", "params": { "op": "div" } },
|
||||
{ "id": "min", "type": "logic.math", "params": { "op": "min" } },
|
||||
{ "id": "sel", "type": "logic.select" },
|
||||
{ "id": "button", "type": "cab.switch", "params": { "behaviour": "monostable" } },
|
||||
{ "id": "lever", "type": "cab.switch", "params": { "behaviour": "multi", "positions": 5, "min": -2, "max": 2, "default": 0, "spring": true } }
|
||||
],
|
||||
"connections": [
|
||||
{ "from": "x.q", "to": "and.a" }, { "from": "y.q", "to": "and.b" },
|
||||
{ "from": "x.q", "to": "or.a" }, { "from": "y.q", "to": "or.b" },
|
||||
{ "from": "x.q", "to": "xor.a" }, { "from": "y.q", "to": "xor.b" },
|
||||
{ "from": "x.q", "to": "nand.a" }, { "from": "y.q", "to": "nand.b" },
|
||||
{ "from": "x.q", "to": "nor.a" }, { "from": "y.q", "to": "nor.b" },
|
||||
{ "from": "x.q", "to": "not.a" },
|
||||
{ "from": "x.q", "to": "sr.s" }, { "from": "y.q", "to": "sr.r" },
|
||||
{ "from": "x.q", "to": "sr_set.s" }, { "from": "y.q", "to": "sr_set.r" },
|
||||
{ "from": "x.q", "to": "ton.a" }, { "from": "x.q", "to": "tof.a" },
|
||||
{ "from": "x.q", "to": "delay.a" },
|
||||
{ "from": "x.q", "to": "hyst.a" }, { "from": "x.q", "to": "le.a" },
|
||||
{ "from": "x.q", "to": "div.a" }, { "from": "y.q", "to": "div.b" },
|
||||
{ "from": "x.q", "to": "min.a" }, { "from": "y.q", "to": "min.b" },
|
||||
{ "from": "button.pos", "to": "sel.sel" }, { "from": "x.q", "to": "sel.a" }, { "from": "lever.pos", "to": "sel.b" }
|
||||
]
|
||||
}
|
||||
3
tools/vehicle_graph/tests/domain-mismatch.vhg
Normal file
3
tools/vehicle_graph/tests/domain-mismatch.vhg
Normal file
@@ -0,0 +1,3 @@
|
||||
// expect: error joins different domains
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "a", "type": "cab.switch" }, { "id": "lamp", "type": "fb.lamp" } ],
|
||||
"connections": [ { "from": "a.pos", "to": "lamp.supply" } ] }
|
||||
2
tools/vehicle_graph/tests/duplicate-id.vhg
Normal file
2
tools/vehicle_graph/tests/duplicate-id.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error duplicate node id
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "a", "type": "logic.not" }, { "id": "a", "type": "logic.not" } ] }
|
||||
15
tools/vehicle_graph/tests/loop-deferred.vhg
Normal file
15
tools/vehicle_graph/tests/loop-deferred.vhg
Normal file
@@ -0,0 +1,15 @@
|
||||
// expect: ok
|
||||
// the same self-holding circuit as loop.vhg, closed through a unit delay
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [
|
||||
{ "id": "start", "type": "cab.switch" },
|
||||
{ "id": "hold", "type": "logic.or" },
|
||||
{ "id": "coil", "type": "logic.and" },
|
||||
{ "id": "stop", "type": "logic.const", "params": { "value": 1 } },
|
||||
{ "id": "contact", "type": "logic.delay" }
|
||||
], "connections": [
|
||||
{ "from": "start.pos", "to": "hold.a" },
|
||||
{ "from": "contact.q", "to": "hold.b" },
|
||||
{ "from": "hold.q", "to": "coil.a" },
|
||||
{ "from": "stop.q", "to": "coil.b" },
|
||||
{ "from": "coil.q", "to": "contact.a" }
|
||||
] }
|
||||
12
tools/vehicle_graph/tests/loop.vhg
Normal file
12
tools/vehicle_graph/tests/loop.vhg
Normal file
@@ -0,0 +1,12 @@
|
||||
// expect: error loop without a deferred block
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [
|
||||
{ "id": "start", "type": "cab.switch" },
|
||||
{ "id": "hold", "type": "logic.or" },
|
||||
{ "id": "coil", "type": "logic.and" },
|
||||
{ "id": "stop", "type": "logic.const", "params": { "value": 1 } }
|
||||
], "connections": [
|
||||
{ "from": "start.pos", "to": "hold.a" },
|
||||
{ "from": "coil.q", "to": "hold.b" },
|
||||
{ "from": "hold.q", "to": "coil.a" },
|
||||
{ "from": "stop.q", "to": "coil.b" }
|
||||
] }
|
||||
2
tools/vehicle_graph/tests/malformed.vhg
Normal file
2
tools/vehicle_graph/tests/malformed.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error malformed file
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": 5, "type": "logic.not" } ] }
|
||||
4
tools/vehicle_graph/tests/two-sources.vhg
Normal file
4
tools/vehicle_graph/tests/two-sources.vhg
Normal file
@@ -0,0 +1,4 @@
|
||||
// expect: error has more than one source
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [
|
||||
{ "id": "a", "type": "cab.switch" }, { "id": "b", "type": "cab.switch" }, { "id": "n", "type": "logic.not" }
|
||||
], "connections": [ { "from": "a.pos", "to": "n.a" }, { "from": "b.pos", "to": "n.a" } ] }
|
||||
2
tools/vehicle_graph/tests/unconnected.vhg
Normal file
2
tools/vehicle_graph/tests/unconnected.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: warning required input "a" isn't connected
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "n", "type": "logic.not" } ] }
|
||||
2
tools/vehicle_graph/tests/unknown-type.vhg
Normal file
2
tools/vehicle_graph/tests/unknown-type.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error unknown block type
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "x", "type": "el.flux_capacitor" } ] }
|
||||
2
tools/vehicle_graph/tests/version-1.vhg
Normal file
2
tools/vehicle_graph/tests/version-1.vhg
Normal file
@@ -0,0 +1,2 @@
|
||||
// expect: error unsupported file version 1
|
||||
{ "format": "maszyna-vehicle-graph", "version": 1, "nodes": [] }
|
||||
3
tools/vehicle_graph/tests/wrong-direction.vhg
Normal file
3
tools/vehicle_graph/tests/wrong-direction.vhg
Normal file
@@ -0,0 +1,3 @@
|
||||
// expect: error isn't an output
|
||||
{ "format": "maszyna-vehicle-graph", "version": 2, "nodes": [ { "id": "a", "type": "logic.not" }, { "id": "b", "type": "logic.not" } ],
|
||||
"connections": [ { "from": "a.a", "to": "b.a" } ] }
|
||||
Reference in New Issue
Block a user