rsmp_schema 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yaml +1 -1
  3. data/.tool-versions +1 -1
  4. data/Gemfile.lock +24 -22
  5. data/examples/validate.rb +1 -1
  6. data/lib/rsmp_schema/version.rb +1 -1
  7. data/rsmp_schema.gemspec +5 -5
  8. data/schemas/core/3.2/alarm_suspended_resumed.json +2 -2
  9. data/schemas/tlc/1.2/statuses/S0006.json +3 -3
  10. data/schemas/tlc/1.2/sxl.yaml +4 -4
  11. data/schemas/tlc/1.2.1/alarms/A0001.json +3 -0
  12. data/schemas/tlc/1.2.1/alarms/A0002.json +3 -0
  13. data/schemas/tlc/1.2.1/alarms/A0003.json +3 -0
  14. data/schemas/tlc/1.2.1/alarms/A0004.json +3 -0
  15. data/schemas/tlc/1.2.1/alarms/A0005.json +3 -0
  16. data/schemas/tlc/1.2.1/alarms/A0006.json +3 -0
  17. data/schemas/tlc/1.2.1/alarms/A0007.json +59 -0
  18. data/schemas/tlc/1.2.1/alarms/A0008.json +61 -0
  19. data/schemas/tlc/1.2.1/alarms/A0009.json +3 -0
  20. data/schemas/tlc/1.2.1/alarms/A0010.json +3 -0
  21. data/schemas/tlc/1.2.1/alarms/A0101.json +3 -0
  22. data/schemas/tlc/1.2.1/alarms/A0201.json +60 -0
  23. data/schemas/tlc/1.2.1/alarms/A0202.json +60 -0
  24. data/schemas/tlc/1.2.1/alarms/A0301.json +132 -0
  25. data/schemas/tlc/1.2.1/alarms/A0302.json +158 -0
  26. data/schemas/tlc/1.2.1/alarms/A0303.json +132 -0
  27. data/schemas/tlc/1.2.1/alarms/A0304.json +158 -0
  28. data/schemas/tlc/1.2.1/alarms/alarms.json +286 -0
  29. data/schemas/tlc/1.2.1/commands/M0001.json +138 -0
  30. data/schemas/tlc/1.2.1/commands/M0002.json +112 -0
  31. data/schemas/tlc/1.2.1/commands/M0003.json +112 -0
  32. data/schemas/tlc/1.2.1/commands/M0004.json +85 -0
  33. data/schemas/tlc/1.2.1/commands/M0005.json +112 -0
  34. data/schemas/tlc/1.2.1/commands/M0006.json +112 -0
  35. data/schemas/tlc/1.2.1/commands/M0007.json +85 -0
  36. data/schemas/tlc/1.2.1/commands/M0008.json +112 -0
  37. data/schemas/tlc/1.2.1/commands/M0010.json +85 -0
  38. data/schemas/tlc/1.2.1/commands/M0011.json +85 -0
  39. data/schemas/tlc/1.2.1/commands/M0012.json +79 -0
  40. data/schemas/tlc/1.2.1/commands/M0013.json +79 -0
  41. data/schemas/tlc/1.2.1/commands/M0014.json +106 -0
  42. data/schemas/tlc/1.2.1/commands/M0015.json +112 -0
  43. data/schemas/tlc/1.2.1/commands/M0016.json +79 -0
  44. data/schemas/tlc/1.2.1/commands/M0017.json +79 -0
  45. data/schemas/tlc/1.2.1/commands/M0018.json +112 -0
  46. data/schemas/tlc/1.2.1/commands/M0019.json +139 -0
  47. data/schemas/tlc/1.2.1/commands/M0020.json +139 -0
  48. data/schemas/tlc/1.2.1/commands/M0021.json +79 -0
  49. data/schemas/tlc/1.2.1/commands/M0022.json +355 -0
  50. data/schemas/tlc/1.2.1/commands/M0023.json +85 -0
  51. data/schemas/tlc/1.2.1/commands/M0103.json +103 -0
  52. data/schemas/tlc/1.2.1/commands/M0104.json +220 -0
  53. data/schemas/tlc/1.2.1/commands/command_requests.json +7 -0
  54. data/schemas/tlc/1.2.1/commands/command_responses.json +7 -0
  55. data/schemas/tlc/1.2.1/commands/commands.json +398 -0
  56. data/schemas/tlc/1.2.1/rsmp.json +73 -0
  57. data/schemas/tlc/1.2.1/statuses/S0001.json +137 -0
  58. data/schemas/tlc/1.2.1/statuses/S0002.json +55 -0
  59. data/schemas/tlc/1.2.1/statuses/S0003.json +55 -0
  60. data/schemas/tlc/1.2.1/statuses/S0004.json +55 -0
  61. data/schemas/tlc/1.2.1/statuses/S0005.json +112 -0
  62. data/schemas/tlc/1.2.1/statuses/S0006.json +88 -0
  63. data/schemas/tlc/1.2.1/statuses/S0007.json +116 -0
  64. data/schemas/tlc/1.2.1/statuses/S0008.json +116 -0
  65. data/schemas/tlc/1.2.1/statuses/S0009.json +116 -0
  66. data/schemas/tlc/1.2.1/statuses/S0010.json +116 -0
  67. data/schemas/tlc/1.2.1/statuses/S0011.json +116 -0
  68. data/schemas/tlc/1.2.1/statuses/S0012.json +116 -0
  69. data/schemas/tlc/1.2.1/statuses/S0013.json +88 -0
  70. data/schemas/tlc/1.2.1/statuses/S0014.json +90 -0
  71. data/schemas/tlc/1.2.1/statuses/S0015.json +90 -0
  72. data/schemas/tlc/1.2.1/statuses/S0016.json +61 -0
  73. data/schemas/tlc/1.2.1/statuses/S0017.json +61 -0
  74. data/schemas/tlc/1.2.1/statuses/S0018.json +61 -0
  75. data/schemas/tlc/1.2.1/statuses/S0019.json +61 -0
  76. data/schemas/tlc/1.2.1/statuses/S0020.json +88 -0
  77. data/schemas/tlc/1.2.1/statuses/S0021.json +56 -0
  78. data/schemas/tlc/1.2.1/statuses/S0022.json +55 -0
  79. data/schemas/tlc/1.2.1/statuses/S0023.json +56 -0
  80. data/schemas/tlc/1.2.1/statuses/S0024.json +56 -0
  81. data/schemas/tlc/1.2.1/statuses/S0025.json +250 -0
  82. data/schemas/tlc/1.2.1/statuses/S0026.json +55 -0
  83. data/schemas/tlc/1.2.1/statuses/S0027.json +55 -0
  84. data/schemas/tlc/1.2.1/statuses/S0028.json +55 -0
  85. data/schemas/tlc/1.2.1/statuses/S0029.json +55 -0
  86. data/schemas/tlc/1.2.1/statuses/S0030.json +55 -0
  87. data/schemas/tlc/1.2.1/statuses/S0031.json +55 -0
  88. data/schemas/tlc/1.2.1/statuses/S0032.json +116 -0
  89. data/schemas/tlc/1.2.1/statuses/S0033.json +114 -0
  90. data/schemas/tlc/1.2.1/statuses/S0034.json +61 -0
  91. data/schemas/tlc/1.2.1/statuses/S0035.json +74 -0
  92. data/schemas/tlc/1.2.1/statuses/S0091.json +65 -0
  93. data/schemas/tlc/1.2.1/statuses/S0092.json +65 -0
  94. data/schemas/tlc/1.2.1/statuses/S0095.json +55 -0
  95. data/schemas/tlc/1.2.1/statuses/S0096.json +196 -0
  96. data/schemas/tlc/1.2.1/statuses/S0097.json +82 -0
  97. data/schemas/tlc/1.2.1/statuses/S0098.json +103 -0
  98. data/schemas/tlc/1.2.1/statuses/S0201.json +88 -0
  99. data/schemas/tlc/1.2.1/statuses/S0202.json +88 -0
  100. data/schemas/tlc/1.2.1/statuses/S0203.json +88 -0
  101. data/schemas/tlc/1.2.1/statuses/S0204.json +304 -0
  102. data/schemas/tlc/1.2.1/statuses/S0205.json +88 -0
  103. data/schemas/tlc/1.2.1/statuses/S0206.json +88 -0
  104. data/schemas/tlc/1.2.1/statuses/S0207.json +88 -0
  105. data/schemas/tlc/1.2.1/statuses/S0208.json +304 -0
  106. data/schemas/tlc/1.2.1/statuses/statuses.json +786 -0
  107. data/schemas/tlc/1.2.1/sxl.yaml +2109 -0
  108. metadata +110 -13
@@ -0,0 +1,79 @@
1
+ {
2
+ "description" : "Request start or stop of a series of signal groups.\nStarts or stops several signal groups.\nThis command was introduced due to coordination requirements needing to set many signal groups to green and red at the same time and M0010 and M0012 being to slow to send a message for each signal group individually.\nAlthough this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.\nIntended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers.\nOnly used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).\nMay also include purposes for adaptive control where a UTC system or a local traffic light controller takes over the phase control (stage control).\nRequires security code 2.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setStart"
14
+ }
15
+ }
16
+ },
17
+ {
18
+ "if" : {
19
+ "required" : [
20
+ "q"
21
+ ],
22
+ "properties" : {
23
+ "q" : {
24
+ "const" : "undefined"
25
+ }
26
+ }
27
+ },
28
+ "then" : {
29
+ "s" : {
30
+ "type" : "null"
31
+ }
32
+ },
33
+ "else" : {
34
+ "allOf" : [
35
+ {
36
+ "if" : {
37
+ "required" : [
38
+ "n"
39
+ ],
40
+ "properties" : {
41
+ "n" : {
42
+ "const" : "status"
43
+ }
44
+ }
45
+ },
46
+ "then" : {
47
+ "properties" : {
48
+ "v" : {
49
+ "description" : "Orders signal groups to green or red. Sets a block of 16 signal groups at a time. Can be repeated to set several blocks of 16 signal groups. Values are separated with comma. Blocks are separated with semicolon. Since semicolon breaks the SXL csv-format, colon is used in example below.\n\n1=Order signal group to green\n0=Order signal group to red\n\nFormat: [Offset],[Bits to set],[Bits to unset]:…\n\nOffset sets where the 16 inputs starts from followed by two 16 bit values telling which bit to set and unset in binary format, i.e. first bit have value 1 and last bit have value 32768.\n\nExample 1:\n\"5, 4134, 65\" sets input 6,7,10,17 = on and 5,11 = off\n(Input starts from no. 5 and bit 1,2,5,12 = 1 and bit 0,6 = 0)\n\nExample 2:\n\"22, 1, 4\" sets input 22 = on and 24 = off\n(Input starts from no. 22 and bit 0 = 1 and bit 2 = 0)\n\nAnd both these examples could be sent in the same message as:\n\"5,4143,65:22,1,4\"\n\nSuch a message would order signal group 6,7,10,17,22 to green and signal group 5,11,24 to red",
50
+ "type" : "string"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "if" : {
57
+ "required" : [
58
+ "n"
59
+ ],
60
+ "properties" : {
61
+ "n" : {
62
+ "const" : "securityCode"
63
+ }
64
+ }
65
+ },
66
+ "then" : {
67
+ "properties" : {
68
+ "v" : {
69
+ "description" : "Security code 2",
70
+ "type" : "string"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "description" : "Activate a series of inputs\n\nSet given inputs (1-255) of the controllers general purpose I/O to either true or false. This command was introduced due to coordination requirements needing to set many inputs to true/false at the same time and M0006 being to slow to send a message for each input individually. With this command many inputs can be set to true/false at the same time using a single command message. It can be used for all types of input where the traffic light controller must react to external control. Typical usages are bus priority, coordination between traffic controllers, external control systems, and much more.\n\nRequires security code 2.\n\nThe parameter ‘status’ sets/unsets a block of 16 inputs at a time. It can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon. Format: [Offset];[Bits to set];[Bits to unset];…\n\n- ‘Offset’ defines where the 16 inputs starts from\n- ‘Bits to set’ defines which bit(s) to set. ‘0’ if unused\n- ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused\n\nExample 1:\n“3,4134,65” sets input 4,5,8,15 and unsets 3,9\n- Input starts from no. 5\n- “4134” is 1 0000 0010 0110 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 1000 0001 0011 0000 which are bits 4,5,8,15\n- “65” is 100 0001 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 10 0000 1000 which are bits 3,9\n\nExample 2:\n“12,1,4” sets input 12 and unsets 14\n- Input starts from no. 12\n- “1” is 1 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 1 0000 0000 0000, which is bit 12\n- “4” is 100 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 100 0000 0000 0000, which is bit 14\n\nAnd both these examples could be sent in the same message as: “3,4143,65;12,1,4”\n\nSuch a message would set input 4,5,8,12,15 and unset input 3,9,14\n\nExample 3:\n“0,1,2” sets input 0 and unsets 1\n- Input starts from 0\n- “1” is 1 in binary, which is bit 0\n- “2” is 10 in binary, which is bit 1",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setInput"
14
+ }
15
+ }
16
+ },
17
+ {
18
+ "if" : {
19
+ "required" : [
20
+ "q"
21
+ ],
22
+ "properties" : {
23
+ "q" : {
24
+ "const" : "undefined"
25
+ }
26
+ }
27
+ },
28
+ "then" : {
29
+ "s" : {
30
+ "type" : "null"
31
+ }
32
+ },
33
+ "else" : {
34
+ "allOf" : [
35
+ {
36
+ "if" : {
37
+ "required" : [
38
+ "n"
39
+ ],
40
+ "properties" : {
41
+ "n" : {
42
+ "const" : "status"
43
+ }
44
+ }
45
+ },
46
+ "then" : {
47
+ "properties" : {
48
+ "v" : {
49
+ "description" : "Sets/Unsets a block of 16 inputs at a time. Can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon.\nFormat: [Offset];[Bits to set];[Bits to unset];…",
50
+ "type" : "string"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "if" : {
57
+ "required" : [
58
+ "n"
59
+ ],
60
+ "properties" : {
61
+ "n" : {
62
+ "const" : "securityCode"
63
+ }
64
+ }
65
+ },
66
+ "then" : {
67
+ "properties" : {
68
+ "v" : {
69
+ "description" : "Security code 2",
70
+ "type" : "string"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "description" : "Set dynamic bands.\nCan be used to change between predefined signal timings. Moves the start of signal groups in the cycle.\nThis command can be used to change the split of green time during the cycle. A typical usage is scenario based control where changing of signal timings is used for optimal traffic flow.\nRequires security code 2",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "plan",
9
+ "securityCode",
10
+ "status"
11
+ ]
12
+ },
13
+ "cO" : {
14
+ "const" : "setCommands"
15
+ }
16
+ }
17
+ },
18
+ {
19
+ "if" : {
20
+ "required" : [
21
+ "q"
22
+ ],
23
+ "properties" : {
24
+ "q" : {
25
+ "const" : "undefined"
26
+ }
27
+ }
28
+ },
29
+ "then" : {
30
+ "s" : {
31
+ "type" : "null"
32
+ }
33
+ },
34
+ "else" : {
35
+ "allOf" : [
36
+ {
37
+ "if" : {
38
+ "required" : [
39
+ "n"
40
+ ],
41
+ "properties" : {
42
+ "n" : {
43
+ "const" : "plan"
44
+ }
45
+ }
46
+ },
47
+ "then" : {
48
+ "properties" : {
49
+ "v" : {
50
+ "allOf" : [
51
+ {
52
+ "description" : "Plan to be changed"
53
+ },
54
+ {
55
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "if" : {
64
+ "required" : [
65
+ "n"
66
+ ],
67
+ "properties" : {
68
+ "n" : {
69
+ "const" : "status"
70
+ }
71
+ }
72
+ },
73
+ "then" : {
74
+ "properties" : {
75
+ "v" : {
76
+ "description" : "Dynamic bands.\nEach dynamic band are written as dd-ee where:\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.\ndd-ee,dd-ee",
77
+ "type" : "string"
78
+ }
79
+ }
80
+ }
81
+ },
82
+ {
83
+ "if" : {
84
+ "required" : [
85
+ "n"
86
+ ],
87
+ "properties" : {
88
+ "n" : {
89
+ "const" : "securityCode"
90
+ }
91
+ }
92
+ },
93
+ "then" : {
94
+ "properties" : {
95
+ "v" : {
96
+ "description" : "Security code 2",
97
+ "type" : "string"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ ]
103
+ }
104
+ }
105
+ ]
106
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "description" : "Set 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.\nThis command can be used to fine tune the coordination for optimal traffic flow.\nRequires security code 2.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "plan",
9
+ "securityCode",
10
+ "status"
11
+ ]
12
+ },
13
+ "cO" : {
14
+ "const" : "setOffset"
15
+ }
16
+ }
17
+ },
18
+ {
19
+ "if" : {
20
+ "required" : [
21
+ "q"
22
+ ],
23
+ "properties" : {
24
+ "q" : {
25
+ "const" : "undefined"
26
+ }
27
+ }
28
+ },
29
+ "then" : {
30
+ "s" : {
31
+ "type" : "null"
32
+ }
33
+ },
34
+ "else" : {
35
+ "allOf" : [
36
+ {
37
+ "if" : {
38
+ "required" : [
39
+ "n"
40
+ ],
41
+ "properties" : {
42
+ "n" : {
43
+ "const" : "status"
44
+ }
45
+ }
46
+ },
47
+ "then" : {
48
+ "properties" : {
49
+ "v" : {
50
+ "allOf" : [
51
+ {
52
+ "description" : "Set offset time in seconds"
53
+ },
54
+ {
55
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "if" : {
64
+ "required" : [
65
+ "n"
66
+ ],
67
+ "properties" : {
68
+ "n" : {
69
+ "const" : "plan"
70
+ }
71
+ }
72
+ },
73
+ "then" : {
74
+ "properties" : {
75
+ "v" : {
76
+ "allOf" : [
77
+ {
78
+ "description" : "Time plan nr"
79
+ },
80
+ {
81
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
82
+ }
83
+ ]
84
+ }
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "if" : {
90
+ "required" : [
91
+ "n"
92
+ ],
93
+ "properties" : {
94
+ "n" : {
95
+ "const" : "securityCode"
96
+ }
97
+ }
98
+ },
99
+ "then" : {
100
+ "properties" : {
101
+ "v" : {
102
+ "description" : "Security code 2",
103
+ "type" : "string"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ ]
112
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "description" : "Set week time table.\nSet which time table for signal programs to use for each day during a week.\nThis command changes the signal timings during the week for optimal traffic flow.\nRequires security code 2.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setWeekTable"
14
+ }
15
+ }
16
+ },
17
+ {
18
+ "if" : {
19
+ "required" : [
20
+ "q"
21
+ ],
22
+ "properties" : {
23
+ "q" : {
24
+ "const" : "undefined"
25
+ }
26
+ }
27
+ },
28
+ "then" : {
29
+ "s" : {
30
+ "type" : "null"
31
+ }
32
+ },
33
+ "else" : {
34
+ "allOf" : [
35
+ {
36
+ "if" : {
37
+ "required" : [
38
+ "n"
39
+ ],
40
+ "properties" : {
41
+ "n" : {
42
+ "const" : "status"
43
+ }
44
+ }
45
+ },
46
+ "then" : {
47
+ "properties" : {
48
+ "v" : {
49
+ "description" : "Week time table. Defines time table to use for each week day\nEach segment 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\n\nE.g.\nd-t,d-t",
50
+ "type" : "string"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "if" : {
57
+ "required" : [
58
+ "n"
59
+ ],
60
+ "properties" : {
61
+ "n" : {
62
+ "const" : "securityCode"
63
+ }
64
+ }
65
+ },
66
+ "then" : {
67
+ "properties" : {
68
+ "v" : {
69
+ "description" : "Security code 2",
70
+ "type" : "string"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "description" : "Set time tables.\nSet time of day for when to automatically switch signal program (time plan).\nThis command changes the signal timings according to time of day for optimal traffic flow.\nRequires security code 2.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setTimeTable"
14
+ }
15
+ }
16
+ },
17
+ {
18
+ "if" : {
19
+ "required" : [
20
+ "q"
21
+ ],
22
+ "properties" : {
23
+ "q" : {
24
+ "const" : "undefined"
25
+ }
26
+ }
27
+ },
28
+ "then" : {
29
+ "s" : {
30
+ "type" : "null"
31
+ }
32
+ },
33
+ "else" : {
34
+ "allOf" : [
35
+ {
36
+ "if" : {
37
+ "required" : [
38
+ "n"
39
+ ],
40
+ "properties" : {
41
+ "n" : {
42
+ "const" : "status"
43
+ }
44
+ }
45
+ },
46
+ "then" : {
47
+ "properties" : {
48
+ "v" : {
49
+ "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",
50
+ "type" : "string"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "if" : {
57
+ "required" : [
58
+ "n"
59
+ ],
60
+ "properties" : {
61
+ "n" : {
62
+ "const" : "securityCode"
63
+ }
64
+ }
65
+ },
66
+ "then" : {
67
+ "properties" : {
68
+ "v" : {
69
+ "description" : "Security code 2",
70
+ "type" : "string"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "description" : "Set 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.\nThis command provides the ability to change the cycle time when using coordinated or fixed time control. It changes the timings for optimal traffic flow. Can be used with scenario based control.\nRequires security code 2.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "plan",
9
+ "securityCode",
10
+ "status"
11
+ ]
12
+ },
13
+ "cO" : {
14
+ "const" : "setCycleTime"
15
+ }
16
+ }
17
+ },
18
+ {
19
+ "if" : {
20
+ "required" : [
21
+ "q"
22
+ ],
23
+ "properties" : {
24
+ "q" : {
25
+ "const" : "undefined"
26
+ }
27
+ }
28
+ },
29
+ "then" : {
30
+ "s" : {
31
+ "type" : "null"
32
+ }
33
+ },
34
+ "else" : {
35
+ "allOf" : [
36
+ {
37
+ "if" : {
38
+ "required" : [
39
+ "n"
40
+ ],
41
+ "properties" : {
42
+ "n" : {
43
+ "const" : "status"
44
+ }
45
+ }
46
+ },
47
+ "then" : {
48
+ "properties" : {
49
+ "v" : {
50
+ "allOf" : [
51
+ {
52
+ "description" : "Set cycle time in seconds"
53
+ },
54
+ {
55
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "if" : {
64
+ "required" : [
65
+ "n"
66
+ ],
67
+ "properties" : {
68
+ "n" : {
69
+ "const" : "plan"
70
+ }
71
+ }
72
+ },
73
+ "then" : {
74
+ "properties" : {
75
+ "v" : {
76
+ "allOf" : [
77
+ {
78
+ "description" : "Time plan nr"
79
+ },
80
+ {
81
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
82
+ }
83
+ ]
84
+ }
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "if" : {
90
+ "required" : [
91
+ "n"
92
+ ],
93
+ "properties" : {
94
+ "n" : {
95
+ "const" : "securityCode"
96
+ }
97
+ }
98
+ },
99
+ "then" : {
100
+ "properties" : {
101
+ "v" : {
102
+ "description" : "Security code 2",
103
+ "type" : "string"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ ]
112
+ }