GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > THS / V1-5-2
Constituent: ths4ddt     Tag: rad750
#include <stdio.h>
#include <time.h>
#include "PBS/INT.ih"
#include "PBS/PTS.h"
#include "PBS/WCT.h"
#include "PBS/WUT.h"
#include "MSG/MSG_pubdefs.h"
#include "THS/THS.h"
#include "THS/THS_msgs.h"
Include dependency graph for THS_ddt.c:
Functions | |
void | THS_alignPPS () |
Dummy routine. | |
unsigned int | THS_cpuSetWarning (unsigned int expectedClkHz, unsigned int expectedDeltaClkHz) |
Dummy routine. | |
WCT_time | THS_gemAbsTimeEvent (int gemStrobeIn, int gemClk) |
Dummy routine. | |
unsigned int | THS_gemSetWarning (unsigned int expectedClkHz, unsigned int expectedDeltaClkHz) |
Dummy routine. | |
unsigned int | THS_init (int mask) |
Dummy routine. | |
unsigned int | THS_prevTimetoneFromEvent (int gemStrobeIn, int *absTimeSecs, int *flags, int *absTimeSecsPrev, int *flagsPrev, int *gemStrobeInPrev) |
Dummy routine. | |
unsigned int | THS_prevTimtoneFromEvent (int gemStrobeIn, int *absTimeSecs, int *flags, int *absTimeSecsPrev, int *flagsPrev, int *gemStrobeInPrev) |
Dummy routine. | |
void | THS_setGemUpdateMsgs (int maxMsgs) |
Dummy routine. | |
void | THS_setPpsWarnEvery (unsigned int warnPpsEvery) |
Dummy routine. | |
void | THS_setSlaveSend (THS_SendSlaveRtn rtn, void *arg, int lsmID) |
Dummy routine. | |
void | THS_setTimetoneWarnEvery (unsigned int warnTimetoneEvery) |
Dummy routine. | |
unsigned int | THS_slaveProcessMsg (int func, void *payload, unsigned int len) |
Dummy routine. | |
void | THS_stats () |
Dummy routine. | |
unsigned int | THS_timetone (unsigned int absTimeSec, unsigned short saFlags) |
One-time set the wall clock time. | |
unsigned int | THS_timetoneFromEvent (int gemStrobeIn, int *absTimeSec, int *flags) |
One-time set the wall clock time. | |
unsigned int | THS_wait () |
Dummy routine. | |
Variables | |
unsigned int | THS_ths4ddt |
Unique identifier for the ths4ddt constituent. |
CVS $Id: THS_ddt.c,v 1.1 2006/05/12 22:42:10 apw Exp $
The full THS service is predicated in the idea that a set of RAD750 PIDs configured as a timer will run in lock step the the timebase register in the RAD750 CPU. This is not a valid assumption when DDT starts changing clock frequencies.
THS services are sufficiently sophisticated that modifying them to survive CPU clock frequency changes is non-trivial. As DDT is a very "niche" operation, the more pragmatic approach adopted here is to provide a cut-down THS service that is compatible with DDT. The price is that while running with the cut-down service, wall-clock time will not be set very accurately (about 1/10 of a second), and will therafter wander with the drifts in the CPU clock oscillator. For the duration of a DDT SUROM burning operation (and assuming that the CPU was previously running at full rate), wall clock time as reported by the CPU will run a factor of two slower than "real time".
|
Dummy routine. For compatibility with the THS_alignPPS() entry point in THS proper. |
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine.
|
|
Dummy routine. For compatibility with the THS_stats() entry point in THS proper. |
|
One-time set the wall clock time.
|
|
One-time set the wall clock time.
|
|
Dummy routine. For compatibility with the THS_wait() entry point in THS proper. |
|
Unique identifier for the ths4ddt constituent. This variable is made available for lookup through the .cidc file for the ths4ddt constituent -only-. It is designed as a safety check. If DDT attempts to look up this symbol and fails, DDT knows that it does not have the right version of THS loaded. |