GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTDB / V5-5-5 > sumt_rt_poll_sib / rad750


Interface   Data Structures   File List   Data Fields   Globals  

CO1553_rt.h File Reference

1553 Remote Terminal Driver CCSDS Packet Interface Library. More...

#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.


Detailed Description

1553 Remote Terminal Driver CCSDS Packet Interface Library.

Author:
D.L. Wood
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.


Typedef Documentation

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)

Parameters:
buf A local buffer to accept the HKP packet contents.
arg A user supplied argument.
Returns:
A CTDB MSG code.

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)

Parameters:
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)

Parameters:
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.


Enumeration Type Documentation

Priority values for telemetry packets.

Enumerator:
CO1553_RT_PRIORITY_LOW  A priority value to indicate low priority.
CO1553_RT_PRIORITY_HIGH  A priority value to indicate high priority.


Generated on Tue Sep 27 14:38:25 2011 by  doxygen 1.5.8