GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTDB / V5-5-5 > sumt_rt_sib / rad750
#include <CTDB/CTDB_msg.h>
#include <PBS/RW.h>
#include <PBS/TOC.h>
#include <PBS/LI.h>
#include <PBS/L.h>
#include <PBS/FPA.h>
Classes | |
struct | _CO1553_RT_Diag |
struct | _CO1553_RT_Pkt_Desc |
struct | _CO1553_RT_Telem |
struct | _CO1553_RT_Cmd_Rx |
struct | _CO1553_RT_Cmd_Tx |
Typedefs | |
typedef enum _CO1553_RT_Priority | CO1553_RT_Priority |
typedef struct _CO1553_RT_Diag | CO1553_RT_Diag |
typedef void | CO1553_RT_Pkt_Free (void *pkt, void *arg) |
typedef void | CO1553_RT_Mem_Copy (void *dest, void *src, unsigned int numWords) |
typedef unsigned int | CO1553_RT_Hkp_Handler (void *buf, void *arg) |
typedef struct _CO1553_RT_Pkt_Desc | CO1553_RT_Pkt_Desc |
typedef struct _CO1553_RT_Telem | CO1553_RT_Telem |
typedef struct _CO1553_RT_Cmd_Rx | CO1553_RT_Cmd_Rx |
typedef struct _CO1553_RT_Cmd_Tx | CO1553_RT_Cmd_Tx |
Enumerations | |
enum | _CO1553_RT_Priority { CO1553_RT_PRIORITY_LOW = 0, CO1553_RT_PRIORITY_HIGH = 1 } |
Functions | |
Telemtry Interface Functions | |
unsigned int | CO1553_rtTelemSizeof (void) |
Get the size of a telemetry interface descriptor. | |
unsigned int | CO1553_rtTelemInit (CO1553_RT_Telem *telem, unsigned int msgCount, unsigned int queueSizeHigh, unsigned int queueSizeLow, unsigned int telemPktSize, unsigned int hkpPktSize, CO1553_RT_Hkp_Handler *hkpHandler, void *hkpArg) |
Initialize a telemetry interface descriptor. | |
unsigned int | CO1553_rtTelemExit (CO1553_RT_Telem *telem) |
Destroy a telemetry interface descriptor. | |
unsigned int | CO1553_rtTelemMsg (CO1553_RT_Telem *telem, unsigned int *devPtr, CO1553_RT_Mem_Copy *copyFunc, unsigned int wordSize, CO1553_RT_Diag *diag, RW_ctl *lock) |
Process a 1553 message transmit for the telemetry interface. | |
unsigned int | CO1553_rtTelemPktSend (CO1553_RT_Telem *telem, void *pkt, CO1553_RT_Pkt_Free *freeHandler, void *freeArg, CO1553_RT_Priority priority, const TOC *timeout) |
Send a CCSDS telmetry packet to the 1553 telemtry interface. | |
unsigned int | CO1553_rtTelemHkpSet (CO1553_RT_Telem *telem, CO1553_RT_Hkp_Handler *hkpHandler, void *hkpArg) |
Change the HKP application callback. | |
unsigned int | CO1553_rtTelemHkpGet (CO1553_RT_Telem *telem, CO1553_RT_Hkp_Handler **hkpHandler, void **hkpArg) |
Get current HKP application callback information. | |
Command Receive Interface Functions | |
unsigned int | CO1553_rtCmdRxSizeof (void) |
Get the size of a command receive interface descriptor. | |
unsigned int | CO1553_rtCmdRxInit (CO1553_RT_Cmd_Rx *cmd, unsigned int queueSize, unsigned int pktSize, unsigned int usrSize) |
Initialize a command receive interface descriptor. | |
unsigned int | CO1553_rtCmdRxExit (CO1553_RT_Cmd_Rx *cmd) |
Destroy a command receive interface descriptor. | |
unsigned int | CO1553_rtCmdRxMsg (CO1553_RT_Cmd_Rx *cmd, unsigned int devPtr, CO1553_RT_Mem_Copy *copyFunc, CO1553_RT_Diag *diag, RW_ctl *lock) |
Process a 1553 message receive for the command receive interface. | |
unsigned int | CO1553_rtCmdRxPktRecv (CO1553_RT_Cmd_Rx *cmd, void **pkt, const TOC *timeout) |
Receive a CCSDS command packet from the 1553 command receive interface. | |
unsigned int | CO1553_rtCmdRxPktFree (CO1553_RT_Cmd_Rx *cmd, void *pkt) |
Free a CCSDS command receive packet buffer. | |
Command Transmit Interface Functions | |
unsigned int | CO1553_rtCmdTxSizeof (void) |
Get the size of a command transmit interface descriptor. | |
unsigned int | CO1553_rtCmdTxInit (CO1553_RT_Cmd_Tx *cmd, unsigned int queueSize, unsigned int pktSize) |
Initialize a command transmit interface descriptor. | |
unsigned int | CO1553_rtCmdTxExit (CO1553_RT_Cmd_Tx *cmd) |
Destroy a command transmit interface descriptor. | |
unsigned int | CO1553_rtCmdTxMsg (CO1553_RT_Cmd_Tx *cmd, unsigned int devPtr, CO1553_RT_Mem_Copy *copyFunc, int wordSize, CO1553_RT_Diag *diag, RW_ctl *lock) |
Process a 1553 message transmit for the command transmit interface. | |
unsigned int | CO1553_rtCmdTxPktSend (CO1553_RT_Cmd_Tx *cmd, void *pkt, CO1553_RT_Pkt_Free *freeHandler, void *freeArg, const TOC *timeout) |
Send a CCSDS command packet to the the 1553 command transmit interface. |
This library contains functions for processing CCSDS packets as messages on the 1553 bus. Each subaddress can have one outstanding packet for either transmission or reception. For each subaddress, a packet queue, packet buffer, and packet state machine are maintained. The packet queues hold pending outgoing telemtry packets for transmit subaddresses and pending incomming command packets for receive subaddresses. The packet buffer holds the current packet for a subaddress while its fragments are being sent or received. The packet state machines implement the policy for fragmenting telemtry packets and re-assebling command packets. The packets are fragmented as a series of 1553 data messages.
The recognized subaddress types are shown below,
Subaddress | Direction | Description |
Command Receive (CmdRx) | Receive (BC->RT) | Telecommand input |
Command Transmit(CmdTx) | Transmit (RT->BC) | Telecommand output |
Telemetry (Telem) | Transmit (RT->BC) | Low rate telemetry
|
The functions in this library are meant to be called by a 1553 device controller driver. Each subaddress state machine needs to be notified when the frame sync message occurs and when a data transfer message for that subaddress occurs. The controller driver provides pointers to device memory that the packet state machines use to copy 1553 messages in and out of the packet buffers.
A command receive interface descriptor. The command interface functions will take a pointer to an instance of this structure as a parameter.
A command transmit interface descriptor. The command interface functions will take a pointer to an instance of this structure as a parameter.
The typedef for _CO1553_RT_Diag.
unsigned int CO1553_RT_Hkp_Handler |
The format of the real-time housekeeping remote terminal callback. The user provides this function so that the HKP data packet may be inserted into the 1553 frame. The user should copy the HKP packet, with properly formatted CCSDS header, into the buf memory.
unsigned int CO1553_RT_Hkp_Handler(void *buf, void *arg)
buf | A local buffer to accept the HKP packet contents. | |
arg | A user supplied argument. |
A device dependent message copy function. For efficiency, the packet state machines try to move packet fragments directly in and out of the 1553 device shared memory message buffers. This function is provided by the controller driver to access the device shared memory.
void CO1553_RT_Mem_Copy(void *dest, void *src, unsigned int numWords)
dest | The destination address of the copy. | |
src | The source address of the copy. | |
numWords | The number of 16-bit words to copy. |
The typedef for _CO1553_RT_Pkt_Desc.
The definition of a packet buffer memory free callback function. These callbacks are employeed when users are sending packets on a transmit queue. The packet memory is borrowed while the packet is on the queue. When the packet contents have been transmitted, the free handler is called with a user supplied argument.
void CO1553_RT_Pkt_Free(void *pkt, void *arg)
pkt | A pointer to the packet buffer to release. | |
arg | The user defined argument. |
The typedef for _CO1553_RT_Priority.
A telemtry interface descriptor. The telemtery interface functions will take a pointer to an instance of this structure as a parameter.
enum _CO1553_RT_Priority |
unsigned int CO1553_rtCmdRxExit | ( | CO1553_RT_Cmd_Rx * | cmd | ) |
Destroy a command receive interface descriptor.
Release resources from a 1553 CCSDS command receive interface.
cmd | A command interface descriptor. |
References MEM_FREE, _CO1553_RT_Cmd_Rx::pkt_fpa, _CO1553_RT_Cmd_Rx::pkt_pool, and _CO1553_RT_Cmd_Rx::pkt_queue.
Referenced by SUMT_rtTerminate().
unsigned int CO1553_rtCmdRxInit | ( | CO1553_RT_Cmd_Rx * | cmd, | |
unsigned int | queueSize, | |||
unsigned int | pktSize, | |||
unsigned int | usrSize | |||
) |
Initialize a command receive interface descriptor.
Initializes a 1553 CCSDS telecommand command packet receive interface for a remote terminal. The telecommand packet input queue is created.
cmd | A command receive interface descriptor. | |
queueSize | The maximum number of command packets to allow on the CCSDS input queue. | |
pktSize | The maximum size in bytes, including header, of a telecommand packet on this subaddress interface. | |
usrSize | The size in bytes of user space to reserve at the head of the CmdRx telecommand packet buffers. |
References CO1553_MSG_SIZE, _CO1553_RT_Cmd_Rx::hdr_size, MEM_ALLOC, _CO1553_RT_Cmd_Rx::pkt_fpa, _CO1553_RT_Cmd_Rx::pkt_pool, _CO1553_RT_Cmd_Rx::pkt_queue, _CO1553_RT_Cmd_Rx::pkt_size, and _CO1553_RT_Cmd_Rx::usr_size.
Referenced by SUMT_rtInit().
unsigned int CO1553_rtCmdRxMsg | ( | CO1553_RT_Cmd_Rx * | cmd, | |
unsigned int | devPtr, | |||
CO1553_RT_Mem_Copy * | copyFunc, | |||
CO1553_RT_Diag * | diag, | |||
RW_ctl * | lock | |||
) |
Process a 1553 message receive for the command receive interface.
Announces to the 1553 command receive packet interface the reception of a 1553 command input message. This function is called by a 1553 controller driver when the next 1553 command message in a frame has been received by the 1553 device.
The next 1553 command message is copied from the device memory and is delivered to the command input queue as a CCSDS telecommand packet.
cmd | A command receive interface descriptor. | |
devPtr | A pointer to the 1553 device memory where the incomming 1553 message should be copied from. | |
copyFunc | A device specific memory copy function for accessing 1553 device memory. | |
diag | A pointer to a RT diagnostics structure for update. | |
lock | A RW lock to protect the diag structure updates. |
References _CO1553_RT_Diag::cmd_rx_byte_count, _CO1553_RT_Diag::cmd_rx_pkt_count, CO1553_MSG_WORDS, _CO1553_RT_Diag::error_count, _CO1553_RT_Cmd_Rx::hdr_size, _CO1553_RT_Cmd_Rx::pkt_fpa, _CO1553_RT_Cmd_Rx::pkt_queue, _CO1553_RT_Cmd_Rx::pkt_size, and _CO1553_RT_Cmd_Rx::usr_size.
Referenced by SUMT_rtIntr().
unsigned int CO1553_rtCmdRxPktFree | ( | CO1553_RT_Cmd_Rx * | cmd, | |
void * | pkt | |||
) |
Free a CCSDS command receive packet buffer.
Returns a borrowed CCSDS command packet buffer to the remote terminal command receive interface.
cmd | A command receive interface descriptor. | |
pkt | A pointer to the packet buffer to free. |
References _CO1553_RT_Cmd_Rx::pkt_fpa, and _CO1553_RT_Cmd_Rx::usr_size.
Referenced by SUMT_rtPktCmdRxFree().
unsigned int CO1553_rtCmdRxPktRecv | ( | CO1553_RT_Cmd_Rx * | cmd, | |
void ** | pkt, | |||
const TOC * | timeout | |||
) |
Receive a CCSDS command packet from the 1553 command receive interface.
Attempts to get the next available command packet from the remote terminal command packet input queue. The command packet receive interface places new packets on this queue as 1553 command input messages arrive on the bus.
The packet buffer memory is loaned to the user. Call CO1553_rtCmdRxPktFree() to return the packet buffer to the remote terminal command interface.
cmd | A command receive interface descriptor. | |
pkt | Upon success, a pointer to the packet buffer is returned here. | |
timeout | The time to wait for a packet on the queue. |
References _CO1553_RT_Cmd_Rx::pkt_queue, and _CO1553_RT_Cmd_Rx::usr_size.
Referenced by SUMT_rtPktCmdRxRecv().
unsigned int CO1553_rtCmdRxSizeof | ( | void | ) |
Get the size of a command receive interface descriptor.
unsigned int CO1553_rtCmdTxExit | ( | CO1553_RT_Cmd_Tx * | cmd | ) |
Destroy a command transmit interface descriptor.
Release resources from a 1553 CCSDS command transmit interface.
cmd | A command interface descriptor. |
References MEM_FREE, _CO1553_RT_Cmd_Tx::msg_buf, _CO1553_RT_Cmd_Tx::pkt_fpa, _CO1553_RT_Cmd_Tx::pkt_pool, and _CO1553_RT_Cmd_Tx::pkt_queue.
Referenced by SUMT_rtTerminate().
unsigned int CO1553_rtCmdTxInit | ( | CO1553_RT_Cmd_Tx * | cmd, | |
unsigned int | queueSize, | |||
unsigned int | pktSize | |||
) |
Initialize a command transmit interface descriptor.
Initializes a 1553 CCSDS telecommand command packet transmit interface for a remote terminal. The telecommand packet output queue is created.
cmd | A command transmit interface descriptor. | |
queueSize | The maximum number of command packets to allow on the CCSDS output queue. | |
pktSize | The maximum size in bytes, including header, of a telecommand packet on this subaddress interface. |
References CO1553_MSG_SIZE, _CO1553_RT_Cmd_Tx::hdr_size, MEM_ALLOC, _CO1553_RT_Cmd_Tx::msg_buf, _CO1553_RT_Cmd_Tx::pkt_fpa, _CO1553_RT_Cmd_Tx::pkt_pool, _CO1553_RT_Cmd_Tx::pkt_prev, _CO1553_RT_Cmd_Tx::pkt_queue, _CO1553_RT_Cmd_Tx::pkt_size, and _CO1553_RT_Cmd_Tx::xfer_counter.
Referenced by SUMT_rtInit().
unsigned int CO1553_rtCmdTxMsg | ( | CO1553_RT_Cmd_Tx * | cmd, | |
unsigned int | devPtr, | |||
CO1553_RT_Mem_Copy * | copyFunc, | |||
int | wordSize, | |||
CO1553_RT_Diag * | diag, | |||
RW_ctl * | lock | |||
) |
Process a 1553 message transmit for the command transmit interface.
Announces to the 1553 command transmit packet interface the transmission of a 1553 command output message. This function is called by a 1553 controller driver when the last 1553 telecommand output message in a frame has been sent by the 1553 device.
The CCSDS telecommand output packet queue is checked for any new pending output packets. If a new packet is ready for transmission, the packet data is copied to the device memory and the command transmit transfer counter is updated. The packet message will be sent on the next bus schedule telecommand transmit slot.
cmd | A command transmit interface descriptor. | |
devPtr | A pointer to the 1553 device memory where the outgoing 1553 message should be copied to. | |
copyFunc | A device specific memory copy function for accessing 1553 device memory. | |
wordSize | The size in terms of 16-bit words between successive device locations. | |
diag | A pointer to a RT diagnostics structure for update. | |
lock | A RW lock to protect the diag structure updates. |
References _CO1553_RT_Diag::cmd_tx_byte_count, _CO1553_RT_Diag::cmd_tx_pkt_count, CO1553_MSG_SIZE, CO1553_MSG_WORDS, _CO1553_RT_Pkt_Desc::free_arg, _CO1553_RT_Pkt_Desc::free_handler, _CO1553_RT_Cmd_Tx::msg_buf, _CO1553_RT_Cmd_Tx::pkt_fpa, _CO1553_RT_Cmd_Tx::pkt_prev, _CO1553_RT_Pkt_Desc::pkt_ptr, _CO1553_RT_Cmd_Tx::pkt_queue, _CO1553_RT_Pkt_Desc::pkt_size, and _CO1553_RT_Cmd_Tx::xfer_counter.
Referenced by SUMT_rtMsg().
unsigned int CO1553_rtCmdTxPktSend | ( | CO1553_RT_Cmd_Tx * | cmd, | |
void * | pkt, | |||
CO1553_RT_Pkt_Free * | freeHandler, | |||
void * | freeArg, | |||
const TOC * | timeout | |||
) |
Send a CCSDS command packet to the the 1553 command transmit interface.
Places a CCSDS command transmit packet on the remote terminal command output queue. The command transmit subaddress interface will remove packets from this queue and send them as fast as 1553 command transmit message bandwidth allows.
The packet buffer memory remains allocated as long as the packet is on the output queue. After the packet has been transmitted, a user supplied callback freeHandler will be called to release the packet memory.
cmd | An command transmit interface descriptor. | |
pkt | A pointer to the CCSDS packet header of the packet to send. | |
freeHandler | The packet buffer memory free callback. | |
freeArg | The argument passed to the freeHandler callback. | |
timeout | The time to wait for space on the queue. |
References _CO1553_RT_Pkt_Desc::free_arg, _CO1553_RT_Pkt_Desc::free_handler, _CO1553_RT_Cmd_Tx::hdr_size, _CO1553_RT_Pkt_Desc::node, _CO1553_RT_Cmd_Tx::pkt_fpa, _CO1553_RT_Pkt_Desc::pkt_ptr, _CO1553_RT_Cmd_Tx::pkt_queue, _CO1553_RT_Pkt_Desc::pkt_size, and _CO1553_RT_Cmd_Tx::pkt_size.
Referenced by SUMT_rtPktCmdTxSend().
unsigned int CO1553_rtCmdTxSizeof | ( | void | ) |
Get the size of a command transmit interface descriptor.
unsigned int CO1553_rtTelemExit | ( | CO1553_RT_Telem * | telem | ) |
Destroy a telemetry interface descriptor.
Release resources from a 1553 CCSDS telemetry interface.
telem | A telemetry interface descriptor. |
References _CO1553_RT_Telem::blk_buf, _CO1553_RT_Telem::hkp_lock, MEM_FREE, _CO1553_RT_Telem::pkt_fpa_high, _CO1553_RT_Telem::pkt_fpa_low, _CO1553_RT_Telem::pkt_list, _CO1553_RT_Telem::pkt_pool_high, _CO1553_RT_Telem::pkt_pool_low, _CO1553_RT_Telem::pkt_queue_high, and _CO1553_RT_Telem::pkt_queue_low.
Referenced by SUMT_rtTerminate().
unsigned int CO1553_rtTelemHkpGet | ( | CO1553_RT_Telem * | telem, | |
CO1553_RT_Hkp_Handler ** | hkpHandler, | |||
void ** | hkpArg | |||
) |
Get current HKP application callback information.
Retrieves the HKP application callback function and arguments current values.
telem | A telemetry interface descriptor. | |
hkpHandler | Stores the pointer to the application HKP function. | |
hkpArg | Stores user argument for hkpHandler. |
References _CO1553_RT_Telem::hkp_arg, _CO1553_RT_Telem::hkp_handler, and _CO1553_RT_Telem::hkp_lock.
Referenced by SUMT_rtHkpGet().
unsigned int CO1553_rtTelemHkpSet | ( | CO1553_RT_Telem * | telem, | |
CO1553_RT_Hkp_Handler * | hkpHandler, | |||
void * | hkpArg | |||
) |
Change the HKP application callback.
Changes the HKP application callback function and arguments to new values. The old values, set either in CO1553_rtTelemInit() or in the last call to this function, are replaced.
telem | A telemetry interface descriptor. | |
hkpHandler | The synchronous callback to handle insertion of HKP telemety packets into the telemetry blocks. | |
hkpArg | A user argument for hkpHandler. |
References _CO1553_RT_Telem::hkp_arg, _CO1553_RT_Telem::hkp_handler, and _CO1553_RT_Telem::hkp_lock.
Referenced by SUMT_rtHkpSet().
unsigned int CO1553_rtTelemInit | ( | CO1553_RT_Telem * | telem, | |
unsigned int | msgCount, | |||
unsigned int | queueSizeHigh, | |||
unsigned int | queueSizeLow, | |||
unsigned int | telemPktSize, | |||
unsigned int | hkpPktSize, | |||
CO1553_RT_Hkp_Handler * | hkpHandler, | |||
void * | hkpArg | |||
) |
Initialize a telemetry interface descriptor.
Initializes a 1553 CCSDS telemetry packet interface. The telemetry packet output queue is created.
telem | A telemetry interface descriptor. | |
msgCount | The number of 1553 telemetry messages expected each frame. | |
queueSizeHigh | The maximum number of telemetry packets to allow on the CCSDS high priority output queue. | |
queueSizeLow | The maximum number of telemetry packets to allow on the CCSDS low priority output queue. | |
telemPktSize | The maximum size in bytes, including header, of a telemetry packet on this subaddress interface (not HKP packet). | |
hkpPktSize | The maximum size in bytes, including header, of a HKP telemetry packet on this subaddress interface. | |
hkpHandler | The synchronous callback to handle insertion of HKP telemety packets into the telemetry blocks. | |
hkpArg | A user argument for hkpHandler. |
References _CO1553_RT_Telem::blk_buf, CO1553_MSG_SIZE, _CO1553_RT_Telem::hdr_size, _CO1553_RT_Telem::hkp_arg, _CO1553_RT_Telem::hkp_handler, _CO1553_RT_Telem::hkp_lock, _CO1553_RT_Telem::hkp_pkt_size, MEM_ALLOC, _CO1553_RT_Telem::msg_count, _CO1553_RT_Telem::pkt_fpa_high, _CO1553_RT_Telem::pkt_fpa_low, _CO1553_RT_Telem::pkt_list, _CO1553_RT_Telem::pkt_pool_high, _CO1553_RT_Telem::pkt_pool_low, _CO1553_RT_Telem::pkt_prev, _CO1553_RT_Telem::pkt_queue_high, _CO1553_RT_Telem::pkt_queue_low, _CO1553_RT_Telem::telem_pkt_size, and _CO1553_RT_Telem::xfer_counter.
Referenced by SUMT_rtInit().
unsigned int CO1553_rtTelemMsg | ( | CO1553_RT_Telem * | telem, | |
unsigned int * | devPtr, | |||
CO1553_RT_Mem_Copy * | copyFunc, | |||
unsigned int | wordSize, | |||
CO1553_RT_Diag * | diag, | |||
RW_ctl * | lock | |||
) |
Process a 1553 message transmit for the telemetry interface.
Announces to the 1553 telemetry packet interface the transmission of the last 1553 telemety message of a telemetry transfer block (GT_PDU). This function is called by a 1553 controller driver when the previous 1553 telemetry messages in a frame have been sent by the 1553 device.
The CCSDS telemetry packet output queue is checked for any pending data. The function tries to fill a complete telemetry block with packets from the queue for transmission on the next frame.
telem | A telemetry interface descriptor. | |
devPtr | An array of pointers to the 1553 device memory where the 1553 telemetry messages should be copied to. | |
copyFunc | A device specific memory copy function for accessing 1553 device memory. | |
wordSize | The size in terms of 16-bit words between successive device locations. | |
diag | A pointer to a RT diagnostics structure for update. | |
lock | A RW lock to protect the diag structure updates. |
References _CO1553_RT_Telem::blk_buf, CO1553_MSG_SIZE, CO1553_MSG_WORDS, CO1553_rtTelemHkpProc(), _CO1553_RT_Pkt_Desc::desc_fpa, _CO1553_RT_Pkt_Desc::free_arg, _CO1553_RT_Pkt_Desc::free_handler, _CO1553_RT_Diag::hkp_byte_count, _CO1553_RT_Diag::hkp_pkt_count, _CO1553_RT_Telem::msg_count, _CO1553_RT_Pkt_Desc::node, _CO1553_RT_Telem::pkt_list, _CO1553_RT_Telem::pkt_prev, _CO1553_RT_Pkt_Desc::pkt_ptr, _CO1553_RT_Telem::pkt_queue_high, _CO1553_RT_Telem::pkt_queue_low, _CO1553_RT_Pkt_Desc::pkt_size, _CO1553_RT_Diag::telem_byte_count, _CO1553_RT_Diag::telem_pkt_count, and _CO1553_RT_Telem::xfer_counter.
Referenced by SUMT_rtMsg().
unsigned int CO1553_rtTelemPktSend | ( | CO1553_RT_Telem * | telem, | |
void * | pkt, | |||
CO1553_RT_Pkt_Free * | freeHandler, | |||
void * | freeArg, | |||
CO1553_RT_Priority | priority, | |||
const TOC * | timeout | |||
) |
Send a CCSDS telmetry packet to the 1553 telemtry interface.
Places a CCSDS telemetry packet on the remote terminal telemetry output queue. The telemetry packet state machine will remove packets from this queue and transmit them as fast as 1553 telemetry message bandwidth allows.
The packet buffer memory remains allocated as long as the packet is on the output queue. After the packet has been transmitted, a user supplied callback freeHandler will be called to release the packet memory.
telem | A telemetry interface descriptor. | |
pkt | A pointer to the CCSDS packet header of the packet to send. | |
freeHandler | The packet buffer memory free callback. | |
freeArg | The argument passed to the freeHandler callback. | |
priority | The packet priority level, CO1553_RT_PRIORITY_HIGH or CO1553_RT_PRIORITY_LOW. | |
timeout | The time to wait for space on the queue. |
References CO1553_RT_PRIORITY_HIGH, CO1553_RT_PRIORITY_LOW, _CO1553_RT_Pkt_Desc::desc_fpa, _CO1553_RT_Pkt_Desc::free_arg, _CO1553_RT_Pkt_Desc::free_handler, _CO1553_RT_Telem::hdr_size, _CO1553_RT_Pkt_Desc::node, _CO1553_RT_Telem::pkt_fpa_high, _CO1553_RT_Telem::pkt_fpa_low, _CO1553_RT_Pkt_Desc::pkt_ptr, _CO1553_RT_Telem::pkt_queue_high, _CO1553_RT_Telem::pkt_queue_low, _CO1553_RT_Pkt_Desc::pkt_size, and _CO1553_RT_Telem::telem_pkt_size.
Referenced by SUMT_rtPktTelemSend().
unsigned int CO1553_rtTelemSizeof | ( | void | ) |
Get the size of a telemetry interface descriptor.