Added system in tdma super class for sending modem nmea messages in tdma active slot
Notes:
- The
manual_transmit_queuesystem is for sending nmea messages to the modem that make the modem transmit. There is only one topic logically compatible right now and it's thenmea_to_modemin the modem namespace tdma is currently servicing. - in the future there may be other topics or ways of using this manual transmit system. For now, it's just a simple interface for nmea commands that you want to send in band with tdma
New Features:
- Added system in tdma super class (
manual_transmit_queue) for sending modem nmea messages manually to be queued by tdma and sent in active slot (in place of next packet) - new rosparam
~maxlen_manual_queuedefault: 1 - new rostopic
tdma/manual_transmit_statustypeString is published to when a message is queued and when message is transmitted (showing contents of queue (useful for when maxlen is >1 or to make sure a later published message is the only one in the queue)diagnostic_msgs/DiagnosticStatus. It shows the contents of all manual transmit queues on insert and on transmit - User publishes to
nmea_to_modemtopic inside oftdma/namespace andtdmawill hold up to~maxlen_manual_queuemessage(s) and publish them (one at a time) instead of the next outgoing packet during ouractive_slot. - If using a value > 1 for
maxlen_manual_queue,tdmawill work through themanual_transmit_queueuntil it's empty. It will treat each nmea sentence like a packet with the samepacket_length_secondsandguard_time_seconds. It will only transmit one message from this queue at a time so large values formaxlen_manual_queueare not recommended as tdma needs to work through the whole queue before getting back to packets.
Example:
- user publishes to
$CCACM,1,1,1,CCCFG;pwramp.txlevel;0to/modem0/tdma/nmea_to_modem -
$CCACM,1,1,1,CCCFG;pwramp.txlevel;0is now queued to transmit next - when
tdma_status.we_are_activeand ready to send a packet, we instead publish$CCACM,1,1,1,CCCFG;pwramp.txlevel;0to/modem0/nmea_to_modemwhich in this case will make the modem transmit this CCACM.
Edited by Caileigh Fitzgerald