rsmp 0.43.2 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +11 -11
- data/README.md +19 -3
- data/Rakefile +2 -2
- data/config/supervisor.yaml +2 -1
- data/config/tlc.yaml +2 -2
- data/lib/rsmp/cli.rb +29 -5
- data/lib/rsmp/component/component.rb +0 -4
- data/lib/rsmp/component/component_base.rb +15 -2
- data/lib/rsmp/component/component_proxy.rb +1 -1
- data/lib/rsmp/component/components.rb +22 -1
- data/lib/rsmp/convert/export/json_schema/outputs.rb +1 -0
- data/lib/rsmp/convert/export/json_schema/values.rb +6 -4
- data/lib/rsmp/convert/export/json_schema.rb +7 -3
- data/lib/rsmp/helpers/deep_merge.rb +2 -2
- data/lib/rsmp/message.rb +32 -0
- data/lib/rsmp/node/site/site.rb +34 -10
- data/lib/rsmp/node/supervisor/modules/configuration.rb +32 -5
- data/lib/rsmp/node/supervisor/modules/connection.rb +0 -2
- data/lib/rsmp/node/supervisor/supervisor.rb +0 -7
- data/lib/rsmp/options/options.rb +55 -6
- data/lib/rsmp/options/schemas/site.json +6 -3
- data/lib/rsmp/options/schemas/supervisor.json +5 -2
- data/lib/rsmp/options/schemas/supervisor_site.json +5 -2
- data/lib/rsmp/options/site_options.rb +3 -2
- data/lib/rsmp/options/supervisor_options.rb +3 -1
- data/lib/rsmp/proxy/modules/acknowledgements.rb +2 -0
- data/lib/rsmp/proxy/modules/receive.rb +5 -2
- data/lib/rsmp/proxy/modules/state.rb +1 -0
- data/lib/rsmp/proxy/modules/versions.rb +90 -15
- data/lib/rsmp/proxy/proxy.rb +52 -3
- data/lib/rsmp/proxy/site/modules/status.rb +5 -3
- data/lib/rsmp/proxy/site/site_proxy.rb +68 -35
- data/lib/rsmp/proxy/site/sxl_selection.rb +54 -0
- data/lib/rsmp/proxy/supervisor/supervisor_proxy.rb +54 -18
- data/lib/rsmp/schema/message_resolution.rb +104 -0
- data/lib/rsmp/schema.rb +104 -22
- data/lib/rsmp/schema_error.rb +7 -1
- data/lib/rsmp/sxl/interface.rb +48 -0
- data/lib/rsmp/sxl/registry.rb +55 -0
- data/lib/rsmp/sxl/site_interface.rb +10 -0
- data/lib/rsmp/sxl/supervisor_interface.rb +21 -0
- data/lib/rsmp/tlc/detector_logic.rb +2 -2
- data/lib/rsmp/tlc/signal_group.rb +2 -2
- data/lib/rsmp/tlc/site_interface.rb +10 -0
- data/lib/rsmp/tlc/{traffic_controller_proxy.rb → supervisor_interface.rb} +19 -34
- data/lib/rsmp/tlc/traffic_controller.rb +10 -2
- data/lib/rsmp/tlc/traffic_controller_site.rb +4 -2
- data/lib/rsmp/tlc.rb +10 -0
- data/lib/rsmp/version.rb +1 -1
- data/lib/rsmp.rb +8 -1
- data/rsmp.gemspec +5 -5
- data/schemas/core/3.3.0/aggregated_status.json +25 -0
- data/schemas/core/3.3.0/aggregated_status_request.json +9 -0
- data/schemas/core/3.3.0/alarm.json +71 -0
- data/schemas/core/3.3.0/alarm_acknowledge.json +11 -0
- data/schemas/core/3.3.0/alarm_issue.json +44 -0
- data/schemas/core/3.3.0/alarm_request.json +3 -0
- data/schemas/core/3.3.0/alarm_suspend_resume.json +3 -0
- data/schemas/core/3.3.0/alarm_suspended_resumed.json +44 -0
- data/schemas/core/3.3.0/command_request.json +24 -0
- data/schemas/core/3.3.0/command_response.json +35 -0
- data/schemas/core/3.3.0/component_list.json +24 -0
- data/schemas/core/3.3.0/core.json +40 -0
- data/schemas/core/3.3.0/definitions.json +133 -0
- data/schemas/core/3.3.0/message_ack.json +11 -0
- data/schemas/core/3.3.0/message_not_ack.json +15 -0
- data/schemas/core/3.3.0/rsmp.json +142 -0
- data/schemas/core/3.3.0/status.json +21 -0
- data/schemas/core/3.3.0/status_request.json +5 -0
- data/schemas/core/3.3.0/status_response.json +41 -0
- data/schemas/core/3.3.0/status_subscribe.json +31 -0
- data/schemas/core/3.3.0/status_unsubscribe.json +5 -0
- data/schemas/core/3.3.0/status_update.json +41 -0
- data/schemas/core/3.3.0/version.json +144 -0
- data/schemas/core/3.3.0/watchdog.json +9 -0
- data/schemas/tlc/1.3.0/alarms/A0001.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0002.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0003.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0004.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0005.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0006.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0007.json +34 -0
- data/schemas/tlc/1.3.0/alarms/A0008.json +30 -0
- data/schemas/tlc/1.3.0/alarms/A0009.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0010.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0101.json +4 -0
- data/schemas/tlc/1.3.0/alarms/A0201.json +35 -0
- data/schemas/tlc/1.3.0/alarms/A0202.json +35 -0
- data/schemas/tlc/1.3.0/alarms/A0301.json +92 -0
- data/schemas/tlc/1.3.0/alarms/A0302.json +115 -0
- data/schemas/tlc/1.3.0/alarms/A0303.json +92 -0
- data/schemas/tlc/1.3.0/alarms/A0304.json +115 -0
- data/schemas/tlc/1.3.0/alarms/alarms.json +287 -0
- data/schemas/tlc/1.3.0/commands/M0001.json +92 -0
- data/schemas/tlc/1.3.0/commands/M0002.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0003.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0004.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0005.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0006.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0007.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0008.json +87 -0
- data/schemas/tlc/1.3.0/commands/M0010.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0011.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0012.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0013.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0014.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0015.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0016.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0017.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0018.json +69 -0
- data/schemas/tlc/1.3.0/commands/M0019.json +87 -0
- data/schemas/tlc/1.3.0/commands/M0020.json +87 -0
- data/schemas/tlc/1.3.0/commands/M0021.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0022.json +249 -0
- data/schemas/tlc/1.3.0/commands/M0023.json +51 -0
- data/schemas/tlc/1.3.0/commands/M0024.json +33 -0
- data/schemas/tlc/1.3.0/commands/M0103.json +72 -0
- data/schemas/tlc/1.3.0/commands/M0104.json +141 -0
- data/schemas/tlc/1.3.0/commands/command_requests.json +8 -0
- data/schemas/tlc/1.3.0/commands/command_responses.json +8 -0
- data/schemas/tlc/1.3.0/commands/commands.json +415 -0
- data/schemas/tlc/1.3.0/defs/definitions.json +72 -0
- data/schemas/tlc/1.3.0/defs/guards.json +24 -0
- data/schemas/tlc/1.3.0/rsmp.json +74 -0
- data/schemas/tlc/1.3.0/statuses/S0001.json +109 -0
- data/schemas/tlc/1.3.0/statuses/S0002.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0003.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0004.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0005.json +72 -0
- data/schemas/tlc/1.3.0/statuses/S0006.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0007.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0008.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0009.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0010.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0011.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0012.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0013.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0014.json +55 -0
- data/schemas/tlc/1.3.0/statuses/S0015.json +55 -0
- data/schemas/tlc/1.3.0/statuses/S0016.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0017.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0018.json +61 -0
- data/schemas/tlc/1.3.0/statuses/S0019.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0020.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0021.json +37 -0
- data/schemas/tlc/1.3.0/statuses/S0022.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0023.json +37 -0
- data/schemas/tlc/1.3.0/statuses/S0024.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0025.json +162 -0
- data/schemas/tlc/1.3.0/statuses/S0026.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0027.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0028.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0029.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0030.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0031.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0032.json +73 -0
- data/schemas/tlc/1.3.0/statuses/S0033.json +77 -0
- data/schemas/tlc/1.3.0/statuses/S0034.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0035.json +49 -0
- data/schemas/tlc/1.3.0/statuses/S0091.json +40 -0
- data/schemas/tlc/1.3.0/statuses/S0092.json +40 -0
- data/schemas/tlc/1.3.0/statuses/S0095.json +36 -0
- data/schemas/tlc/1.3.0/statuses/S0096.json +126 -0
- data/schemas/tlc/1.3.0/statuses/S0097.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0098.json +72 -0
- data/schemas/tlc/1.3.0/statuses/S0201.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0202.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0203.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0204.json +198 -0
- data/schemas/tlc/1.3.0/statuses/S0205.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0206.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0207.json +54 -0
- data/schemas/tlc/1.3.0/statuses/S0208.json +198 -0
- data/schemas/tlc/1.3.0/statuses/statuses.json +787 -0
- data/schemas/tlc/1.3.0/sxl.yaml +2296 -0
- metadata +144 -12
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Dynamic bands.\nProvides a list of all defined dynamic bands. Dynamic bands moves start of signal groups in the cycle and changes the signal timings.\nA typical usage of dynamic bands is scenario based control where changing of signal timings is used for optimal traffic flow.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Dynamic bands.\nEach dynamic band are written as pp-dd-ee where:\npp=Time plan\ndd=Dynamic band number (from 1-10)\nee=Extension in seconds in this band\n\nEach dynamic band is separated with a comma.\n\nE.g.\npp-dd-ee,pp-dd-ee",
|
|
29
|
+
"type" : "string",
|
|
30
|
+
"pattern" : "(^$)|(^(?<item>(\\d{1,2})\\-\\d{1,2}-\\d{1,2})(,\\g<item>)*$)"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Offset time.\nOffset time is used to define an offset between intersections in coordinated control. It is based on the expected travel time between intersections.\nCan be used by the management system to check to fine tune the coordination for optimal traffic flow.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Offset table\nEach offset time is written as p-t where:\np=time plan number (from 1 to 255)\nt=offset time in seconds (from 0 to 255)\n\nEach offset time is separated with a comma\n\nE.g.\n1-0,2-13-3-7",
|
|
29
|
+
"$ref" : "../defs/definitions.json#/string_list"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Time-of-Green / Time-of-Red.\nProvides predicted signal timings of green and red for each signal group. Max, min and likely time to green and red.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"ToGConfidence",
|
|
8
|
+
"ToRConfidence",
|
|
9
|
+
"likelyToGEstimate",
|
|
10
|
+
"likelyToREstimate",
|
|
11
|
+
"maxToGEstimate",
|
|
12
|
+
"maxToREstimate",
|
|
13
|
+
"minToGEstimate",
|
|
14
|
+
"minToREstimate"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"if" : {
|
|
19
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
20
|
+
},
|
|
21
|
+
"then" : {},
|
|
22
|
+
"else" : {
|
|
23
|
+
"allOf" : [
|
|
24
|
+
{
|
|
25
|
+
"if" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"n" : {
|
|
28
|
+
"const" : "minToGEstimate"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"then" : {
|
|
33
|
+
"properties" : {
|
|
34
|
+
"s" : {
|
|
35
|
+
"description" : "Time stamp for the minimum time for the signal group to go to green. If the signal group is green, it is the minimum time for the next green.",
|
|
36
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"if" : {
|
|
43
|
+
"properties" : {
|
|
44
|
+
"n" : {
|
|
45
|
+
"const" : "maxToGEstimate"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"then" : {
|
|
50
|
+
"properties" : {
|
|
51
|
+
"s" : {
|
|
52
|
+
"description" : "Time stamp for the maximum time for the signal group to go to green. If the signal group is green, it is the maximum time for the next green.",
|
|
53
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"if" : {
|
|
60
|
+
"properties" : {
|
|
61
|
+
"n" : {
|
|
62
|
+
"const" : "likelyToGEstimate"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"then" : {
|
|
67
|
+
"properties" : {
|
|
68
|
+
"s" : {
|
|
69
|
+
"description" : "Time stamp for the most likely time for the signal group to go to green. If the signal group is green, it is the most likely time for the next green.",
|
|
70
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"if" : {
|
|
77
|
+
"properties" : {
|
|
78
|
+
"n" : {
|
|
79
|
+
"const" : "ToGConfidence"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"then" : {
|
|
84
|
+
"properties" : {
|
|
85
|
+
"s" : {
|
|
86
|
+
"description" : "Confidence of the likelyToGEstimate. 0-100%",
|
|
87
|
+
"type" : "string"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"if" : {
|
|
94
|
+
"properties" : {
|
|
95
|
+
"n" : {
|
|
96
|
+
"const" : "minToREstimate"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"then" : {
|
|
101
|
+
"properties" : {
|
|
102
|
+
"s" : {
|
|
103
|
+
"description" : "Time stamp for the minimum time for the signal group to go to red. If the signal group is red, it is the minimum time for the next red.",
|
|
104
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"if" : {
|
|
111
|
+
"properties" : {
|
|
112
|
+
"n" : {
|
|
113
|
+
"const" : "maxToREstimate"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"then" : {
|
|
118
|
+
"properties" : {
|
|
119
|
+
"s" : {
|
|
120
|
+
"description" : "Time stamp for the maximum time for the signal group to go to red. If the signal group is red, it is the maximum time for the next red.",
|
|
121
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"if" : {
|
|
128
|
+
"properties" : {
|
|
129
|
+
"n" : {
|
|
130
|
+
"const" : "likelyToREstimate"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"then" : {
|
|
135
|
+
"properties" : {
|
|
136
|
+
"s" : {
|
|
137
|
+
"description" : "Time stamp for the most likely time for the signal group to go to red. If the signal group is red, it is the most likely time for the next red.",
|
|
138
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"if" : {
|
|
145
|
+
"properties" : {
|
|
146
|
+
"n" : {
|
|
147
|
+
"const" : "ToRConfidence"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"then" : {
|
|
152
|
+
"properties" : {
|
|
153
|
+
"s" : {
|
|
154
|
+
"description" : "Confidence of the likelyToREstimate. 0-100%",
|
|
155
|
+
"type" : "string"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Week time table.\nWeek time table for signal programs (time plan) to use for each day during a week.\nThe week time table determine which predefined signal timings (time plan) to use during the week for optimal traffic flow.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Week time table. Defines time table to use for each week day\nEach day is written as d-t where:\nd=day of week\nt=time table nr\n\nDay of week legend:\n0=Monday\n1=Tuesday\n2=Wednesday\n3=Thursday\n4=Friday\n5=Saturday\n6=Sunday\n\nEach segment is separated with a comma\nE.g.\nd-t,d-t",
|
|
29
|
+
"$ref" : "../defs/definitions.json#/string_list"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Time tables.\nTime of day for when to switch signal program (time plan).\nThe signal timings (time plan) to use during time of day for optimal traffic flow.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Time Table. Defines time tables.\nEach time definition is written as t-o-h-m where:\nt=time table nr (1-12)\no=function\nh=hour - switching time\nm=minute - switching minute\n\nFunction legend:\n0=no plan is selected by time table\n1=set plan 1\n…\n16= set plan 16\n\nhour and minute is using local time (not UTC)\n\nEach time definition is separated with a comma\n\nE.g.\nt-o-h-m,t-o-h-m",
|
|
29
|
+
"$ref" : "../defs/definitions.json#/string_list"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Cycle time.\nCycle time (or cycle length) is the sum of all phases in a time plan (traffic program). This time is fixed when using fixed time control or coordination (except \"local coordination\"). When the cycle counter reaches this length it is reset back to zero.\nChanging the cycle time can be used as part of scenario based control.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Cycle time table\nEach cycle time is written as pp-tt where:\npp=time plan\ntt=cycle time in seconds\n\nEach cycle time is separated with a comma\n\nE.g.\npp-tt,pp-tt",
|
|
29
|
+
"$ref" : "../defs/definitions.json#/string_list"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Forced input status.\nProvide status of input (1-255) regarding if they are forced or not. Can be used for all types of input where the traffic light controller must react to external control.\nCan be used for bus priority, coordination between traffic controllers, external control systems, and much more.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Forced input status as text field.\nEach character represent the state in consecutive order,\nwhere the leftmost character starts with input 1.\n0 : Input not forced\n1 : Input forced\n- : Input undefined/does not exist",
|
|
29
|
+
"type" : "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Forced output status.\nProvide status of output (1-255) regarding if they are forced or not. Can be used for all types of output where the traffic light controller needs to control other equipment.\nCan be used for bus priority, coordination between traffic controllers, external control systems, and much more.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Forced output status as text field.\nEach character represent the state in consecutive order,\nwhere the leftmost character starts with output 1.\n0 : Output not forced\n1 : Output forced\n- : Output undefined/does not exist",
|
|
29
|
+
"type" : "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Trigger level sensitivity for loop detector.\nThe trigger level sensitivity determines at what level the loop detector should trigger. If it set too low then then traffic will not be detected as intended. If it is set too high the detector might give false positives.\nCan be used to make sure that the detectors detect traffic as intended.",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Loop detector trigger level sensitivity is written as dd-ss where:\ndd=loop detector number\nss=sensitivity value\nEach loop detector is separated with a comma. E.g.dd-ss,dd-ss.",
|
|
29
|
+
"$ref" : "../defs/definitions.json#/string_list"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Coordinated control\nThis status is used when coordination between traffic light controllers is active. Coordination is described in detail in the corresponding section\nPlease note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “centralized,off”",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"intersection",
|
|
8
|
+
"source",
|
|
9
|
+
"status"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"if" : {
|
|
14
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
15
|
+
},
|
|
16
|
+
"then" : {},
|
|
17
|
+
"else" : {
|
|
18
|
+
"allOf" : [
|
|
19
|
+
{
|
|
20
|
+
"if" : {
|
|
21
|
+
"properties" : {
|
|
22
|
+
"n" : {
|
|
23
|
+
"const" : "intersection"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"then" : {
|
|
28
|
+
"properties" : {
|
|
29
|
+
"s" : {
|
|
30
|
+
"description" : "Comma separated list of intersections which the status relates to, e.g. “1,2”.\nUse “0” for all intersections of the TLC.",
|
|
31
|
+
"$ref" : "../defs/definitions.json#/integer_list"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"if" : {
|
|
38
|
+
"properties" : {
|
|
39
|
+
"n" : {
|
|
40
|
+
"const" : "status"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"then" : {
|
|
45
|
+
"properties" : {
|
|
46
|
+
"s" : {
|
|
47
|
+
"$ref" : "../defs/definitions.json#/string_list",
|
|
48
|
+
"pattern" : "(?-mix:^(local|centralized|off)(?:,(local|centralized|off))*$)"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"if" : {
|
|
55
|
+
"properties" : {
|
|
56
|
+
"n" : {
|
|
57
|
+
"const" : "source"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"then" : {
|
|
62
|
+
"properties" : {
|
|
63
|
+
"s" : {
|
|
64
|
+
"description" : "Source of the status change",
|
|
65
|
+
"$ref" : "../defs/definitions.json#/string_list",
|
|
66
|
+
"pattern" : "(?-mix:^(operator_panel|calendar_clock|control_block|forced|startup|other)(?:,(operator_panel|calendar_clock|control_block|forced|startup|other))*$)"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Signal Priority Status\nThis status can be used to get updates about priority requests. For example, you can use it to know when priority requests are activated or cancelled.\nA list of priorities is returned, referred to by their request ids. The same request id can appear only once.\nAll priorities are included in the list (not only the ones that have changed state since the last update). This is done regardless of whether the status is send in respond to a status request, or due to a status subscription, and also regardless of whether a status subscription uses an update interval, or send-on-change, or both.\nIf you subscribe using an update interval, you’re not guaranteed to get all intermediate states. To guarantee that, send-on-change must be used when subscribing.\nTo understand how this status relates to ETSI/J2735, please see the [wiki](https://github.com/rsmp-nordic/rsmp_sxl_traffic_lights/wiki/Signal-priority-and-ETSI-J2735).\nAll priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used.\nWhen a priority reaches an end states (completed, timeout, rejected, cooldown or stale), it must be sent once on the next status update, then removed from the list.\nA request always starts in the ‘received’ state. The following table shows the possible state transitions:\n\nState | Possible next states\n---------- | -------------------------------------\nreceived | queued, activated, rejected, cooldown\nqueued | activated, timeout\nactivated | completed, stale\ncompleted |\ntimeout |\nrejected |\ncooldown |\nstale |",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "JSON array of priority status items",
|
|
29
|
+
"type" : "array",
|
|
30
|
+
"items" : {
|
|
31
|
+
"type" : "object",
|
|
32
|
+
"required" : [
|
|
33
|
+
"r",
|
|
34
|
+
"s",
|
|
35
|
+
"t"
|
|
36
|
+
],
|
|
37
|
+
"unevaluatedProperties" : false,
|
|
38
|
+
"properties" : {
|
|
39
|
+
"r" : {
|
|
40
|
+
"description" : "ID of the priority request",
|
|
41
|
+
"type" : "string"
|
|
42
|
+
},
|
|
43
|
+
"t" : {
|
|
44
|
+
"description" : "Timestamp, indicating when the priority last changed state.",
|
|
45
|
+
"$ref" : "../defs/definitions.json#/timestamp"
|
|
46
|
+
},
|
|
47
|
+
"s" : {
|
|
48
|
+
"description" : "Current status of the priority request",
|
|
49
|
+
"type" : "string",
|
|
50
|
+
"enum" : [
|
|
51
|
+
"activated",
|
|
52
|
+
"completed",
|
|
53
|
+
"cooldown",
|
|
54
|
+
"queued",
|
|
55
|
+
"received",
|
|
56
|
+
"rejected",
|
|
57
|
+
"stale",
|
|
58
|
+
"timeout"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"e" : {
|
|
62
|
+
"description" : "Estimated green extension provided by the priority, in seconds\nOnly used when state is ‘completed’.",
|
|
63
|
+
"type" : "string"
|
|
64
|
+
},
|
|
65
|
+
"d" : {
|
|
66
|
+
"description" : "Estimated red reduction provided by the priority, in seconds\nOnly used when state is ‘completed’.",
|
|
67
|
+
"type" : "string"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description" : "Timeout for dynamic bands.\nTime until a designated time plan is entered due to lost connection with the supervisor.\nDisabled if set to '0'.\nUsed in conjunction with dynamic bands, M0014",
|
|
4
|
+
"properties" : {
|
|
5
|
+
"n" : {
|
|
6
|
+
"enum" : [
|
|
7
|
+
"status"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"if" : {
|
|
12
|
+
"$ref" : "../defs/guards.json#/$defs/q_unknown_or_undefined"
|
|
13
|
+
},
|
|
14
|
+
"then" : {},
|
|
15
|
+
"else" : {
|
|
16
|
+
"allOf" : [
|
|
17
|
+
{
|
|
18
|
+
"if" : {
|
|
19
|
+
"properties" : {
|
|
20
|
+
"n" : {
|
|
21
|
+
"const" : "status"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"then" : {
|
|
26
|
+
"properties" : {
|
|
27
|
+
"s" : {
|
|
28
|
+
"description" : "Timeout, in minutes",
|
|
29
|
+
"type" : "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|