Added system in tdma super class for sending modem nmea messages in tdma active slot
Notes:
- The
manual_transmit_queue
system 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_modem
in 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_queue
default: 1 - new rostopic
tdma/manual_transmit_status
typeString 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_modem
topic inside oftdma/
namespace andtdma
will hold up to~maxlen_manual_queue
message(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
,tdma
will work through themanual_transmit_queue
until it's empty. It will treat each nmea sentence like a packet with the samepacket_length_seconds
andguard_time_seconds
. It will only transmit one message from this queue at a time so large values formaxlen_manual_queue
are 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;0
to/modem0/tdma/nmea_to_modem
-
$CCACM,1,1,1,CCCFG;pwramp.txlevel;0
is now queued to transmit next - when
tdma_status.we_are_active
and ready to send a packet, we instead publish$CCACM,1,1,1,CCCFG;pwramp.txlevel;0
to/modem0/nmea_to_modem
which in this case will make the modem transmit this CCACM.
Edited by Caileigh Fitzgerald