Skip to content

Commit 89e0975

Browse files
committed
Workbench documentation
1 parent b5c2230 commit 89e0975

File tree

2 files changed

+43
-39
lines changed

2 files changed

+43
-39
lines changed

docs/Glossary/Toolbox.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ layout: default
55
parent: Schema & Glossary
66
---
77

8-
WORK IN PROGRESS - NOT READY
9-
108
# Toolbox
119

1210
A toolbox is full of abstract objects that can be thought of as reusable patterns or templates that the concrete components in a workbench satisfy.

docs/Glossary/Workbench.md

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,24 @@ layout: default
55
parent: Schema & Glossary
66
---
77

8-
WORK IN PROGRESS - NOT READY
9-
108
# Workbench
119

1210
A workbench consists of the concrete components implemented from the abstract components of the toolbox.
1311

12+
A workbench contains the following:
13+
- **Processors**: The implementations of blocks
14+
- **Wires**: The implementations of spaces which are passed from one processor terminal to another processor port
15+
- **Systems**: The definitions of wires and processors that form unique systems
1416

1517
## Schema
1618

1719
The top level schema of a workbench is:
1820

19-
```json
20-
{
21-
"ID": "string (required)",
22-
"Parent": "block_id (required)",
23-
"Name": "string (required)",
24-
"Description": "string (optional)",
25-
"Ports": "array[Space] (must match parent block Domain)",
26-
"Terminals": "array[Space] (must match parent block Codomain)"
21+
```
22+
object {
23+
Processors: array[Processor] (required)
24+
Wires: array[Wire] (required)
25+
Systems: array[System] (required)
2726
}
2827
```
2928

@@ -32,39 +31,46 @@ And the children schemas are as follows below.
3231
### Processor Schema
3332

3433

35-
```json
36-
{
37-
"ID": "string (required)",
38-
"Parent": "block_id (required)",
39-
"Name": "string (required)",
40-
"Description": "string (optional)",
41-
"Ports": "array[Space] (must match parent block Domain)",
42-
"Terminals": "array[Space] (must match parent block Codomain)"
43-
}
34+
```
35+
object {
36+
ID: string (required)
37+
Name: string (required)
38+
Description: string
39+
Parent: string (required)
40+
Ports: array[string]
41+
Terminals: array[string] (required)
42+
Subsystem: object {
43+
System ID: string (required)
44+
Wires: array[string] (required)
45+
}
46+
}
4447
```
4548

4649
### Wire Schema
4750

48-
```json
49-
{
50-
"ID": "string (required)",
51-
"Parent": "space_id (required)",
52-
"Name": "string (optional)",
53-
"Description": "string (optional)",
54-
"Source": "tuple(processor_id, int) (must be valid terminal)",
55-
"Destination": "tuple(processor_id, int) (must be valid port)"
56-
}
51+
```
52+
object {
53+
ID: string (required)
54+
Parent: string (required)
55+
Source: object {
56+
Processor: string
57+
Index: integer
58+
}
59+
Target: object {
60+
Processor: string
61+
Index: integer
62+
}
63+
}
5764
```
5865

5966
### System Schema
6067

61-
```json
62-
{
63-
"ID": "string (required)",
64-
"Parent": "space_id (required)",
65-
"Name": "string (optional)",
66-
"Description": "string (optional)",
67-
"Source": "tuple(processor_id, int) (must be valid terminal)",
68-
"Destination": "tuple(processor_id, int) (must be valid port)"
69-
}
68+
```
69+
object {
70+
ID: string (required)
71+
Name: string (required)
72+
Description: string
73+
Processors: array[string] (required)
74+
Wires: array[string] (required)
75+
}
7076
```

0 commit comments

Comments
 (0)