GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> CTS / dev > cts_scp_enet / linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

CTS_prvdefs.h File Reference

Private definitions for the CTS system. More...

#include <PBS/MTX.h>
#include <PBS/RW.ih>
#include <ITC/ITC_pubdefs.h>
#include <CTS/CTS_pubdefs.h>
#include <CTS_health.h>
#include <CTDB/CTDB_bc.h>

Classes

struct  _CRX_Service
 CRX service block. More...
struct  _CTX_Service
 CTX service block. More...
struct  _CTS_Device
 CTS ctdb (1553) device control block. More...
struct  _CTS_Control
 CTS control block. More...

Defines

#define CRX_M_STOP   (0x0001)
#define CTDB_devCmdFree   CTDB_bcPktCmdTxFree
#define CTDB_devCmdRecv   CTDB_bcPktCmdTxRecv
#define CTDB_devSizeof   CTDB_bcSizeof
#define CTDB_devStart   CTDB_bcStart
#define CTDB_devStop   CTDB_bcStop
#define CTDB_devTlmFree   CTDB_bcPktTelemFree
#define CTDB_devTlmRecv   CTDB_bcPktTelemRecv
#define CRX_L_SVC_STATES   (3)
 Number of CRX service states.
#define CTX_L_SVC_STATES   (3)
 Number of CTX service states.
#define CTS_L_DEV_STATES   (3)
 Number of CTDB (1553) device states.
#define CTS_L_CTL_STATES   (2)
 Number of CTS control states.

Typedefs

typedef enum _CRX_ServiceState CRX_ServiceState
 Typedef for enum _CRX_ServiceState.
typedef enum _CTX_ServiceState CTX_ServiceState
 Typedef for enum _CTX_ServiceState.
typedef enum _CTS_DeviceState CTS_DeviceState
 Typedef for enum _CTS_DeviceState.
typedef enum _CTS_ControlState CTS_ControlState
 Typedef for enum _CTS_ControlState.
typedef struct _CRX_Service CRX_Service
 Typedef for struct _CRX_Service.
typedef struct _CTX_Service CTX_Service
 Typedef for struct _CTX_Service.
typedef struct _CTS_Device CTS_Device
 Typedef for struct _CTS_Device.
typedef struct _CTS_Control CTS_Control
 Typedef for struct _CTS_Control.

Enumerations

enum  _CRX_ServiceState {
  CRX_SVC_UNKNOWN = -1,
  CRX_SVC_UNINITIALIZED = 0,
  CRX_SVC_INITIALIZED = 1,
  CRX_SVC_STARTED = 2
}
 Enumeration of CRX service states. More...
enum  _CTX_ServiceState {
  CTX_SVC_UNKNOWN = -1,
  CTX_SVC_UNINITIALIZED = 0,
  CTX_SVC_INITIALIZED = 1,
  CTX_SVC_STARTED = 2
}
 Enumeration of CTX service states. More...
enum  _CTS_DeviceState {
  CTS_DEV_UNKNOWN = -1,
  CTS_DEV_UNINITIALIZED = 0,
  CTS_DEV_INITIALIZED = 1,
  CTS_DEV_STARTED = 2
}
 Enumeration of CTDB (1553) device states. More...
enum  _CTS_ControlState {
  CTS_CTL_UNINITIALIZED = 0,
  CTS_CTL_INITIALIZED = 1
}
 Enumeration of CTS control states. More...

Functions

unsigned int CTX_createQ (ITC_Task *itc, unsigned int want, void *rtn, void *prm)
 Create a set of queues.
unsigned int CTX_deleteQ (ITC_Task *itc, unsigned int want)
 Delete a set of queues.
unsigned int CTS_initDevice (void *dev, void *addr)
 Initialize the ethernet simulation of the bus controller.
unsigned int CTX_sendCmd (void *prm, const ITC_QueueItem *qitem, void *pay, unsigned int len)
 Callback for service task sending telecommands to LAT.

Variables

CTS_ControlCTS_ccb
 Master control block for the CTS system.
const char * CTS_ctl_states [CTS_L_CTL_STATES]
 String constants for CTS control block states.
const char * CTS_dev_states [CTS_L_DEV_STATES]
 String constants for CTDB (1553) device.
const char * CRX_svc_states [CRX_L_SVC_STATES]
 String constants for CRX service block states.
const char * CTX_svc_states [CTX_L_SVC_STATES]
 String constants for CTX service block states.


Detailed Description

Private definitions for the CTS system.

CVS $Id: CTS_prvdefs.h,v 1.6 2011/03/28 23:55:14 apw Exp $
Author:
A.P.Waite

Enumeration Type Documentation

Enumeration of CRX service states.

Enumerator:
CRX_SVC_UNKNOWN  Unknown (guard value)
CRX_SVC_UNINITIALIZED  Uninitialized
CRX_SVC_INITIALIZED  Initialized
CRX_SVC_STARTED  Started

Enumeration of CTS control states.

Enumerator:
CTS_CTL_UNINITIALIZED  Uninitialized
CTS_CTL_INITIALIZED  Initialized

Enumeration of CTDB (1553) device states.

Enumerator:
CTS_DEV_UNKNOWN  Unknown (guard value)
CTS_DEV_UNINITIALIZED  Uninitialized
CTS_DEV_INITIALIZED  Initialized
CTS_DEV_STARTED  Started

Enumeration of CTX service states.

Enumerator:
CTX_SVC_UNKNOWN  Unknown (guard value)
CTX_SVC_UNINITIALIZED  Uninitialized
CTX_SVC_INITIALIZED  Initialized
CTX_SVC_STARTED  Started


Function Documentation

unsigned int CTS_initDevice ( void *  dev,
void *  addr 
)

Initialize the ethernet simulation of the bus controller.

Parameters:
dev (in) The driver handle
addr (in) The remote terminal address
Returns:
Return code from CO1553_bcSimInit

Referenced by CTS_createDevice().

unsigned int CTX_createQ ( ITC_Task *  itc,
unsigned int  want,
void *  rtn,
void *  prm 
)

Create a set of queues.

Parameters:
itc ITC task handle
want Mask of queues to create
rtn Raw routine to attach
prm Raw routine parameter to attach
Return values:
have Mask of queues created (may not be all of them)

Referenced by CTX_createService().

unsigned int CTX_deleteQ ( ITC_Task *  itc,
unsigned int  want 
)

Delete a set of queues.

Parameters:
itc ITC task handle
want Mask of queues to delete
Return values:
have Mask of queues deleted (may not be all of them)

Referenced by CTX_createService().

unsigned int CTX_sendCmd ( void *  prm,
const ITC_QueueItem *  qitem,
void *  pay,
unsigned int  len 
)

Callback for service task sending telecommands to LAT.

Parameters:
prm (in) User context parameter
qitem (in) Queue item
pay (in) Queue item payload pointer
len (in) Queue item payload length
CTX_sendCmd() reads one ITC queue, ITC_QID_CMD, looking for commands that spacecraft side applications want to send to the LAT. Commands are expected to be valid CCSDS packets contained in ITC protocol (though CTX_sendCmd() will check CCSDS integrity, see below).

Warning:
Byte ordering:
  • CTX_sendCmd() requires that incoming packets have their CCSDS header in machine-local byte order.
  • Because the CTDB driver expects the packet in network (big-endian) order, CTX_sendCmd() will perform any necessary byte-swapping on CCSDS headers and checksum fields only. (A service layer routine such as CTX_sendCmd() has no basis to perform CCSDS packet payload byte-swapping).
If any of the following conditions is true, the packet is dropped:
  • Packet size is less than the sum of: a telecommand primary header, a telecommand secondary header, a telecommand checksum.
  • Packet length is greater than a maximum size defined by CTDB_CONFIG_PKT_SIZE_CMD_RX.
  • The packet is an odd number of bytes.
  • The packet is not CCSDS version 1.
  • Packet secondary header bit is clear.
  • Packet command bit is clear.
  • APID is outside the allowed range for telecommands from spacecraft to LAT.
For packets passing these tests, CTX_sendCmd() will:
  • Insert the CCSDS header sequence number (maintained per APID).
  • Calculate and insert the checksum.
  • Do any necessary byte-swapping on headers and checksums.
?????
Return values:
CTX_BADQUEU CTX does not accept packets this queue
CTX_CMDAPID Telecommand APID not in valid range
CTX_CMDBITC Telecommand bit clear in telecommand packet
CTX_CMDEVEN Telecommand packet length not an even number of bytes
CTX_CMDHEAD Telecommand packet header verification failed
CTX_CMDLEN Telecommand packet length not in valid range
CTX_CMDQUEU Error queueing telecommmand packet to CTDB driver
ITC_FORWARD Service completed successfully, do not free packet

References _CTX_Service::cmd, CTS_getDevice(), and CTX_freePacket().

Referenced by CTX_createService().


Variable Documentation

Master control block for the CTS system.

Master control block for the CTS system. This is global, so care must be taken when writing elements of this block that the code is properly protected.

Referenced by checkState(), CRX_createService(), CRX_deleteService(), CRX_recvCmd(), CRX_startService(), CRX_stopService(), CTX_createService(), CTX_deleteService(), CTX_setCmdCallback(), CTX_setTlmCallback(), CTX_startService(), and CTX_stopService().


Generated on Mon Mar 28 16:58:03 2011 by  doxygen 1.5.8