Skip to content

Commit a8d28cb

Browse files
Merge pull request #56 from Hyperloop-UPV/ADJ-Validator-compatibility
fix Adj for ADJ validator compatibility origin/Levion-propulsion-H11
2 parents ee857f8 + fc6a167 commit a8d28cb

7 files changed

Lines changed: 49 additions & 469 deletions

File tree

.github/workflows/scripts/adj-tester/main.py

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
ADJ Validator
44
5-
Version: 1.1.0
5+
Version: 11.1.2
66
77
JavierRibaldelRio
88
@@ -381,7 +381,9 @@ def check_measurement_json(path: str, previous_ids=None):
381381
return is_valid
382382

383383

384-
def check_packet_json(path: str, sockets: set, measurement_ids=None):
384+
def check_packet_json(
385+
path: str, sockets: set, measurement_ids=None, used_measurement_ids=None
386+
):
385387
"""Validate a packet JSON file.
386388
387389
Ensures schema conformance, global uniqueness of packet IDs
@@ -429,6 +431,10 @@ def check_packet_json(path: str, sockets: set, measurement_ids=None):
429431
)
430432
)
431433
is_valid = False
434+
else:
435+
# Track that this measurement is being used
436+
if used_measurement_ids is not None:
437+
used_measurement_ids.add(meas_id)
432438

433439
# Ensure that socket is defined in the sockets
434440
socket_name = pkt.get("socket", "")
@@ -494,7 +500,13 @@ def check_socket_json(path: str, sockets_name: set):
494500

495501
else:
496502
socket_ip = socket.get("remote_ip", "")
497-
if socket_ip != "" and not is_valid_ipv4(socket_ip):
503+
504+
# Remote ip might also be backend
505+
if (
506+
socket_ip != ""
507+
and not is_valid_ipv4(socket_ip)
508+
and socket_ip.lower() != "backend"
509+
):
498510
error_list.append(
499511
logError(
500512
path,
@@ -591,6 +603,7 @@ def main():
591603

592604
# measurements are unique within a board
593605
measurement_ids = set()
606+
used_measurement_ids = set()
594607

595608
# sockets are unique
596609
sockets_name = set()
@@ -621,9 +634,33 @@ def main():
621634
f"boards/{board_name}/{packets_path}",
622635
sockets_name,
623636
measurement_ids,
637+
used_measurement_ids,
624638
)
625639
and valid
626640
)
641+
642+
# Check for measurements that are defined but not used
643+
unused_measurements = measurement_ids - used_measurement_ids
644+
unused_error_list = []
645+
if unused_measurements:
646+
for measurement_id in sorted(unused_measurements):
647+
unused_error_list.append(
648+
logError(
649+
f"{board_name} - GENERAL INFO",
650+
f"measurement id '{measurement_id}'",
651+
f"Measurement id '{measurement_id}' is defined but never used in any packet or order",
652+
)
653+
)
654+
valid = False
655+
656+
if unused_error_list:
657+
print_results(
658+
f"boards/{board_name}",
659+
False,
660+
unused_error_list,
661+
type="(Unused Measurements)",
662+
prefix="\t",
663+
)
627664
else:
628665
log_message(
629666
f"Skipping measurements and packets validation for board {board_name} due to previous errors",

.github/workflows/scripts/adj-tester/schema/packet.schema.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,21 @@
3737
},
3838
"description": "Measurement IDs included in this packet"
3939
},
40-
"period_ms": {
40+
"period": {
4141
"type": [
4242
"integer",
4343
"number"
4444
],
4545
"description": "Packet transmission period in milliseconds"
4646
},
47+
"period_type": {
48+
"type": "string",
49+
"enum": [
50+
"us",
51+
"ms"
52+
],
53+
"description": "Unit type for period (microseconds or milliseconds)"
54+
},
4755
"socket": {
4856
"type": "string",
4957
"description": "Name of the socket used for this packet"

.github/workflows/scripts/adj-tester/schema/socket.schema.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
},
4141
"remote_ip": {
4242
"type": "string",
43-
"format": "ipv4",
4443
"description": "Remote IPv4 address"
4544
},
4645
"remote_port": {

boards/BCU/measurements.json

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,4 @@
11
[
2-
{
3-
"id": "output_duty_cycle_u",
4-
"name": "Duty Cycle U",
5-
"type": "float32",
6-
"podUnits": "%",
7-
"displayUnits": "%"
8-
},
9-
{
10-
"id": "output_duty_cycle_v",
11-
"name": "Duty Cycle V",
12-
"type": "float32",
13-
"podUnits": "%",
14-
"displayUnits": "%"
15-
},
16-
{
17-
"id": "output_duty_cycle_w",
18-
"name": "Duty Cycle W",
19-
"type": "float32",
20-
"podUnits": "%",
21-
"displayUnits": "%"
22-
},
23-
{
24-
"id": "output_commutation_frequency_hz",
25-
"name": "Commutation Frequency",
26-
"type": "uint32",
27-
"podUnits": "Hz",
28-
"displayUnits": "Hz"
29-
},
30-
{
31-
"id": "output_dead_time_ns",
32-
"name": "Dead Time",
33-
"type": "uint32",
34-
"podUnits": "ns",
35-
"displayUnits": "ns"
36-
},
372
{
383
"id": "bcu_general_state",
394
"name": "General State",
@@ -306,66 +271,6 @@
306271
"name": "Direction Speetec 1",
307272
"type": "bool"
308273
},
309-
{
310-
"id": "position_speetec_2",
311-
"name": "Position Speetec 2",
312-
"type": "float64",
313-
"podUnits": "m",
314-
"displayUnits": "m"
315-
},
316-
{
317-
"id": "speed_speetec_2",
318-
"name": "Speed Speetec 2",
319-
"type": "float64",
320-
"podUnits": "m/s",
321-
"displayUnits": "m/s"
322-
},
323-
{
324-
"id": "acceleration_speetec_2",
325-
"name": "Acceleration Speetec 2",
326-
"type": "float64",
327-
"podUnits": "m/ss",
328-
"displayUnits": "m/ss"
329-
},
330-
{
331-
"id": "direction_speetec_2",
332-
"name": "Direction Speetec 2",
333-
"type": "enum",
334-
"enumValues": [
335-
"Forward",
336-
"Backward"
337-
]
338-
},
339-
{
340-
"id": "position_speetec_3",
341-
"name": "Position Speetec 3",
342-
"type": "float64",
343-
"podUnits": "m",
344-
"displayUnits": "m"
345-
},
346-
{
347-
"id": "speed_speetec_3",
348-
"name": "Speed Speetec 3",
349-
"type": "float64",
350-
"podUnits": "m/s",
351-
"displayUnits": "m/s"
352-
},
353-
{
354-
"id": "acceleration_speetec_3",
355-
"name": "Acceleration Speetec 3",
356-
"type": "float64",
357-
"podUnits": "m/ss",
358-
"displayUnits": "m/ss"
359-
},
360-
{
361-
"id": "direction_speetec_3",
362-
"name": "Direction Speetec 3",
363-
"type": "enum",
364-
"enumValues": [
365-
"Forward",
366-
"Backward"
367-
]
368-
},
369274
{
370275
"id": "d_current_reference",
371276
"name": "D Current Reference",
@@ -449,12 +354,5 @@
449354
"type": "float64",
450355
"podUnits": "rad",
451356
"displayUnits": "rad"
452-
},
453-
{
454-
"id": "target_linear_speed",
455-
"name": "Target Linear Speed (m/s)",
456-
"type": "float32",
457-
"podUnits": "m/s",
458-
"displayUnits": "m/s"
459357
}
460358
]

boards/BCU/order_measurements.json

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -101,32 +101,6 @@
101101
"warning": 0.0
102102
}
103103
},
104-
{
105-
"id": "requested_d_current_reference",
106-
"name": "D Current Reference (A)",
107-
"type": "float32",
108-
"podUnits": "A",
109-
"displayUnits": "A",
110-
"out_of_range": {
111-
"warning": [
112-
0.0,
113-
80.0
114-
]
115-
}
116-
},
117-
{
118-
"id": "requested_q_current_reference",
119-
"name": "Q Current Reference (A)",
120-
"type": "float32",
121-
"podUnits": "A",
122-
"displayUnits": "A",
123-
"out_of_range": {
124-
"warning": [
125-
0.0,
126-
80.0
127-
]
128-
}
129-
},
130104
{
131105
"id": "requested_d_current_reference_2",
132106
"name": "D Current Reference(A)",

0 commit comments

Comments
 (0)