You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enhance communications package to enable data exchange between the Ground Control System (GCS) and the Field Device Software (FDS), focusing on defining packets, implementing callbacks, and ensuring efficient and reliable data transmission.
Requirements
General
Bidirectional Communication: The package MUST enable two-way communication between GCS and FDS.
Acknowledgments: The package MUST implement acknowledgment mechanisms for critical commands and configurations.
State Encoding: Finite state values like gps_state and ping_finder_stateSHOULD be efficiently encoded for transmission and converted back on the receiving end.
Timestamp Handling: The packet_sent_timestampWILL be set by the communications package before sending.
Implementation Flexibility: The methods for checksums and state variable encoding MAY be determined by the implementer.
Packet Definitions
From FDS to GCS
Ping Detection Packet
Fields:
drone_latitude_degrees: float
drone_longitude_degrees: float
drone_altitude_meters: float
transmitter_power_db: float
transmitter_frequency_hz: int
packet_sent_timestamp: datetime
checksum: implementation-defined
Purpose: Notify GCS of detected pings.
Heartbeat Packet
Fields:
drone_latitude_degrees: float or None
drone_longitude_degrees: float or None
drone_altitude_meters: float or None
drone_heading_degrees: float
gps_state: implementation-defined
ping_finder_state: implementation-defined
packet_sent_timestamp: datetime
checksum: implementation-defined
Purpose: Provide regular status updates.
Transmitter Location Estimation Packet
Fields:
transmitter_frequency_hz: int
transmitter_latitude_degrees: float
transmitter_longitude_degrees: float
transmitter_altitude_meters: float
packet_sent_timestamp: datetime
checksum: implementation-defined
Purpose: Share estimated transmitter locations.
Acknowledgment Packets
Configuration Acknowledgment
Fields:
success: bool
message: implementation-defined
packet_sent_timestamp: datetime
checksum: implementation-defined
Command Acknowledgment
Fields:
command: implementation-defined
success: bool
message: implementation-defined
packet_sent_timestamp: datetime
checksum: implementation-defined
From GCS to FDS
Set Ping Finder Configuration
Fields:
run_number_id: int
target_frequencies_hz: list of int
Optional fields with defaults:
sampling_rate_hz: int (default 2,500,000)
gain_db: float (default 56.0)
center_frequency_hz: int (default: average of target_frequencies_hz)
ping_width_ms: int (default 25)
ping_min_snr: int (default 25)
ping_max_length_multiplier: float (default 1.5)
ping_min_length_multiplier: float (default 0.5)
checksum: implementation-defined
Purpose: Configure the Ping Finder.
Control Commands
Start Flight Command
Fields:
checksum: implementation-defined
Reset Command
Fields:
checksum: implementation-defined
End Flight Command
Fields:
checksum: implementation-defined
Data Integrity and Efficiency
Data Integrity: The implementer MUST implement measures (e.g., checksums) to ensure packets are received correctly.
Efficient Encoding: State variables and other data SHOULD be encoded efficiently for transmission.
Tasks
Review Existing Communications Code
Familiarize yourself with the previous communications implementation to understand packet handling and checksum usage:
Objective
Enhance communications package to enable data exchange between the Ground Control System (GCS) and the Field Device Software (FDS), focusing on defining packets, implementing callbacks, and ensuring efficient and reliable data transmission.
Requirements
General
gps_state
andping_finder_state
SHOULD be efficiently encoded for transmission and converted back on the receiving end.packet_sent_timestamp
WILL be set by the communications package before sending.Packet Definitions
From FDS to GCS
Ping Detection Packet
drone_latitude_degrees
:float
drone_longitude_degrees
:float
drone_altitude_meters
:float
transmitter_power_db
:float
transmitter_frequency_hz
:int
packet_sent_timestamp
:datetime
checksum
: implementation-definedHeartbeat Packet
drone_latitude_degrees
:float
orNone
drone_longitude_degrees
:float
orNone
drone_altitude_meters
:float
orNone
drone_heading_degrees
:float
gps_state
: implementation-definedping_finder_state
: implementation-definedpacket_sent_timestamp
:datetime
checksum
: implementation-definedTransmitter Location Estimation Packet
transmitter_frequency_hz
:int
transmitter_latitude_degrees
:float
transmitter_longitude_degrees
:float
transmitter_altitude_meters
:float
packet_sent_timestamp
:datetime
checksum
: implementation-definedAcknowledgment Packets
success
:bool
message
: implementation-definedpacket_sent_timestamp
:datetime
checksum
: implementation-definedcommand
: implementation-definedsuccess
:bool
message
: implementation-definedpacket_sent_timestamp
:datetime
checksum
: implementation-definedFrom GCS to FDS
Set Ping Finder Configuration
run_number_id
:int
target_frequencies_hz
:list
ofint
sampling_rate_hz
:int
(default2,500,000
)gain_db
:float
(default56.0
)center_frequency_hz
:int
(default: average oftarget_frequencies_hz
)ping_width_ms
:int
(default25
)ping_min_snr
:int
(default25
)ping_max_length_multiplier
:float
(default1.5
)ping_min_length_multiplier
:float
(default0.5
)checksum
: implementation-definedControl Commands
checksum
: implementation-definedchecksum
: implementation-definedchecksum
: implementation-definedData Integrity and Efficiency
Tasks
Review Existing Communications Code
Define State Encoding
gps_state
andping_finder_state
.Implement Data Integrity Measures
Develop Packet Structures
Develop Packet Sending/Receiving
Deliverables
Source Code
Documentation
Test Cases
Pull Request
dev
branch with all deliverables.The text was updated successfully, but these errors were encountered: