Skip to content

Commit abf62e8

Browse files
authored
[uss_qualifier/scenarios/netrid/nominal_behavior] Add checks for UA type in DP (NET0470) (#866)
1 parent 436dcdf commit abf62e8

File tree

8 files changed

+81
-16
lines changed

8 files changed

+81
-16
lines changed

monitoring/uss_qualifier/scenarios/astm/netrid/common_dictionary_evaluator.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
injection,
2020
)
2121
from uas_standards.interuss.automated_testing.rid.v1.injection import (
22-
RIDAircraftState,
2322
RIDAircraftPosition,
2423
)
2524

@@ -70,23 +69,39 @@ def evaluate_sp_flight(
7069

7170
def evaluate_dp_flight(
7271
self,
73-
injected_flight: RIDAircraftState,
72+
injected_telemetry: injection.RIDAircraftState,
73+
injected_flight: injection.TestFlight,
7474
observed_flight: observation_api.Flight,
7575
participants: List[str],
76+
query_timestamp: datetime.datetime,
7677
):
7778
"""Implements fragment documented in `common_dictionary_evaluator_dp_flight.md`."""
7879

80+
self._evaluate_ua_type(
81+
injected_flight,
82+
None,
83+
observed_flight,
84+
participants[
85+
0
86+
], # TODO: flatten 'participants', it always has a single value
87+
query_timestamp,
88+
)
89+
7990
# If the state is present, we do validate its content,
8091
# but its presence is optional
81-
if injected_flight.has_field_with_value("current_state"):
92+
if injected_telemetry.has_field_with_value("current_state"):
8293
self._evaluate_speed(
83-
injected_flight.speed, observed_flight.current_state.speed, participants
94+
injected_telemetry.speed,
95+
observed_flight.current_state.speed,
96+
participants,
8497
)
8598
self._evaluate_track(
86-
injected_flight.track, observed_flight.current_state.track, participants
99+
injected_telemetry.track,
100+
observed_flight.current_state.track,
101+
participants,
87102
)
88103
self._evaluate_timestamp(
89-
injected_flight.timestamp,
104+
injected_telemetry.timestamp,
90105
observed_flight.current_state.timestamp,
91106
participants,
92107
)
@@ -98,10 +113,12 @@ def evaluate_dp_flight(
98113
)
99114

100115
self._evaluate_position(
101-
injected_flight.position, observed_flight.most_recent_position, participants
116+
injected_telemetry.position,
117+
observed_flight.most_recent_position,
118+
participants,
102119
)
103120
self._evaluate_height(
104-
injected_flight.get("height"),
121+
injected_telemetry.get("height"),
105122
observed_flight.most_recent_position.get("height"),
106123
participants,
107124
)

monitoring/uss_qualifier/scenarios/astm/netrid/display_data_evaluator.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,11 @@ def _evaluate_normal_observation(
406406
)
407407

408408
self._common_dictionary_evaluator.evaluate_dp_flight(
409-
injected_flight=injected_telemetry,
410-
observed_flight=mapping.observed_flight,
411-
participants=[observer.participant_id],
409+
injected_telemetry,
410+
mapping.injected_flight.flight,
411+
mapping.observed_flight,
412+
[observer.participant_id],
413+
query.request.timestamp,
412414
)
413415

414416
# Check that flights using telemetry are not using extrapolated position data

monitoring/uss_qualifier/scenarios/astm/netrid/v19/common_dictionary_evaluator_dp_flight.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
This fragment is implemented in `common_dictionary_evaluator.py:RIDCommonDictionaryEvaluator.evaluate_dp_flight`.
44

5-
#### Correct up-to-date altitude if present check
5+
## ⚠️ UA type is exposed correctly check
6+
7+
If the UA type value exposed by the observation API is invalid this check will fail per:
8+
**[interuss.automated_testing.rid.observation.ObservationSuccess](../../../../requirements/interuss/automated_testing/rid/observation.md)** because the DP violates the observation API contract;
9+
**[astm.f3411.v19.NET0450](../../../../requirements/astm/f3411/v19.md)** because the DP fails to provide accurate data;
10+
**[astm.f3411.v19.NET0470,Table1,3](../../../../requirements/astm/f3411/v19.md)** because the DP fails to expose data consistent with the Common Data Dictionary.
11+
12+
## ⚠️ UA type is consistent with injected value check
13+
14+
If the UA type value exposed by the observer API is inconsistent with the injected value this check will fail per:
15+
**[astm.f3411.v19.NET0450](../../../../requirements/astm/f3411/v19.md)** because the DP fails to provide accurate data;
16+
**[astm.f3411.v19.NET0470,Table1,3](../../../../requirements/astm/f3411/v19.md)** because the DP fails to expose data consistent with the valid injected value.
17+
18+
## Correct up-to-date altitude if present check
619

720
If the observed altitude of a flight is reported, but it does not match the altitude of the injected telemetry, the display provider is not providing precise and up-to-date information, and thus does not respect **[astm.f3411.v19.NET0450](../../../../requirements/astm/f3411/v19.md)**.

monitoring/uss_qualifier/scenarios/astm/netrid/v22a/common_dictionary_evaluator_dp_flight.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
This fragment is implemented in `common_dictionary_evaluator.py:RIDCommonDictionaryEvaluator.evaluate_dp_flight`.
44

5+
## ⚠️ UA type is exposed correctly check
6+
7+
If the UA type value exposed by the observation API is invalid this check will fail per:
8+
**[interuss.automated_testing.rid.observation.ObservationSuccess](../../../../requirements/interuss/automated_testing/rid/observation.md)** because the DP violates the observation API contract;
9+
**[astm.f3411.v22a.NET0450](../../../../requirements/astm/f3411/v22a.md)** because the DP fails to provide accurate data;
10+
**[astm.f3411.v22a.NET0470,Table1,2](../../../../requirements/astm/f3411/v22a.md)** because the DP fails to expose data consistent with the Common Data Dictionary.
11+
12+
## ⚠️ UA type is consistent with injected value check
13+
14+
If the UA type value exposed by the observer API is inconsistent with the injected value this check will fail per:
15+
**[astm.f3411.v22a.NET0450](../../../../requirements/astm/f3411/v22a.md)** because the DP fails to provide accurate data;
16+
**[astm.f3411.v22a.NET0470,Table1,2](../../../../requirements/astm/f3411/v22a.md)** because the DP fails to expose data consistent with the valid injected value.
17+
518
## Correct up-to-date altitude if present check
619

720
If the observed altitude of a flight is reported, but it does not match the altitude of the injected telemetry, the display provider is not providing precise and up-to-date information, and thus does not respect **[astm.f3411.v22a.NET0450](../../../../requirements/astm/f3411/v22a.md)**.

monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<th><a href="../../README.md#checked-in">Checked in</a></th>
2222
</tr>
2323
<tr>
24-
<td rowspan="76" style="vertical-align:top;"><a href="../../../requirements/astm/f3411/v19.md">astm<br>.f3411<br>.v19</a></td>
24+
<td rowspan="77" style="vertical-align:top;"><a href="../../../requirements/astm/f3411/v19.md">astm<br>.f3411<br>.v19</a></td>
2525
<td><a href="../../../requirements/astm/f3411/v19.md">DSS0010</a></td>
2626
<td>Implemented</td>
2727
<td><a href="../../../scenarios/astm/netrid/v19/dss/token_validation.md">ASTM NetRID DSS: Token Validation</a></td>
@@ -361,6 +361,11 @@
361361
<td>Implemented</td>
362362
<td><a href="../../../scenarios/astm/netrid/v19/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
363363
</tr>
364+
<tr>
365+
<td><a href="../../../requirements/astm/f3411/v19.md">NET0470,Table1,3</a></td>
366+
<td>Implemented</td>
367+
<td><a href="../../../scenarios/astm/netrid/v19/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
368+
</tr>
364369
<tr>
365370
<td><a href="../../../requirements/astm/f3411/v19.md">NET0480</a></td>
366371
<td>Implemented</td>

monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<th><a href="../../README.md#checked-in">Checked in</a></th>
2222
</tr>
2323
<tr>
24-
<td rowspan="102" style="vertical-align:top;"><a href="../../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
24+
<td rowspan="103" style="vertical-align:top;"><a href="../../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
2525
<td><a href="../../../requirements/astm/f3411/v22a.md">DSS0010</a></td>
2626
<td>Implemented</td>
2727
<td><a href="../../../scenarios/astm/netrid/v22a/dss/token_validation.md">ASTM NetRID DSS: Token Validation</a></td>
@@ -451,6 +451,11 @@
451451
<td>Implemented</td>
452452
<td><a href="../../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
453453
</tr>
454+
<tr>
455+
<td><a href="../../../requirements/astm/f3411/v22a.md">NET0470,Table1,2</a></td>
456+
<td>Implemented</td>
457+
<td><a href="../../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
458+
</tr>
454459
<tr>
455460
<td><a href="../../../requirements/astm/f3411/v22a.md">NET0470,Table1,20</a></td>
456461
<td>Implemented</td>

monitoring/uss_qualifier/suites/uspace/network_identification.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<th><a href="../README.md#checked-in">Checked in</a></th>
1818
</tr>
1919
<tr>
20-
<td rowspan="102" style="vertical-align:top;"><a href="../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
20+
<td rowspan="103" style="vertical-align:top;"><a href="../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
2121
<td><a href="../../requirements/astm/f3411/v22a.md">DSS0010</a></td>
2222
<td>Implemented</td>
2323
<td><a href="../../scenarios/astm/netrid/v22a/dss/token_validation.md">ASTM NetRID DSS: Token Validation</a></td>
@@ -447,6 +447,11 @@
447447
<td>Implemented</td>
448448
<td><a href="../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
449449
</tr>
450+
<tr>
451+
<td><a href="../../requirements/astm/f3411/v22a.md">NET0470,Table1,2</a></td>
452+
<td>Implemented</td>
453+
<td><a href="../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
454+
</tr>
450455
<tr>
451456
<td><a href="../../requirements/astm/f3411/v22a.md">NET0470,Table1,20</a></td>
452457
<td>Implemented</td>

monitoring/uss_qualifier/suites/uspace/required_services.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<th><a href="../README.md#checked-in">Checked in</a></th>
1919
</tr>
2020
<tr>
21-
<td rowspan="102" style="vertical-align:top;"><a href="../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
21+
<td rowspan="103" style="vertical-align:top;"><a href="../../requirements/astm/f3411/v22a.md">astm<br>.f3411<br>.v22a</a></td>
2222
<td><a href="../../requirements/astm/f3411/v22a.md">DSS0010</a></td>
2323
<td>Implemented</td>
2424
<td><a href="../../scenarios/astm/netrid/v22a/dss/token_validation.md">ASTM NetRID DSS: Token Validation</a></td>
@@ -448,6 +448,11 @@
448448
<td>Implemented</td>
449449
<td><a href="../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
450450
</tr>
451+
<tr>
452+
<td><a href="../../requirements/astm/f3411/v22a.md">NET0470,Table1,2</a></td>
453+
<td>Implemented</td>
454+
<td><a href="../../scenarios/astm/netrid/v22a/nominal_behavior.md">ASTM NetRID nominal behavior</a></td>
455+
</tr>
451456
<tr>
452457
<td><a href="../../requirements/astm/f3411/v22a.md">NET0470,Table1,20</a></td>
453458
<td>Implemented</td>

0 commit comments

Comments
 (0)