oscura 0.4.0__py3-none-any.whl → 0.5.0__py3-none-any.whl

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.
@@ -1,322 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://oscura.io/schemas/bus_configuration.json",
4
- "title": "Bus Configuration Schema",
5
- "description": "Schema for validating parallel bus configurations for multi-bit protocols (CFG-001).",
6
- "type": "object",
7
- "required": ["name", "settings"],
8
- "additionalProperties": true,
9
- "properties": {
10
- "name": {
11
- "type": "string",
12
- "description": "Bus configuration identifier",
13
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
14
- "minLength": 1
15
- },
16
- "version": {
17
- "type": "string",
18
- "description": "Configuration version",
19
- "pattern": "^\\d+\\.\\d+$"
20
- },
21
- "description": {
22
- "type": "string",
23
- "description": "Human-readable description"
24
- },
25
- "settings": {
26
- "type": "object",
27
- "description": "Global bus settings",
28
- "properties": {
29
- "active_low": {
30
- "type": "boolean",
31
- "description": "Signals are active-low (inverted)"
32
- },
33
- "sample_on": {
34
- "type": "string",
35
- "enum": ["rising", "falling", "both"],
36
- "description": "Sample on clock/timing pulse edge"
37
- },
38
- "bit_numbering": {
39
- "type": "string",
40
- "enum": ["lsb_0", "msb_0"],
41
- "description": "Bit numbering convention"
42
- }
43
- },
44
- "additionalProperties": false
45
- },
46
- "data_bus": {
47
- "type": "object",
48
- "description": "Data bus definition",
49
- "required": ["name", "width", "bits"],
50
- "properties": {
51
- "name": {
52
- "type": "string",
53
- "description": "Bus name",
54
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
55
- },
56
- "width": {
57
- "type": "integer",
58
- "minimum": 1,
59
- "maximum": 128,
60
- "description": "Bus width in bits"
61
- },
62
- "description": {
63
- "type": "string",
64
- "description": "Bus description"
65
- },
66
- "active_low": {
67
- "type": "boolean",
68
- "description": "Override global active_low setting"
69
- },
70
- "bits": {
71
- "type": "array",
72
- "description": "Bit mappings from channel to position",
73
- "minItems": 1,
74
- "items": {
75
- "type": "object",
76
- "required": ["channel", "bit"],
77
- "properties": {
78
- "channel": {
79
- "type": "integer",
80
- "minimum": 0,
81
- "description": "Source channel index"
82
- },
83
- "bit": {
84
- "type": "integer",
85
- "minimum": 0,
86
- "description": "Bit position in bus"
87
- },
88
- "name": {
89
- "type": "string",
90
- "description": "Signal name",
91
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
92
- }
93
- },
94
- "additionalProperties": false
95
- }
96
- }
97
- },
98
- "additionalProperties": false
99
- },
100
- "address_bus": {
101
- "type": "object",
102
- "description": "Address bus definition",
103
- "required": ["name", "width", "bits"],
104
- "properties": {
105
- "name": {
106
- "type": "string",
107
- "description": "Bus name",
108
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
109
- },
110
- "width": {
111
- "type": "integer",
112
- "minimum": 1,
113
- "maximum": 128,
114
- "description": "Bus width in bits"
115
- },
116
- "description": {
117
- "type": "string",
118
- "description": "Bus description"
119
- },
120
- "active_low": {
121
- "type": "boolean",
122
- "description": "Override global active_low setting"
123
- },
124
- "bits": {
125
- "type": "array",
126
- "description": "Bit mappings from channel to position",
127
- "minItems": 1,
128
- "items": {
129
- "type": "object",
130
- "required": ["channel", "bit"],
131
- "properties": {
132
- "channel": {
133
- "type": "integer",
134
- "minimum": 0,
135
- "description": "Source channel index"
136
- },
137
- "bit": {
138
- "type": "integer",
139
- "minimum": 0,
140
- "description": "Bit position in bus"
141
- },
142
- "name": {
143
- "type": "string",
144
- "description": "Signal name",
145
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
146
- }
147
- },
148
- "additionalProperties": false
149
- }
150
- }
151
- },
152
- "additionalProperties": false
153
- },
154
- "control_signals": {
155
- "type": "array",
156
- "description": "Control signal definitions",
157
- "items": {
158
- "type": "object",
159
- "required": ["name", "channel"],
160
- "properties": {
161
- "name": {
162
- "type": "string",
163
- "description": "Signal name",
164
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
165
- },
166
- "channel": {
167
- "type": "integer",
168
- "minimum": 0,
169
- "description": "Source channel index"
170
- },
171
- "active_low": {
172
- "type": "boolean",
173
- "description": "Signal is active-low"
174
- },
175
- "description": {
176
- "type": "string",
177
- "description": "Signal description"
178
- },
179
- "short_name": {
180
- "type": "string",
181
- "description": "Short name/abbreviation",
182
- "maxLength": 8
183
- }
184
- },
185
- "additionalProperties": false
186
- }
187
- },
188
- "timing": {
189
- "type": "object",
190
- "description": "Timing constraints and validation",
191
- "properties": {
192
- "clock_period_ns": {
193
- "type": "number",
194
- "exclusiveMinimum": 0,
195
- "description": "Clock period in nanoseconds"
196
- },
197
- "setup_time_ns": {
198
- "type": "number",
199
- "minimum": 0,
200
- "description": "Setup time requirement in nanoseconds"
201
- },
202
- "hold_time_ns": {
203
- "type": "number",
204
- "minimum": 0,
205
- "description": "Hold time requirement in nanoseconds"
206
- },
207
- "pulse_width_ns": {
208
- "type": "object",
209
- "description": "Pulse width requirements by signal type",
210
- "additionalProperties": {
211
- "type": "number",
212
- "minimum": 0
213
- }
214
- }
215
- },
216
- "additionalProperties": false
217
- },
218
- "transactions": {
219
- "type": "object",
220
- "description": "Transaction decoding rules",
221
- "properties": {
222
- "types": {
223
- "type": "array",
224
- "description": "Transaction type definitions",
225
- "items": {
226
- "type": "object",
227
- "required": ["name", "conditions"],
228
- "properties": {
229
- "name": {
230
- "type": "string",
231
- "description": "Transaction type name",
232
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
233
- },
234
- "conditions": {
235
- "type": "object",
236
- "description": "Signal conditions for this transaction",
237
- "additionalProperties": {
238
- "type": "boolean"
239
- }
240
- },
241
- "sample_on": {
242
- "type": "string",
243
- "description": "Control signal to sample on"
244
- },
245
- "capture": {
246
- "type": "object",
247
- "description": "Buses/signals to capture",
248
- "additionalProperties": {
249
- "type": "string"
250
- }
251
- }
252
- },
253
- "additionalProperties": false
254
- }
255
- }
256
- },
257
- "additionalProperties": false
258
- },
259
- "instruction_decode": {
260
- "type": "object",
261
- "description": "Instruction decoding (if data contains opcodes)",
262
- "properties": {
263
- "enabled": {
264
- "type": "boolean",
265
- "description": "Enable instruction decoding"
266
- },
267
- "opcode_bits": {
268
- "type": "array",
269
- "description": "Bit range for opcode [start, end]",
270
- "items": { "type": "integer", "minimum": 0 },
271
- "minItems": 2,
272
- "maxItems": 2
273
- },
274
- "opcodes": {
275
- "type": "object",
276
- "description": "Opcode to instruction mappings (keys can be integers or binary/hex strings)",
277
- "additionalProperties": {
278
- "type": "object",
279
- "required": ["name"],
280
- "properties": {
281
- "name": {
282
- "type": "string",
283
- "description": "Instruction mnemonic"
284
- },
285
- "description": {
286
- "type": "string",
287
- "description": "Instruction description"
288
- }
289
- },
290
- "additionalProperties": false
291
- }
292
- }
293
- },
294
- "additionalProperties": false
295
- },
296
- "output": {
297
- "type": "object",
298
- "description": "Output formatting options",
299
- "properties": {
300
- "format": {
301
- "type": "string",
302
- "enum": ["raw", "transaction", "annotated"],
303
- "description": "Output format type"
304
- },
305
- "timestamp_format": {
306
- "type": "string",
307
- "enum": ["absolute", "relative_us", "relative_ns", "sample_index"],
308
- "description": "Timestamp format"
309
- },
310
- "include_raw_values": {
311
- "type": "boolean",
312
- "description": "Include raw values in output"
313
- },
314
- "hex_format": {
315
- "type": "boolean",
316
- "description": "Display values in hexadecimal"
317
- }
318
- },
319
- "additionalProperties": false
320
- }
321
- }
322
- }
@@ -1,182 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://oscura.io/schemas/device_mapping.json",
4
- "title": "Device Mapping Configuration Schema",
5
- "description": "Schema for validating device ID to name mappings and device-specific parameters (CFG-001).",
6
- "type": "object",
7
- "required": ["name", "devices"],
8
- "additionalProperties": true,
9
- "properties": {
10
- "name": {
11
- "type": "string",
12
- "description": "Mapping configuration identifier",
13
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
14
- "minLength": 1
15
- },
16
- "version": {
17
- "type": "string",
18
- "description": "Configuration version",
19
- "pattern": "^\\d+\\.\\d+$"
20
- },
21
- "description": {
22
- "type": "string",
23
- "description": "Human-readable description"
24
- },
25
- "devices": {
26
- "type": "object",
27
- "description": "Device ID to configuration mappings (keys can be integers or hex strings)",
28
- "minProperties": 1,
29
- "additionalProperties": {
30
- "type": "object",
31
- "description": "Device configuration (key is hex 0xNN or decimal ID)",
32
- "required": ["name"],
33
- "properties": {
34
- "name": {
35
- "type": "string",
36
- "description": "Full device name",
37
- "minLength": 1
38
- },
39
- "short_name": {
40
- "type": "string",
41
- "description": "Short/abbreviated device name",
42
- "maxLength": 16
43
- },
44
- "description": {
45
- "type": "string",
46
- "description": "Device description"
47
- },
48
- "category": {
49
- "type": "string",
50
- "description": "Device category for grouping"
51
- },
52
- "sample_rate": {
53
- "oneOf": [
54
- { "type": "number", "exclusiveMinimum": 0 },
55
- {
56
- "type": "string",
57
- "pattern": "^[0-9]+(\\.[0-9]+)?[eE][+-]?[0-9]+$"
58
- }
59
- ],
60
- "description": "Device sample rate in Hz (number or scientific notation string)"
61
- },
62
- "channels": {
63
- "type": "integer",
64
- "minimum": 1,
65
- "description": "Number of channels"
66
- },
67
- "properties": {
68
- "type": "object",
69
- "description": "Device-specific properties",
70
- "additionalProperties": true
71
- }
72
- },
73
- "additionalProperties": false
74
- }
75
- },
76
- "categories": {
77
- "type": "object",
78
- "description": "Category definitions for grouping and display",
79
- "patternProperties": {
80
- "^[a-zA-Z][a-zA-Z0-9_]*$": {
81
- "type": "object",
82
- "properties": {
83
- "description": {
84
- "type": "string",
85
- "description": "Category description"
86
- },
87
- "color": {
88
- "type": "string",
89
- "description": "Display color (hex format)",
90
- "pattern": "^#[0-9A-Fa-f]{6}$"
91
- }
92
- },
93
- "additionalProperties": false
94
- }
95
- },
96
- "additionalProperties": false
97
- },
98
- "channels": {
99
- "type": "object",
100
- "description": "Channel/lane configuration (keys can be integers or numeric strings)",
101
- "additionalProperties": {
102
- "type": "object",
103
- "properties": {
104
- "name": {
105
- "type": "string",
106
- "description": "Channel name"
107
- },
108
- "description": {
109
- "type": "string",
110
- "description": "Channel description"
111
- },
112
- "default_threshold": {
113
- "type": "number",
114
- "description": "Default threshold voltage"
115
- }
116
- },
117
- "additionalProperties": false
118
- }
119
- },
120
- "unknown_device": {
121
- "type": "object",
122
- "description": "Handling for unknown device IDs",
123
- "properties": {
124
- "policy": {
125
- "type": "string",
126
- "enum": ["error", "warn", "ignore"],
127
- "description": "Action when unknown device encountered"
128
- },
129
- "default_name": {
130
- "type": "string",
131
- "description": "Default name for unknown devices"
132
- },
133
- "default_category": {
134
- "type": "string",
135
- "description": "Default category for unknown devices"
136
- }
137
- },
138
- "additionalProperties": false
139
- },
140
- "filters": {
141
- "type": "object",
142
- "description": "Device filtering options",
143
- "properties": {
144
- "enabled": {
145
- "type": "boolean",
146
- "description": "Enable filtering"
147
- },
148
- "include_devices": {
149
- "type": "array",
150
- "description": "Device IDs to include (whitelist)",
151
- "items": {
152
- "oneOf": [
153
- { "type": "integer" },
154
- { "type": "string", "pattern": "^0[xX][0-9A-Fa-f]+$" }
155
- ]
156
- }
157
- },
158
- "exclude_devices": {
159
- "type": "array",
160
- "description": "Device IDs to exclude (blacklist)",
161
- "items": {
162
- "oneOf": [
163
- { "type": "integer" },
164
- { "type": "string", "pattern": "^0[xX][0-9A-Fa-f]+$" }
165
- ]
166
- }
167
- },
168
- "include_categories": {
169
- "type": "array",
170
- "description": "Categories to include",
171
- "items": { "type": "string" }
172
- },
173
- "exclude_categories": {
174
- "type": "array",
175
- "description": "Categories to exclude",
176
- "items": { "type": "string" }
177
- }
178
- },
179
- "additionalProperties": false
180
- }
181
- }
182
- }