Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[uss_qualifier] netrid - NET0320: check SP behavior upon UAS disconnection #880

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Shastick
Copy link
Contributor

@Shastick Shastick commented Jan 13, 2025

Add a scenario to cover NET0320: service providers that cease receiving telemetry data for a flight must return the last returned telemetry (position and timestamp, notably) during the near real-time window (60 seconds).

This is achieved by:

  • adding a new data evaluator (DisconnectedUASObservationEvaluator)
  • adding a function allowing to truncate the telemetry of FlightDataResource (this is not strictly required but ensures that scenarios don't needlessly run too long)

@Shastick Shastick changed the title Net0320 uas disconnect [uss_qualifier] netrid - NET0320: check SP behavior upon UAS disconnection Jan 13, 2025
@Shastick Shastick force-pushed the net0320-uas-disconnect branch from f11490e to ba2fc64 Compare January 13, 2025 09:57
@Shastick Shastick marked this pull request as ready for review January 13, 2025 10:42
@Shastick Shastick force-pushed the net0320-uas-disconnect branch from ba2fc64 to c3e6ae2 Compare January 15, 2025 16:06
@Shastick Shastick force-pushed the net0320-uas-disconnect branch from c3e6ae2 to 644210a Compare January 16, 2025 08:41

### Service Provider polling test step

If a DSS was provided to this test scenario, uss_qualifier acts as a Display Provider to query Service Providers under test in this step.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this particular scenario, the DSS is mandatory, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to move some of the documented checks to fragments since they are the same as for the nominal one?

@@ -88,6 +88,23 @@ def get_test_flights(self) -> List[TestFlight]:

return test_flights

def truncate_flights_duration(self, duration: timedelta):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible that using this approach (altering in place objects) we are actually impacting other scenarios which may reference the root object upstream ?

This evaluator observes a set of provided RIDSystemObservers in
evaluate_system by repeatedly polling them according to the expected data
provided to RIDObservationEvaluator upon construction. During these
evaluations, RIDObservationEvaluator mutates provided findings object to add
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
evaluations, RIDObservationEvaluator mutates provided findings object to add
evaluations, DisconnectedUASObservationEvaluator mutates provided findings object to add


This evaluator observes a set of provided RIDSystemObservers in
evaluate_system by repeatedly polling them according to the expected data
provided to RIDObservationEvaluator upon construction. During these
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
provided to RIDObservationEvaluator upon construction. During these
provided to DisconnectedUASObservationEvaluator upon construction. During these


# Keep track of the flights that we have observed as having been 'disconnected'
# (last observed telemetry corresponds to last injected one within the window where data is returned)
self._witnessed_disconnections: Set[str] = set()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency:

Suggested change
self._witnessed_disconnections: Set[str] = set()
self._observed_disconnections: Set[str] = set()

) -> bool:
"""
Polls service providers relevant to the injected test flights and verifies that,
for any flight that is not sending telemtry data anymore (ie, the last injected telemetry data lies in the past),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for any flight that is not sending telemtry data anymore (ie, the last injected telemetry data lies in the past),
for any flight that is not sending telemetry data anymore (ie, the last injected telemetry data lies in the past),

].observed_flight.flight.timestamp.datetime
)

if arrow.get(last_expected_telemetry) != arrow.get(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would expect that both values may not be completely matching and some error / inaccuracy should be allowed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants