GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > THS / V1-0-5

Constituent: ths     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

THS_prvdefs.h File Reference

Private defs for Time Hack Services. More...

#include "PBS/LSU.h"
#include "PBS/WCT.h"
#include "THS/THS.h"

Include dependency graph for THS_prvdefs.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Functions

unsigned int THS_getLastPpsAbsTimeSec ()
 Get the absolute time value at last PPS.

unsigned int THS_cpuInit ()
 Inits the TimeHackService module.

unsigned int THS_cpuWait ()
 Start the TimeHackService module.

unsigned int THS_getLastPpsClock ()
 Get the CPU clk value at last PPS.

void THS_cpuIsr (unsigned int absTimeSec, int newTimetone, unsigned int snapshot)
 interrupt routine for CPU specfic time hack

unsigned int THS_gemInit (int siu)
 Inits the TimeHackService module.

unsigned int THS_gemWait ()
 Start the TimeHackService module.

unsigned int THS_gemGetTableInfo (int count, unsigned int *gemStrobe, LSU_factors *Kgem)
 get info from hack table

unsigned int THS_gemCalcClkDiff (unsigned int clk, unsigned int prevClk)
 calculate diff between clks assuming 25 bit clock

void THS_gemIsr (unsigned int absTimeSec, int newTimetone)
 interrupt routine for gem specfic time hack

void THS_gemSetTable (WCT_time absTimeSec, unsigned int gemStrobeIn, LSU_factors Kgem)
 Set a single entry in the gem hack table.

void THS_sendSlaveGemSetTableMsg (unsigned int absTime, unsigned int gemStrobe, LSU_factors Kgem)
 send gmHack from SIU to EPU (this runs on SIU)


Detailed Description

Private defs for Time Hack Services.

Author:
Ed Bacho -- ebacho@slac.stanford.edu
This module contains definitions shared between files in the THS module but not availible outside THS.

Function Documentation

unsigned int THS_cpuInit  ) 
 

Inits the TimeHackService module.

Returns:
status
This routine does basic init for THS cpu time hack and requires a few modules to be init (PBS,MSG, ??). Howver, actually operation will not happen till THS_cpuStart() is run.

void THS_cpuIsr unsigned int  absTimeSec,
int  newTimetone,
unsigned int  snapshot
 

interrupt routine for CPU specfic time hack

Parameters:
absTimeSec absolute time at PPS
newTimetone 1=indicates absTimeSec is real, 0=indicates absTimeSec is estimated
snapshot snapshot clk value at PPS
Returns:
nothing
CPU Hack interrupt routine called from the ThsIsr() which is connected to the 1PPS interrutp. This adjusts the WCT clock with WCT_set().

CAUTION: THis routine adjusts the WUT timer module and it is very easy to kill the OS when modifying calls to WUT.

unsigned int THS_cpuWait  ) 
 

Start the TimeHackService module.

Returns:
status
Wait for the CPU TimeHackServices to start up. This routines requires that most of the software is operational. This includes LCB driver, 1553 driver, and time tone messages from the scapecraft enabled. Since this module requires a timeTone message from the spacecraft it can take up to 2 sec to return.

THe module is called within THS.c.

The sequence is: THS_cpuInit();

start up bunch of things including Sw to call THS_timeTone() every second as result of message from spacecraft Hw to cause PPS interrupt every second

THS_cpuWait() (this routine waits till received first THS_cpuTimeTone() followed by PPS interrupt)

unsigned int THS_gemCalcClkDiff unsigned int  clk,
unsigned int  prevClk
 

calculate diff between clks assuming 25 bit clock

Parameters:
clk latest gem clk value
prevClk previous gem clock value
Returns:
difference between clk values

unsigned int THS_gemGetTableInfo int  count,
unsigned int *  gemStrobe,
LSU_factors *  Kgem
 

get info from hack table

Parameters:
count count value from gemStrobe, this is a 7 bit index into table
gemStrobe gemStrobe register value for this
Kgem ptr to extrapolation constants struct to fill
Returns:
absolute time value at PPS in sec

unsigned int THS_gemInit int  siu  ) 
 

Inits the TimeHackService module.

Parameters:
siu 1=SIU(=commander on cmd/response), 0=EPU
Returns:
status
This routine does basic init for gem specific THS and requires only a few modules to be init (PBS,MSG, ??). It is called from THS.c. Howver, it will not be fully operation till is has received timetone and PPS interrupt. THS_gemWait() can be used to wait for this state.

THS_gemIsr unsigned int  absTimeSec,
int  newTimetone
 

interrupt routine for gem specfic time hack

Parameters:
absTimeSec absolute time at PPS
newTimetone 1=indicates absTimeSec is real, 0=indicates absTimeSec is estimated
Returns:
nothing
Interrupt routine connected to 1PPS input. This should be called from ThsIsr(). This is first half of processing to put a new entry into the time table. Other half is callback form LCB routine to read gem register.

void THS_gemSetTable WCT_time  absTimeSec,
unsigned int  gemStrobeIn,
LSU_factors  Kgem
 

Set a single entry in the gem hack table.

Parameters:
absTimeSec 
gemStrobeIn 
Kgem 
Returns:
none
On SIU, this will be called within callback from the GEM read started by the PPS interrupt. The callback will also send this info on to the EPu's

On EPUs, this will be called as the results of a message from the SIU with this information.

unsigned int THS_gemWait  ) 
 

Start the TimeHackService module.

Returns:
status
Wait for THS to become full operational after THS_init(). This routines requires that most of the software is operational. This includes LCB driver, 1553 driver, and time tone messages from the scapecraft enabled. Since this module requires a timeTOne message from the spacecraft it can take up to 2 sec to return.

The sequence is: THS_gemInit();

start up bunch of things including LCB driver Sw to call THS_timeTone() every second as result of message from spacecraft Hw to cause PPS interrupt every second

THS_gemWait() (this routine waits till received first THS_gemTimeTone() followed by PPS interrupt)

unsigned int THS_getLastPpsAbsTimeSec  ) 
 

Get the absolute time value at last PPS.

Returns:
absolute time value

unsigned int THS_getLastPpsClock  ) 
 

Get the CPU clk value at last PPS.

Returns:
clock value

void THS_sendSlaveGemSetTableMsg unsigned int  absTime,
unsigned int  gemStrobe,
LSU_factors  Kgem
 

send gmHack from SIU to EPU (this runs on SIU)

Parameters:
absTime - time in sec since 1/1/2001
gemStrobe - contents of gemStrobe reg with clk on last PPS and clk counter
Kgem - multiplcation constants for calcs
Returns:
none


Generated on Thu Jun 23 21:55:25 2005 by doxygen 1.3.3