ros_acomms_msgs package#

Message Definitions#

AcousticTimesync.msg#

ros_acomms_msgs/AcousticTimesync#

std_msgs/Headerheader#

Standard ROS header containing timestamp and frame information

int16src#

The source ID of the message

int16dest#

The destination ID of the message

ros_acomms_msgs/Timesrc_time#

The time when the message was sent from the source

ros_acomms_msgs/Timedest_time#

The time when the message was received by the destination

uint32src_dest_offset_us#

The offset in microseconds between the source and destination times

CST.msg#

ros_acomms_msgs/CST#

int8version_number#

CST message Version number; if it’s less than 6, then it’s version 0

int8mode#

Indication of the Received Packet’s State: 0 if good, 1 if bad CRCs, 2 if packet timeout

ros_acomms_msgs/Timetoa#

Time of Arrival of the Packet

int8toa_mode#

TOA mode Clock status represented as bitwise field: Bits 0:1: RTC source - 0: None, 1: Onboard RTC, 2: User Command (CLK), 3: User GPS (GPRMC) Bits 2:4 PPS Source - 0: None, 1: RTC, 2: CAL (future), 3: EXT (from external pin), 4: EXT_SYNC (from RTC synchronized to the last EXT PPS pulse)

uint16mfd_peak#

Matched-filter peak value

int16mfd_pow#

MFPK compensated for shift and converted to dB

int16mfd_ratio#

Ratio of MFPK and incoherent broad-band noise used for the detector test

int16mfd_spl#

Sound Pressure Level at the receiver in dB re. 1 µPa

int16agn#

Analog gain setting

int16shift_ainp#

Shift of previous input buffer

int16shift_ain#

Shift of current input buffer

int16shift_mfd#

Shift of the basebanded buffer containing a detection

int16shift_p2b#

Shift performed during basebanding incoming data

int8rate_num#

Packet Rate (or miniframe rate for FDP)

int16src#

Packet Source ID

int16dest#

Packet Destination ID

int16psk_error#

PSK Error Code: 0: No Error 1: Bad Modulation header 2: Bad CRC, Data Header 3: Bad CRC on any frame 4: Error accessing coproc - if modem loses r/w connection to the coproc 5: Equalizer timeout - if the coproc never returns 6: Missed start of PSK packet

int8packet_type#

Packet Type: -1: Unknown 1: FSK 2: FSK Mini 3: PSK 4: PSK Mini 5: PSK FDP

int16num_frames#

Number of Frames Expected

int16bad_frames_num#

Number of Frames with Bad CRCs

int16snr_rss#

Received signal strength in dB re. 1 µPa

float32snr_in#

Input SNR, dB, channel 1 only, reported to 1 decimal place in version 6 of CACST

float32snr_out#

SNR at the output of the equalizer, dB, reported to 1 decimal place in version 6 of CACST

float32snr_sym#

Symbol SNR for spread spectrum packets only, dB

float32mse#

Mean Squared Error from Equalizer

int16dqf#

Data Quality Factor, FSK only

float32dop#

Doppler shift measurement

int16noise#

Std dev. of noise, dB

int32carrier#

Carrier frequency of received packet, Hz

int32bandwidth#

Bandwidth of received packet, Hz

int32sequence_number#

Sequence number of packet

int16data_rate#

Dataframe rate of packet

int16num_data_frames#

Number of Data Frames in the packet

int16num_bad_data_frames#

Number of Bad Data Frames in the packet

LinkStatsFeedback.msg#

ros_acomms_msgs/LinkStatsFeedback#

std_msgs/Headerheader#
uint8receiver_src#
float32median_noise_dB#
CST [] csts#
float32 [] noise_for_csts#

ModemAck.msg#

ros_acomms_msgs/ModemAck#

std_msgs/Headerheader#
ros_acomms_msgs/Timetimestamp#
int8ACK_TYPE_UNKNOWN = -1#
int8ACK_TYPE_FDP = 0#
int8ACK_TYPE_LEGACY = 1#
int8ack_type#
int32rx_sequence_num#
uint8src#
uint8dest#
int8minirate#
uint8miniframe_ack#
uint16dataframe_ack#

ModemSensorData.msg#

ros_acomms_msgs/ModemSensorData#

std_msgs/Headerheader#
float32pwramp_temperature#
float32pwramp_vbat#
float32pwramp_vtransmit#
float32modem_batt_v#
float32modem_temp#

NST.msg#

ros_acomms_msgs/NST#

std_msgs/Headerheader#

SNNST statistics for Nav commands

int8version#
int16ftx#
int16ttx#
ros_acomms_msgs/Timequery_time#
int16nav_agn#
int16tat#
float32a1_owtt#

“A” Transponder response metrics

int16a1_pk#
int16a1_pow#
int16a1_ratio#
int16a1_frx#
float32b2_owtt#

“B” Transponder response metrics

int16b2_pk#
int16b2_pow#
int16b2_ratio#
int16b2_frx#
float32c3_owtt#

“C” Transponder response metrics

int16c3_pk#
int16c3_pow#
int16c3_ratio#
int16c3_frx#
float32d4_owtt#

“D” Transponder response metrics

int16d4_pk#
int16d4_pow#
int16d4_ratio#
int16d4_frx#

NeighborReachability.msg#

ros_acomms_msgs/NeighborReachability#

int16dest#
boolreachable#
int8fastest_rate#

PDT.msg#

ros_acomms_msgs/PDT#

std_msgs/Headerheader#

SNPDT modem-to-host response to $CCPDT command

int8grp#
int8chn#
boollf#
int16nav_agn#
int16timeout#
bool [4] flags#

PGT.msg#

ros_acomms_msgs/PGT#

std_msgs/Headerheader#

SNPGT modem-to-host response to $CCPGT command

uint8mode#
uint16ftx#
uint16nbits_tx#
stringtx_seq_code#
uint16transponder_timeout_ms#
uint16frx#
uint16nbits_rx#
stringrx_seq_code1#
stringrx_seq_code2#
stringrx_seq_code3#
stringrx_seq_code4#
uint16bandwidth_hz_tx#
uint16bandwidth_hz_rx#
int16reserved#

Packet.msg#

ros_acomms_msgs/Packet#

int16src#
int16dest#
int8PACKET_TYPE_UNKNOWN = -1#
int8PACKET_TYPE_AUTO = 0#
int8PACKET_TYPE_FSK = 1#
int8PACKET_TYPE_LEGACY_PSK = 2#
int8PACKET_TYPE_FDP = 3#
int8packet_type#
int8miniframe_rate#
int8dataframe_rate#
uint8 [] miniframe_bytes#
uint8 [] dataframe_bytes#

PingReply.msg#

ros_acomms_msgs/PingReply#

std_msgs/Headerheader#
int16src#
int16dest#
float32owtt#
float32tat#
float32snr_in#
float32snr_out#
int8tx_level#
int8reserved1#
int8reserved2#
int8timestamp_res#
int8toa_mode#
int8snv_on#
uint32timestamp#
CSTcst#

PingTranspondersReply.msg#

ros_acomms_msgs/PingTranspondersReply#

std_msgs/Headerheader#
bool [] transponder_dest_mask#
uint16timeout_ms#
ros_acomms_msgs/Timetime_of_ping#
float32owtt_a#
float32owtt_b#
float32owtt_c#
float32owtt_d#

QueueEnable.msg#

ros_acomms_msgs/QueueEnable#

int16queue_id#

Queue ID corresponding to the value in the config file (Uses ID rather than topic name for more compact acoustic transmission)

boolenable#

Whether to enable (True) or disable (False) this queue

QueuePriority.msg#

ros_acomms_msgs/QueuePriority#

int16queue_id#
int16priority#

QueueStatus.msg#

ros_acomms_msgs/QueueStatus#

std_msgs/Headerheader#
int32total_message_count#

Number of messages in all queues

int16highest_priority#

Highest priority of any message, in any queue

int16 [] queued_dest_addresses#

Set of all destination addresses to which queued messages are addressed

SummaryMessageCount [] summary_message_counts#

Summary of outstanding messages, grouped by (priority, destination)

QueueSummary [] queue_summaries#

Summary of outstanding messages, per-queue.

QueueSummary.msg#

ros_acomms_msgs/QueueSummary#

int16queue_id#

Queue that the topic corresponds to

stringtopic#

Name of subscribed topic

int16priority#

Current priority of each queue However, it is possible for an individual queued message to be added with a different priority.

boolenabled#

Whether the queue is active or not

int16message_count#

How many un-sent messages are in the queue

int32next_message_size_bits#

The size in bits of the next message in this queue

int32total_bits_in_queue#

The total size of all messages in this queue (in bits)

ReceivedPacket.msg#

ros_acomms_msgs/ReceivedPacket#

std_msgs/Headerheader#
Packetpacket#
int16 [] minibytes_valid#
int16 [] databytes_valid#
CSTcst#

SST.msg#

ros_acomms_msgs/SST#

ros_acomms_msgs/Timetime#

Timestamp, generated on computer (not modem)

int8sst_version#

SST message version

float32in_water_spl_db#

In-water in-band Sound Pressure Level (SPL) in dB. This is the average SPL over the last num_samples

int8detector#

Detector used during SPL calculation. This enum represents the detector type (e.g., psk chan, fsk chan, etc…). Only PSK is supported as of FW 3.2.2

int16num_samples#

Number of baseband samples used for each measurement (length of MFD filter)

float32summary_min#

sample minimum of SPL history (in dB). Min of five-number summary (descriptive statistics)

float32summary_lower_quartile#

lower quartile of SPL history (in dB). First quartile of five-number summary (descriptive statistics)

float32summary_median#

median value of SPL history (in dB). Middle value of five-number summary (descriptive statistics)

float32summary_upper_quartile#

upper quartile of SPL history (in dB). Third quartile of five-number summary (descriptive statistics)

float32summary_max#

sample maximum of SPL history (in dB). Max of five-number summary (descriptive statistics)

int16summary_len#

number of elements in SPL history. Each element is the average of a unique set of num_samples of baseband data

SoundSpeedProfile.msg#

ros_acomms_msgs/SoundSpeedProfile#

std_msgs/Headerheader#
float32 [] depths#
float32 [] sound_speeds#

SummaryMessageCount.msg#

ros_acomms_msgs/SummaryMessageCount#

int16priority#
int16dest_address#
int32message_count#

TTA.msg#

ros_acomms_msgs/TTA#

std_msgs/Headerheader#

SNTTA response to SNPDT “ping”

float32time_of_ping#
float32a_flag#
float32b_flag#
float32c_flag#
float32d_flag#

TdmaAdvancedStatus.msg#

ros_acomms_msgs/TdmaAdvancedStatus#

std_msgs/Headerheader#

tdma basic node info at root level for all sub classes (super class)

boolwe_are_active#
uint16current_slot#
int8minimum_priority#
string [] require_tags#
string [] exclude_tags#
float32remaining_slot_seconds#
float32remaining_active_seconds#
float32time_to_next_active#
float32time_to_next_dedicated_slot#
float32slot_duration_seconds#
boolsoftware_mute#

tdma advanced status (child class)

stringmessage#
int8miniframe_rate#
int8dataframe_rate#
int32maximum_miniframe_bytes#
int32maximum_dataframe_bytes#
uint16num_slots#
uint16 [] active_slots#
uint16 [] nav_slots#
uint16 [] comms_slots#
int8pings_per_slot#
int16ping_modem_src#
boolping_transponders#

TdmaScriptedStatus.msg#

ros_acomms_msgs/TdmaScriptedStatus#

std_msgs/Headerheader#

tdma basic node info at root level for all sub classes (super class)

boolwe_are_active#
uint16current_slot#
int8minimum_priority#
string [] require_tags#
string [] exclude_tags#
float32remaining_slot_seconds#
float32remaining_active_seconds#
float32time_to_next_active#
float32time_to_next_dedicated_slot#
float32slot_duration_seconds#
boolsoftware_mute#

tdma advanced status (parent class)

stringmessage#
int8miniframe_rate#
int8dataframe_rate#
int32maximum_miniframe_bytes#
int32maximum_dataframe_bytes#
uint16num_slots#
uint16 [] active_slots#
uint16 [] nav_slots#
uint16 [] comms_slots#
int8pings_per_slot#
int16ping_modem_src#
boolping_transponders#
int8last_miniframe_rate#

scripted status additional meta-data (child class)

int8last_dataframe_rate#
int32last_maximum_miniframe_bytes#
int32last_maximum_dataframe_bytes#
int16this_cycle_tx_count#
int16this_cycle_tx_total#
float32packet_duration_sec#
string [] this_cycle_modem_commands#
string [] last_cycle_modem_commands#

TdmaSlottedAlohaStatus.msg#

ros_acomms_msgs/TdmaSlottedAlohaStatus#

std_msgs/Headerheader#

tdma basic node info at root level for all sub classes (super class)

boolwe_are_active#
uint16current_slot#
int8minimum_priority#
string [] require_tags#
string [] exclude_tags#
float32remaining_slot_seconds#
float32remaining_active_seconds#
float32time_to_next_active#
float32time_to_next_dedicated_slot#
float32slot_duration_seconds#
boolsoftware_mute#

tdma advanced status (parent class)

stringmessage#
int8miniframe_rate#
int8dataframe_rate#
int32maximum_miniframe_bytes#
int32maximum_dataframe_bytes#
uint16num_slots#
uint16 [] active_slots#
uint16 [] nav_slots#
uint16 [] comms_slots#
int8pings_per_slot#
int16ping_modem_src#
boolping_transponders#
uint16 [] aloha_slots#

slotted aloha status additional meta-data (child class)

int8aloha_slot_priority#
float32time_to_next_aloha#
float32time_to_next_own_slot#

TdmaStatus.msg#

ros_acomms_msgs/TdmaStatus#

std_msgs/Headerheader#

tdma base class for tdma_advanced we_are_active, current_slot, remaining_slot_seconds, remaining_active_seconds, time_to_next_active

boolwe_are_active#
uint16current_slot#
int8minimum_priority#
string [] require_tags#
string [] exclude_tags#
float32remaining_slot_seconds#
float32remaining_active_seconds#
float32time_to_next_active#
float32time_to_next_dedicated_slot#
float32slot_duration_seconds#

TransmittedPacket.msg#

ros_acomms_msgs/TransmittedPacket#

std_msgs/Headerheader#
Packetpacket#
XSTxst#

UpdateQueuedMessage.msg#

ros_acomms_msgs/UpdateQueuedMessage#

Update a queued message in a dynamic queue This is used to tell a dynamic queue that a message, which it has provided via the GetNextQueuedMessage service, has been queued, tranmitted, or dequeued.

std_msgs/Headerheader#

Standard ROS message header

int32message_id#

Message ID used to uniquely identify the message within the dynamic queue. The service can implement this as a counter or any other scheme, but this should match the ID used by the dynamic queue service

Event type Message has been dequeued (no longer queued in an outgoing packet)

Message is queued in an outgoing packet, but it hasn’t been sent yet. This is often immediately superceded by EVENT_LINK_TRANSMITTED

Message has been transmitted. Generally, this is sent at the start of transmission.

int8event#

XST.msg#

ros_acomms_msgs/XST#

int8version_number#
ros_acomms_msgs/Timetime#
int8toa_mode#
int8mode#
int16probe_length#
uint32bandwidth#
uint32carrier#
int16rate_num#
int16src#
int16dest#
int16ack#
int16num_frames_expected#
int16num_frames_sent#
int16packet_type#
int32nbytes#
int32actual_carrier#

Service Definitions#

GetNextPacketData.srv#

ros_acomms_msgs/GetNextPacketData#

Request#
int32num_miniframe_bytes#

Request

int32num_dataframe_bytes#
boolmatch_dest#
int16dest#
int8minimum_priority#
string [] require_tags#
string [] exclude_tags#
stringmac_namespace#

MAC Introspection for dynamic queues. Information about the current cycle and slot that dynamic queue clients might act on if filled out, this is the MAC that is building a packet to be transmitted

uint64mac_cycle_num#

Monotonically increasing count for rolling past active_slot 0.

uint64slot_in_cycle_num#

Monotonically increasing count that increases on each slot change.

uint16packet_in_slot_num#

Starting at 0 for first packet in slot. If the slot is long enough to have more than 1 packet, this will count up

Response#

Response

uint8 [] miniframe_bytes#
uint8 [] dataframe_bytes#
int32num_miniframe_bytes#
int32num_dataframe_bytes#
int32num_messages#

GetNextQueuedMessage.srv#

ros_acomms_msgs/GetNextQueuedMessage#

Request#

GetNextQueuedMessage: Service to get messages from dynamic queues

int32max_size_in_bits#

Only return encoded messages smaller that this size in bits

int8minimum_priority#

Only return messages with link-layer priority equal to or greater than this value. Error checking of responses will log an error and drop the message if a message with lower priority is returned.

int16dest_address#

If using a packet codec that requires a single link-layer destination, only return messages that match this address. With most packet codecs, you can ignore this (if you aren’t sure about it, ignore it).

stringpacket_codec#

If this is a non-empty string, only return messages that are compatible with the specified packet codec. As with dest_address, you can ignore it if you are only using standard ROS packet codecs.

int32 [] exclude_message_ids#

Do not return message IDs that are in this list. This list is automatically populated with the message IDs of each message that is placed in the outgoing packet. These message IDs are “local” to the dynamic queue service handler (i.e. “your” dynamic queue handler) and can be used to avoid including more than one copy of a message in a single packet.

string [] require_tags#

If there are (QoS) tags in this list, only include messages that match the specified tags. The criteria for matching are up to the servicer, but it should do something reasonable.

string [] exclude_tags#

If there are (QoS) tags in this list, only include messages that do NOT match the specified tags. The criteria for exclusion are up to the servicer, but it should do something reasonable.

stringmac_namespace#

MAC Introspection for dynamic queues. Information about the current cycle and slot that dynamic queue clients might act on if filled out, this is the MAC that is building a packet to be transmitted

uint64mac_cycle_num#

Monotonically increasing count for rolling past active_slot 0.

uint64slot_in_cycle_num#

Monotonically increasing count that increases on each slot change.

uint16packet_in_slot_num#

Starting at 0 for first packet in slot. If the slot is long enough to have more than 1 packet, this will count up

Response#
boolhas_message#

True if this dynamic queue has a message to send that meets the criteria in the request, False otherwise. Other fields are ignored (left at defaults) if this is False.

int32message_id#

An identifier for this message. This identifier is unique only for this dynamic queue, and is used to avoid repeating the same message multiple times in a packet. The service can implement this as a counter or any other scheme.

int16dest_address#

The link-layer destination address for this message. This is only used by packet codecs that call for a fixed link-layer destination, and is ignored by most ROS message codecs.

int8priority#

Link-layer priority of this message. This will be compared with the link-layer priority of messages supplied by other static and dynamic queues to determine the ordering of outgoing messages. Higher numbers have higher priority. In the event that two responses or queues have the same priority, ordering is not guaranteed, but it typially follows the order of static and dynamic queues in the codec configuration file.

uint8 [] data#

Byte array containing encoded message data. Note that data does not need to be byte-aligned; it will be trimmed to data_size_in_bits when it is appended to the packet.

int32data_size_in_bits#

Length of the encoded message data in the data array. data_size_in_bits must be less than 8 * len(data).

string [] msg_tags#

(QoS) tags associated with this message. These may be used by the link layer, if using a MAC that understands them. Leave this empty otherwise.

PingModem.srv#

ros_acomms_msgs/PingModem#

Request#

This message is likely to change in future revisions

uint8dest#

Request

uint8rate#
uint8cdr#
float32timeout_sec#
Response#
booltimed_out#

Response

float32one_way_travel_time#
float32tat#
int8txlevel#
int8timestamp_resolution#
int8toa_mode#
int8snv_on#
uint32timestamp#
CSTcst#

PingTransponders.srv#

ros_acomms_msgs/PingTransponders#

Request#

This message is likely to change in future revisions This message is not yet complete

bool [] transponder_dest_mask#

Request

float32timeout_sec#
Response#
float32 [] travel_times#

Response

QueueTxPacket.srv#

ros_acomms_msgs/QueueTxPacket#

Request#
Queue type constants:#
int8QUEUE_IMMEDIATE = 1#
int8QUEUE_PPS = 2#
int8QUEUE_TXTRIG = 3#
Request#
int8queue#

Modem queue type

boolinsert_at_head#

True if insert packet at head

float32requested_src_level_db#

Source transmit level requested [dB]

Packetpacket#

Packet ros_acomms Packet.msg #########

Response#
Response#
boolsuccess#

True if packet successfully added to queue

int32position_in_queue#

Position in queue

float32actual_src_level_db#

Actual SRC level the modem will transmit at [dB]