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


Interface   Data Structures   File List   Data Fields   Globals  

SUMT_rt_msg.c File Reference

Summit remote terminal device driver functions for parsing messages from the 1553 bus. More...

#include <vxWorks.h>
#include <wdLib.h>
#include <sysLib.h>
#include <intLib.h>
#include <CTDB/SUMT_rt.h>
#include <CTDB/CO1553_rt.h>
#include <PBS/FPA.h>
#include <PBS/FORK.h>
#include <PBS/WUT.h>
#include <PBS/TOV.h>
#include <MSG/MSG_pubdefs.h>
#include <SUMT_rt_private.h>
#include <SUMT_rt_board.h>
#include <SUMT_private.h>

Functions

static WUT_cb_status SUMT_rtMsgTimeout (SUMT_RT *rt, WUT_tmr *timer)
void SUMT_rtIntr (SUMT_RT *rt)
 The driver interrupt handler.
void SUMT_rtMsg (SUMT_RT *rt)
 Process a Summit 1553 bus data message.


Detailed Description

Summit remote terminal device driver functions for parsing messages from the 1553 bus.

Author:
D.L. Wood

Function Documentation

void SUMT_rtIntr ( SUMT_RT rt  ) 

The driver interrupt handler.

Handles Summit remote terminal device interrupts. The device interrupt status register is read, which clears the interrupt condition on the device side. The interrupt is also cleared at the board level and on the I/O bus. The contents of the interrupt status register are examined to determine which event caused the interrupt.

For telecommand receive and error reports, the response is handled directly here in the interrupt handler. Telecommand receive packets are handled by the CCSDS interface library. Error reports are translated to the appropriate MSG code and signaled.

For telemetry and telecommand transmit events, a descriptor is allocated from the interrupt pool. A status code is saved to the interrupt descriptor indicating that a device event needs servicing. The descriptor is placed on a queue to be handled by SUMT_rtTask() at a later time.

Parameters:
rt A device descriptor.

References _SUMT_RT::cmd_rx_data, _SUMT_RT::cmd_rx_desc, _SUMT_RT::cmd_rx_inter, _SUMT_RT::cmd_tx_desc, CO1553_rtCmdRxMsg(), _SUMT_RT_Diag::error_count, _SUMT_RT_Msg::event, _SUMT_RT_Msg::hdr, _SUMT_RT_Diag::intr_count, _SUMT_RT::rt_diag, _SUMT_RT::rt_lock, SUMT_DESC_CONTROL, SUMT_DMAF, SUMT_ILLCMD, SUMT_memCopyIn(), SUMT_MERR, SUMT_REG_COMMAND, SUMT_REG_IRQ_MASK, SUMT_REG_IRQ_PEND, SUMT_REG_STATUS, _SUMT_RT::sumt_regs, SUMT_RT_CTRL_BAC, SUMT_RT_EVENT_SUBADDR, SUMT_RT_SUBADDR_CMD_TX, SUMT_RT_SUBADDR_TELEM_END, SUMT_rtBoardIntrAck(), SUMT_SUBAD, SUMT_WORD_READ, SUMT_WORD_WRITE, SUMT_WRAPF, _SUMT_RT::task_fpa, _SUMT_RT::task_queue, and _SUMT_RT::telem_desc.

Referenced by SUMT_rtBoardIntrConnect(), and SUMT_rtBoardIntrDisconnect().

void SUMT_rtMsg ( SUMT_RT rt  ) 

Process a Summit 1553 bus data message.

Responds to a Summit device interrupt indicating that a 1553 bus data message has been transferred. The RT descriptor table is polled to find the sub- address, and the appropriate CCSDS interface library function is called to handle the data. The data wrap notification is handled directly here. The CCSDS interface library handles the telemetry and telecommand transmit subaddresses.

Parameters:
rt A device descriptor.

References _SUMT_RT::cmd_tx_data, _SUMT_RT::cmd_tx_desc, _SUMT_RT::cmd_tx_inter, _SUMT_RT::cmd_tx_timeout, _SUMT_RT::cmd_tx_timer, CO1553_rtCmdTxMsg(), CO1553_rtTelemMsg(), _SUMT_RT::rt_diag, _SUMT_RT::rt_lock, SUMT_DESC_CONTROL, SUMT_memCopyOut(), SUMT_RT_CTRL_BAC, SUMT_rtMsgTimeout(), SUMT_WORD_READ, SUMT_WORD_WRITE, _SUMT_RT::telem_data, _SUMT_RT::telem_desc, _SUMT_RT::telem_inter, _SUMT_RT::telem_timeout, _SUMT_RT::telem_timer, _SUMT_RT::wrap_rx_desc, and _SUMT_RT::wrap_tx_desc.

Referenced by SUMT_rtTask().

static WUT_cb_status SUMT_rtMsgTimeout ( SUMT_RT rt,
WUT_tmr *  timer 
) [static]

Handles timeouts for no new messages arriving on a subaddress. An error message is queued.

Parameters:
rt A device descriptor.
timer The WUT handle for the frame timer.
Returns:
WUT_K_STATE_CHANGE_NO.

References _SUMT_RT_Diag::error_count, _SUMT_RT::rt_diag, and _SUMT_RT::rt_lock.

Referenced by SUMT_rtMsg().


Generated on Wed Nov 21 20:04:38 2012 by  doxygen 1.5.8