visionspacetec / sle-provider

Space Link Extension Provider in Python3
https://www.visionspace.com/
GNU Affero General Public License v3.0
33 stars 4 forks source link

Offline Mode #14

Closed S1eepyBear closed 5 months ago

S1eepyBear commented 5 months ago

what‘s the difference between sle-online and sle-offline mode? We are currently testing with the ESA,but the offline mode can only bind,can't start.

milenko-s commented 5 months ago

Hi @fangcar

In short, the Online modes are used during a pass over the ground station to communicate live with the spacecraft, while the Offline mode retrieves past data stored at the ground station.

There are three delivery modes in SLE (see https://public.ccsds.org/Pubs/911x1b5.pdf page 2-16 2.6.4.6.2 Transfer Buffer for an explanation of the differences.

For the Offline mode, a database is required, and this is not implemented. We are supporting only Timely Online at the moment: https://github.com/visionspacetec/sle-provider/blob/d30fc258d52eed24b0d79f902253da191cdca00a/sleprovider/sleProvider.py#L146

S1eepyBear commented 5 months ago

Thank you for your answer,I have a general understanding for the two modes.

When I connect to a sle-provider,the config as follows. So the start_time/stop_time is not null, the delivery_mode is OFFLINE.Is there any other difference between online and offline mode?

provider.si_config = { 'sagr=1.spack=VST-PASS0001.rsl-fg=1.raf=onlt1': { 'start_time': None, 'stop_time': None, 'initiator_id': 'SLE_USER', 'responder_id': 'SLE_PROVIDER', 'return_timeout_period': 15, 'delivery_mode': 'TIMELY_ONLINE', 'initiator': 'USER', 'permitted_frame_quality': ['allFrames', 'erredFramesOnly', 'goodFramesOnly'], 'latency_limit': 9, 'transfer_buffer_size': 1, 'report_cycle': None, 'requested_frame_quality': 'allFrames', 'state': 'unbound' } }

milenko-s commented 5 months ago

So stop_time must be earlier than the current time, latency_limit must be null, and you need to update the service instance identifier to end with offlx (e.g. offl1 instead of the current onlt1).

But as explained, it is currently not implemented, so you must add some functionality. I would be happy to review if you open a merge request 👍