GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LPA / dev > lpa_siu / rhel5-64
#include <LPA_DB/LPA_DB_grb_siu_schema.h>
#include <LPA/LPA_cmddefs.h>
#include <LPA/LPA_tlmdefs.h>
#include <LPA_siu_p.h>
#include <LPA_grb_p.h>
#include <LPA/LPA_msgs.h>
#include <LPA_inline.ih>
#include <LPA_utils.h>
#include <GRBS/GRBS_pubdefs.h>
#include <GRBS_DB/GRBS_DB_siu_schema.h>
#include <GRBU/GRBU_pubdefs.h>
#include <GRBU/GRBU_msgs.h>
#include <GRB_DB/GRB_DB_schema.h>
#include <GRB/GRB_siu.h>
#include <GRB/GRB_epu.h>
#include <GRB/GRB_latMsg.h>
#include <GRB/GRB_gbmMsg.h>
#include <GRB/GRB_pktdef.h>
#include <ITC/ITC_pubdefs.h>
#include <ITC/ITC_drvdefs.h>
#include <ITC/ITC_msgs.h>
#include <IMM/FPM_pubdefs.h>
#include <CCSDS/CCSDS_pkt.h>
#include <CCSDS/CCSDS_swap.h>
#include <CDM/CDM_pubdefs.h>
#include <CMX/CMX_lookupPub.h>
#include <PBS/WCT.h>
#include <PBS/MBA.h>
#include <PBS/FPA.h>
#include <string.h>
#include <stdio.h>
Functions | |
static unsigned int | LPA_grb_load_db (void) |
Load the LPA GRB databases. | |
static unsigned int | LPA_grb_proc_cmd (void *prm, const struct _ITC_QueueItem *qitem, void *pay, unsigned int len) |
Process cmd task messages. | |
static unsigned int | LPA_grb_proc_ctl (void *prm, const struct _ITC_QueueItem *qitem, void *pay, unsigned int len) |
Process control task messages. | |
static unsigned int | LPA_grb_proc_bulk (void *prm, const struct _ITC_QueueItem *qitem, void *pay, unsigned int len) |
Process bulk task messages. | |
static void * | LPA_allocGRB (FPM_Pool *pcb, unsigned int siz, void **rtn, void **cb0, void **cb1, void **cb2) |
Allocate memory packet without timeout (ITC courtesy entry point). | |
static void | LPA_disposeGRB (void *prm, GRBU_pktMerge *mrg) |
Dispose of a GRB merge packet. | |
static unsigned int | LPA_handle_gbm (unsigned short fcode, void *pay) |
Callback function for the GBM commands. | |
static unsigned int | LPA_send_lim_grb (LPA_MsgHdr *grb_msg) |
Send GRB message to LIM. | |
static unsigned int | LPA_handle_alg_msg (LPA_GrbAlgMsg *msg) |
Callback function for the GRB Algorithm messages. | |
static void | LPA_send_alg_msg (LPA_GrbAlgMsg *msg) |
Routine to send GRB alg messages to the GRB task control queue. | |
static void | LPA_send_trigger (GRB_latAlertMsg *alert) |
Sends burst trigger messages. | |
static void | LPA_send_update (GRB_latAlertMsg *alert) |
Sends burst update messages. | |
static void | LPA_send_confirm (unsigned int dur, double ra, double dec) |
Sends burst confirm messages. | |
static void | LPA_send_closeout (GRB_latAlertMsg *alert, int inhibit) |
Sends burst closeout messages. | |
static void | LPA_send_trigger_cb (GRB_latAlertMsg *alert) |
Sends burst trigger messages. | |
static void | LPA_send_update_cb (GRB_latAlertMsg *alert) |
Sends burst update messages. | |
static void | LPA_send_confirm_cb (unsigned int dur, double ra, double dec) |
Sends burst confirm messages. | |
static void | LPA_send_closeout_cb (GRB_latAlertMsg *alert, int inhibit) |
Sends burst closeout messages. | |
unsigned int | LPA_grb_init (void) |
Initialize the LPA GRB handler on the SIU. | |
unsigned int | LPA_grb_start (void) |
Start the LPA GRB task. | |
Variables | |
static LPA_Grb | Lpa_grb |
The static instance of the LPA GRB control structure. |
CVS $Id: LPA_grb.c,v 1.22 2011/03/28 22:24:21 russell Exp $
void * LPA_allocGRB | ( | FPM_Pool * | pcb, | |
unsigned int | siz, | |||
void ** | rtn, | |||
void ** | cb0, | |||
void ** | cb1, | |||
void ** | cb2 | |||
) | [static] |
Allocate memory packet without timeout (ITC courtesy entry point).
pcb | (in) Memory pool control block | |
siz | (in) Number of bytes to allocate | |
rtn | (out) Processing completion callback routine | |
cb0 | (out) Processing completion callback user parameter 0 | |
cb1 | (out) Processing completion callback user parameter 1 | |
cb2 | (out) Processing completion callback user parameter 2 |
NULL | Memory allocation failed | |
x | Pointer to allocated memory |
Referenced by LPA_grb_init().
void LPA_disposeGRB | ( | void * | prm, | |
GRBU_pktMerge * | mrg | |||
) | [static] |
Dispose of a GRB merge packet.
prm | (in) User context parameter | |
mrg | (in) Merge packet (unused) |
Referenced by LPA_grb_proc_bulk().
unsigned int LPA_grb_init | ( | void | ) |
Initialize the LPA GRB handler on the SIU.
LPA_SUCCESS | Success |
References _LPA_Grb::fpm_bulk, _LPA_Grb::fpm_cmd, _LPA_Grb::fpm_ctl, _LPA_Grb::itc_task, _LPA_Grb::lim_seq, LPA_allocGRB(), LPA_grb_load_db(), LPA_grb_proc_bulk(), LPA_grb_proc_cmd(), LPA_grb_proc_ctl(), _LPA_Grb::run_state, _LPA_Grb::state, and _LPA_Grb::tlm_seq.
static unsigned int LPA_grb_load_db | ( | void | ) | [static] |
Load the LPA GRB databases.
LPA_SUCCESS | Success |
References _LPA_Grb::active_grb, _LPA_Grb::grb_ctl, _LPA_Grb::grb_schemas, _LPA_Grb::grb_svc, _LPA_Grb::lat_svc, LPA_MAX_GRB_DB, LPA_send_closeout_cb(), LPA_send_confirm_cb(), LPA_send_trigger_cb(), and LPA_send_update_cb().
Referenced by LPA_grb_init().
static unsigned int LPA_grb_proc_bulk | ( | void * | prm, | |
const struct _ITC_QueueItem * | qitem, | |||
void * | pay, | |||
unsigned int | len | |||
) | [static] |
Process bulk task messages.
LPA_ERROR | Failure | |
LPA_SUCCESS | Success |
References _LPA_Grb::active_grb, _LPA_Grb::epu_state, LPA_disposeGRB(), and _LPA_Grb::sim_mode.
Referenced by LPA_grb_init().
static unsigned int LPA_grb_proc_cmd | ( | void * | prm, | |
const struct _ITC_QueueItem * | qitem, | |||
void * | pay, | |||
unsigned int | len | |||
) | [static] |
Process cmd task messages.
LPA_ERROR | Failure | |
LPA_SUCCESS | Success |
References _LPA_Grb::gbm_state, LPA_handle_gbm(), and _LPA_Grb::run_state.
Referenced by LPA_grb_init().
static unsigned int LPA_grb_proc_ctl | ( | void * | prm, | |
const struct _ITC_QueueItem * | qitem, | |||
void * | pay, | |||
unsigned int | len | |||
) | [static] |
Process control task messages.
LPA_ERROR | Failure | |
LPA_SUCCESS | Success |
References _LPA_Grb::active_grb, _LPA_GRBPRMVALID::bf, _LPA_Start_Prm::cpus, _LPA_SetGrb_Prm::epu, _LPA_Grb::epu_state, _LPA_MsgHdr::fcode, _LPA_SetGrb_Prm::gbm, _LPA_Grb::gbm_state, _LPA_SetGrb_Prm::grb, _LPA_Grb::grb_ctl, _LPA_Grb::grb_schemas, _LPA_Grb::grb_svc, _LPA_SetGrb_Prm::intv, LPA_handle_alg_msg(), LPA_MAX_GRB_DB, _LPA_Grb::mode, _LPA_SetGrb_Prm::mode, _LPA_SetGrb_Prm::rpt, _LPA_Grb::run_state, _LPA_Grb::sim_mode, and _LPA_SetGrb_Prm::valid.
Referenced by LPA_grb_init().
unsigned int LPA_grb_start | ( | void | ) |
Start the LPA GRB task.
LPA_ERROR | Failure | |
LPA_SUCCESS | Success |
References _LPA_Grb::epu_state, _LPA_Grb::gbm_state, _LPA_Grb::itc_task, and _LPA_Grb::state.
static unsigned int LPA_handle_alg_msg | ( | LPA_GrbAlgMsg * | msg | ) | [static] |
Callback function for the GRB Algorithm messages.
msg | The GRB algorithm message |
References _LPA_GrbAlgMsg::alert, _LPA_GrbAlgMsg::dec, _LPA_GrbAlgMsg::dur, _LPA_GrbAlgMsg::inhibit, LPA_GRB_CLOSEOUT_RTN, LPA_GRB_CONFIRM_RTN, LPA_GRB_TRIGGER_RTN, LPA_GRB_UPDATE_RTN, LPA_send_closeout(), LPA_send_confirm(), LPA_send_trigger(), LPA_send_update(), _LPA_GrbAlgMsg::ra, and _LPA_GrbAlgMsg::type.
Referenced by LPA_grb_proc_ctl().
unsigned int LPA_handle_gbm | ( | unsigned short | fcode, | |
void * | pay | |||
) | [static] |
Callback function for the GBM commands.
fcode | Command function code | |
pay | Command payload |
References _LPA_Grb::active_grb, _LPA_MsgHdr::fcode, _LPA_Grb::grb_ctl, _LPA_Grb::grb_svc, _LPA_FinishedMsg::hdr, _LPA_Grb::lim_seq, LPA_FINISH_FCODE, LPA_GBMCALC_FCODE, LPA_GBMCLOSE_FCODE, LPA_GBMRPT_FCODE, LPA_send_lim_grb(), and _LPA_MsgHdr::tx_id.
Referenced by LPA_grb_proc_cmd().
static void LPA_send_alg_msg | ( | LPA_GrbAlgMsg * | msg | ) | [static] |
Routine to send GRB alg messages to the GRB task control queue.
msg | The GRB algorithm message |
References _LPA_MsgHdr::fcode, _LPA_Grb::fpm_ctl, _LPA_GrbAlgMsg::hdr, LPA_free_fpm(), and _LPA_GrbAlgMsg::type.
Referenced by LPA_send_closeout_cb(), LPA_send_confirm_cb(), LPA_send_trigger_cb(), and LPA_send_update_cb().
static void LPA_send_closeout | ( | GRB_latAlertMsg * | alert, | |
int | inhibit | |||
) | [static] |
Sends burst closeout messages.
References _LPA_ALRTCLOSE_Tlm::bclass, _LPA_RECINFO::bf, _LPA_BurstClose_Prm::class, _LPA_ALRTCLOSE_Tlm::dcl_sec, _LPA_ALRTCLOSE_Tlm::dcl_usec, _LPA_ALRTCLOSE_Tlm::dec, _LPA_ALRTCLOSE_Tlm::ep_sec, _LPA_ALRTCLOSE_Tlm::ep_usec, _LPA_ALRTCLOSE_Tlm::err, _LPA_MsgHdr::fcode, _LPA_Grb::fpm_cmd, _LPA_Grb::fpm_ctl, _LPA_ALRTCLOSE_Tlm::gam_cnt, _LPA_FinishedMsg::hdr, _LPA_ALRTCLOSE_Tlm::hdr, _LPA_BurstClose_Pkt::hdr, _LPA_ALRTCLOSE_Tlm::info, _LPA_Grb::lim_seq, _LPA_ALRTCLOSE_Tlm::loc_cnt, _LPA_ALRTCLOSE_Tlm::lp_sec, _LPA_ALRTCLOSE_Tlm::lp_usec, LPA_ALRTCLOSE_TLM_APID, LPA_BURSTCLOSE_FCODE, LPA_FINISH_FCODE, LPA_free_fpm(), LPA_GRB_CLOSE_TLM_TYPE, LPA_GRB_TLM_VER, LPA_send_lim_grb(), _LPA_BurstClose_Pkt::pay, _LPA_ALRTCLOSE_Tlm::quaternion, _LPA_ALRTCLOSE_Tlm::ra, _LPA_BurstClose_Prm::sec, _LPA_ALRTCLOSE_Tlm::spatial, _LPA_ALRTCLOSE_Tlm::temporal, _LPA_Grb::tlm_seq, _LPA_ALRTCLOSE_Tlm::trg_prm, _LPA_MsgHdr::tx_id, _LPA_BCLASS::ui, and _LPA_BurstClose_Prm::usec.
Referenced by LPA_handle_alg_msg().
static void LPA_send_closeout_cb | ( | GRB_latAlertMsg * | alert, | |
int | inhibit | |||
) | [static] |
Sends burst closeout messages.
References _LPA_GrbAlgMsg::alert, _LPA_GrbAlgMsg::inhibit, LPA_GRB_CLOSEOUT_RTN, LPA_send_alg_msg(), and _LPA_GrbAlgMsg::type.
Referenced by LPA_grb_load_db().
static void LPA_send_confirm | ( | unsigned int | dur, | |
double | ra, | |||
double | dec | |||
) | [static] |
Sends burst confirm messages.
References _LPA_ConfirmedMsg::dec, _LPA_ConfirmedMsg::dur, _LPA_MsgHdr::fcode, _LPA_ConfirmedMsg::hdr, _LPA_ConfirmedMsg::id, _LPA_Grb::lim_seq, LPA_CONFIRM_FCODE, LPA_send_lim_grb(), _LPA_ConfirmedMsg::ra, _LPA_Grb::rpt_cnt, and _LPA_MsgHdr::tx_id.
Referenced by LPA_handle_alg_msg().
static void LPA_send_confirm_cb | ( | unsigned int | dur, | |
double | ra, | |||
double | dec | |||
) | [static] |
Sends burst confirm messages.
References _LPA_GrbAlgMsg::dec, _LPA_GrbAlgMsg::dur, LPA_GRB_CONFIRM_RTN, LPA_send_alg_msg(), _LPA_GrbAlgMsg::ra, and _LPA_GrbAlgMsg::type.
Referenced by LPA_grb_load_db().
static unsigned int LPA_send_lim_grb | ( | LPA_MsgHdr * | grb_msg | ) | [static] |
Send GRB message to LIM.
LPA_ERROR | Failure | |
LPA_SUCCESS | Success |
References _LPA_MsgHdr::fcode, _LPA_Grb::fpm_ctl, LPA_CONFIRM_FCODE, LPA_FINISH_FCODE, LPA_free_fpm(), and LPA_SUSPECT_FCODE.
Referenced by LPA_handle_gbm(), LPA_send_closeout(), LPA_send_confirm(), and LPA_send_trigger().
void LPA_send_trigger | ( | GRB_latAlertMsg * | alert | ) | [static] |
Sends burst trigger messages.
References _LPA_ALRTTRG_Tlm::bclass, _LPA_RECINFO::bf, _LPA_BurstTrg_Prm::class, _LPA_ALRTTRG_Tlm::dcl_sec, _LPA_ALRTTRG_Tlm::dcl_usec, _LPA_ALRTTRG_Tlm::dec, _LPA_ALRTTRG_Tlm::ep_sec, _LPA_ALRTTRG_Tlm::ep_usec, _LPA_ALRTTRG_Tlm::err, _LPA_MsgHdr::fcode, _LPA_Grb::fpm_cmd, _LPA_Grb::fpm_ctl, _LPA_ALRTTRG_Tlm::gam_cnt, _LPA_SuspectedMsg::hdr, _LPA_ALRTTRG_Tlm::hdr, _LPA_BurstTrg_Pkt::hdr, _LPA_ALRTTRG_Tlm::info, _LPA_Grb::lim_seq, _LPA_ALRTTRG_Tlm::loc_cnt, _LPA_ALRTTRG_Tlm::lp_sec, _LPA_ALRTTRG_Tlm::lp_usec, LPA_ALRTTRG_TLM_APID, LPA_BURSTTRG_FCODE, LPA_free_fpm(), LPA_GRB_TLM_VER, LPA_GRB_TRG_TLM_TYPE, LPA_send_lim_grb(), LPA_SUSPECT_FCODE, _LPA_BurstTrg_Pkt::pay, _LPA_ALRTTRG_Tlm::quaternion, _LPA_ALRTTRG_Tlm::ra, _LPA_BurstTrg_Prm::sec, _LPA_ALRTTRG_Tlm::spatial, _LPA_ALRTTRG_Tlm::temporal, _LPA_Grb::tlm_seq, _LPA_ALRTTRG_Tlm::trg_prm, _LPA_MsgHdr::tx_id, _LPA_BCLASS::ui, and _LPA_BurstTrg_Prm::usec.
Referenced by LPA_handle_alg_msg().
static void LPA_send_trigger_cb | ( | GRB_latAlertMsg * | alert | ) | [static] |
Sends burst trigger messages.
References _LPA_GrbAlgMsg::alert, LPA_GRB_TRIGGER_RTN, LPA_send_alg_msg(), and _LPA_GrbAlgMsg::type.
Referenced by LPA_grb_load_db().
void LPA_send_update | ( | GRB_latAlertMsg * | alert | ) | [static] |
Sends burst update messages.
References _LPA_ALRTUPDATE_Tlm::bclass, _LPA_RECINFO::bf, _LPA_ALRTUPDATE_Tlm::dcl_sec, _LPA_ALRTUPDATE_Tlm::dcl_usec, _LPA_ALRTUPDATE_Tlm::dec, _LPA_ALRTUPDATE_Tlm::ep_sec, _LPA_ALRTUPDATE_Tlm::ep_usec, _LPA_ALRTUPDATE_Tlm::err, _LPA_Grb::fpm_ctl, _LPA_ALRTUPDATE_Tlm::gam_cnt, _LPA_ALRTUPDATE_Tlm::hdr, _LPA_ALRTUPDATE_Tlm::info, _LPA_ALRTUPDATE_Tlm::loc_cnt, _LPA_ALRTUPDATE_Tlm::lp_sec, _LPA_ALRTUPDATE_Tlm::lp_usec, LPA_ALRTUPDATE_TLM_APID, LPA_free_fpm(), LPA_GRB_TLM_VER, LPA_GRB_UPDATE_TLM_TYPE, _LPA_ALRTUPDATE_Tlm::quaternion, _LPA_ALRTUPDATE_Tlm::ra, _LPA_Grb::sim_mode, _LPA_ALRTUPDATE_Tlm::spatial, _LPA_ALRTUPDATE_Tlm::temporal, _LPA_Grb::tlm_seq, _LPA_ALRTUPDATE_Tlm::trg_prm, and _LPA_BCLASS::ui.
Referenced by LPA_handle_alg_msg().
static void LPA_send_update_cb | ( | GRB_latAlertMsg * | alert | ) | [static] |
Sends burst update messages.
References _LPA_GrbAlgMsg::alert, LPA_GRB_UPDATE_RTN, LPA_send_alg_msg(), and _LPA_GrbAlgMsg::type.
Referenced by LPA_grb_load_db().