rsmp 0.45.0 → 0.45.1

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yaml +1 -1
  3. data/.github/workflows/sus.yaml +1 -1
  4. data/.gitignore +0 -1
  5. data/CHANGELOG.md +12 -1
  6. data/Gemfile +0 -2
  7. data/Gemfile.lock +1 -79
  8. data/README.md +14 -35
  9. data/documentation/configuration.md +12 -11
  10. data/documentation/message_distribution.md +1 -2
  11. data/documentation/tasks.md +1 -2
  12. data/exe/rsmp +1 -2
  13. data/lib/rsmp/cli.rb +33 -3
  14. data/lib/rsmp/convert/export/json_schema/outputs.rb +18 -0
  15. data/lib/rsmp/convert/export/json_schema/values.rb +1 -1
  16. data/lib/rsmp/convert/export/json_schema.rb +14 -6
  17. data/lib/rsmp/schema/core_sxl_resolution.rb +69 -0
  18. data/lib/rsmp/schema/validation.rb +57 -0
  19. data/lib/rsmp/schema.rb +40 -67
  20. data/lib/rsmp/version.rb +1 -1
  21. data/schemas/tlc/1.0.10/rsmp.json +2 -1
  22. data/schemas/tlc/1.0.10/sxl.yaml +1 -0
  23. data/schemas/tlc/1.0.10/sxl_index.json +356 -0
  24. data/schemas/tlc/1.0.13/rsmp.json +2 -1
  25. data/schemas/tlc/1.0.13/sxl.yaml +1 -0
  26. data/schemas/tlc/1.0.13/sxl_index.json +436 -0
  27. data/schemas/tlc/1.0.14/rsmp.json +2 -1
  28. data/schemas/tlc/1.0.14/sxl.yaml +1 -0
  29. data/schemas/tlc/1.0.14/sxl_index.json +468 -0
  30. data/schemas/tlc/1.0.15/rsmp.json +2 -1
  31. data/schemas/tlc/1.0.15/sxl.yaml +1 -0
  32. data/schemas/tlc/1.0.15/sxl_index.json +508 -0
  33. data/schemas/tlc/1.0.7/rsmp.json +2 -1
  34. data/schemas/tlc/1.0.7/sxl.yaml +1 -0
  35. data/schemas/tlc/1.0.7/sxl_index.json +356 -0
  36. data/schemas/tlc/1.0.8/rsmp.json +2 -1
  37. data/schemas/tlc/1.0.8/sxl.yaml +1 -0
  38. data/schemas/tlc/1.0.8/sxl_index.json +356 -0
  39. data/schemas/tlc/1.0.9/rsmp.json +2 -1
  40. data/schemas/tlc/1.0.9/sxl.yaml +1 -0
  41. data/schemas/tlc/1.0.9/sxl_index.json +356 -0
  42. data/schemas/tlc/1.1.0/rsmp.json +2 -1
  43. data/schemas/tlc/1.1.0/sxl.yaml +1 -0
  44. data/schemas/tlc/1.1.0/sxl_index.json +572 -0
  45. data/schemas/tlc/1.2.0/rsmp.json +2 -1
  46. data/schemas/tlc/1.2.0/sxl.yaml +1 -0
  47. data/schemas/tlc/1.2.0/sxl_index.json +571 -0
  48. data/schemas/tlc/1.2.1/rsmp.json +2 -1
  49. data/schemas/tlc/1.2.1/sxl.yaml +1 -0
  50. data/schemas/tlc/1.2.1/sxl_index.json +571 -0
  51. data/schemas/tlc/1.3.0/defs/definitions.json +86 -25
  52. data/schemas/tlc/1.3.0/rsmp.json +2 -1
  53. data/schemas/tlc/1.3.0/statuses/S0024.json +2 -1
  54. data/schemas/tlc/1.3.0/sxl.yaml +1 -0
  55. data/schemas/tlc/1.3.0/sxl_index.json +578 -0
  56. metadata +14 -4
  57. data/.github/copilot-instructions.md +0 -33
  58. data/.rspec +0 -1
  59. data/cucumber.yml +0 -1
@@ -1,72 +1,133 @@
1
1
  {
2
+ "rsmp_string": {
3
+ "type" : "string",
4
+ "not" : {
5
+ "$comment" : "A unicode string, excluding ASCII control characters and Unicode line/paragraph separators",
6
+ "type" : "string",
7
+ "pattern" : "[\\u0000-\\u001F\\u007F\\u2028\\u2029]"
8
+ }
9
+ },
2
10
  "message_id": {
3
11
  "description" : "Message Id",
4
- "type": "string",
5
12
  "$comment" : "Example: 1.2.3 or 1.2",
6
- "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
13
+ "allOf" : [
14
+ { "$ref" : "#/rsmp_string" },
15
+ { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }
16
+ ]
7
17
  },
8
18
  "timestamp" : {
9
19
  "description" : "Timestamp",
10
- "type": "string",
11
20
  "$comment" : "Example: 2015-06-08T11:49:03.293Z",
12
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$"
21
+ "allOf" : [
22
+ { "$ref" : "#/rsmp_string" },
23
+ { "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$" }
24
+ ]
13
25
  },
14
26
  "integer" : {
15
27
  "description" : "Integer as string",
16
- "type": "string",
17
28
  "$comment" : "Example: 123 or -123",
18
- "pattern": "^\\-?[0-9]+$"
29
+ "allOf" : [
30
+ { "$ref" : "#/rsmp_string" },
31
+ { "pattern": "^\\-?[0-9]+$" }
32
+ ]
19
33
  },
20
34
  "version": {
21
35
  "description" : "Version",
22
- "type": "string",
23
36
  "$comment" : "Example: 1.2.3 or 1.2",
24
- "pattern" : "^[0-9]{1,2}\\.[0-9]{1,2}(\\.[0-9]{1,2})?"
37
+ "allOf" : [
38
+ { "$ref" : "#/rsmp_string" },
39
+ { "pattern" : "^[0-9]{1,2}\\.[0-9]{1,2}(\\.[0-9]{1,2})?" }
40
+ ]
25
41
  },
26
42
  "command_code": {
27
43
  "description" : "Command code id",
28
- "type" : "string",
29
- "pattern" : "^M"
44
+ "allOf" : [
45
+ { "$ref" : "#/rsmp_string" },
46
+ { "pattern" : "^M" }
47
+ ]
30
48
  },
31
49
  "status_code": {
32
50
  "description" : "Status code id",
33
- "type" : "string",
34
- "pattern" : "^S"
51
+ "allOf" : [
52
+ { "$ref" : "#/rsmp_string" },
53
+ { "pattern" : "^S" }
54
+ ]
35
55
  },
36
56
  "alarm_code": {
37
57
  "description" : "Alarm code id",
38
- "type" : "string",
39
- "pattern" : "^A"
58
+ "allOf" : [
59
+ { "$ref" : "#/rsmp_string" },
60
+ { "pattern" : "^A" }
61
+ ]
40
62
  },
41
63
  "component_id": {
42
64
  "description" : "Compoment id",
43
- "type" : "string"
65
+ "allOf" : [
66
+ { "$ref" : "#/rsmp_string" }
67
+ ]
68
+ },
69
+ "component_type": {
70
+ "description" : "Component type",
71
+ "allOf" : [
72
+ { "$ref" : "#/rsmp_string" },
73
+ { "pattern" : "^[A-Za-z0-9_-]+(?:/[A-Za-z0-9_-]+)*$" }
74
+ ]
75
+ },
76
+ "component_name": {
77
+ "description" : "Component name",
78
+ "minLength" : 1,
79
+ "allOf" : [
80
+ { "$ref" : "#/rsmp_string" }
81
+ ]
82
+ },
83
+ "sxl_name": {
84
+ "description" : "SXL name",
85
+ "allOf" : [
86
+ { "$ref" : "#/rsmp_string" },
87
+ { "pattern" : "^[A-Za-z0-9_-]+(?:/[A-Za-z0-9_-]+)*$" }
88
+ ]
89
+ },
90
+ "sxl_prefix": {
91
+ "description" : "SXL prefix",
92
+ "allOf" : [
93
+ { "$ref" : "#/rsmp_string" },
94
+ { "pattern" : "^[A-Za-z0-9_-]+/$" }
95
+ ]
44
96
  },
45
97
  "boolean": {
46
98
  "description" : "Boolean as string",
47
- "type" : "string",
48
- "enum" : [ "True", "False" ]
99
+ "allOf" : [
100
+ { "$ref" : "#/rsmp_string" },
101
+ { "enum" : [ "True", "False" ] }
102
+ ]
49
103
  },
50
104
  "integer_list": {
51
105
  "description" : "Comma-separated list of integers as strings",
52
- "type" : "string",
53
- "pattern" : "^(\\-?\\d+)(?:,(\\-?\\d+))*$"
106
+ "allOf" : [
107
+ { "$ref" : "#/rsmp_string" },
108
+ { "pattern" : "^(\\-?\\d+)(?:,(\\-?\\d+))*$" }
109
+ ]
54
110
  },
55
111
  "number_list": {
56
112
  "description" : "Comma-separated list of numbers as strings",
57
- "type" : "string",
58
- "pattern" : "^(\\-?\\d+(\\.\\d+)?)(?:,(\\-?\\d+(\\.\\d+)?))*$"
113
+ "allOf" : [
114
+ { "$ref" : "#/rsmp_string" },
115
+ { "pattern" : "^(\\-?\\d+(\\.\\d+)?)(?:,(\\-?\\d+(\\.\\d+)?))*$" }
116
+ ]
59
117
  },
60
118
  "boolean_list": {
61
119
  "description" : "Comma-separated list of booleans as strings",
62
- "type" : "string",
63
- "pattern" : "^(True|False)(?:,(True|False))*$"
120
+ "allOf" : [
121
+ { "$ref" : "#/rsmp_string" },
122
+ { "pattern" : "^(True|False)(?:,(True|False))*$" }
123
+ ]
64
124
  },
65
125
  "string_list": {
66
126
  "description" : "Comma-separated list of strings",
67
- "type" : "string"
127
+ "allOf" : [
128
+ { "$ref" : "#/rsmp_string" }
129
+ ]
68
130
  }
69
131
  }
70
132
 
71
133
 
72
-
@@ -70,5 +70,6 @@
70
70
  "$ref" : "alarms/alarms.json"
71
71
  }
72
72
  }
73
- ]
73
+ ],
74
+ "minimum_core_version" : "3.3.0"
74
75
  }
@@ -26,7 +26,8 @@
26
26
  "properties" : {
27
27
  "s" : {
28
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"
29
+ "$ref" : "../defs/definitions.json#/string_list",
30
+ "pattern" : "^(\\d{1,3}\\-\\d{1,3})(?:,(\\d{1,3}\\-\\d{1,3}))*$"
30
31
  }
31
32
  }
32
33
  }
@@ -3,6 +3,7 @@ meta:
3
3
  name: tlc
4
4
  description: Traffic Light Controllers
5
5
  version: 1.3.0
6
+ minimum_core_version: 3.3.0
6
7
  objects:
7
8
  Traffic Light Controller:
8
9
  description: