00001 #ifndef SCT_FXN_PROTOS_H
00002 #define SCT_FXN_PROTOS_H
00003
00004 #include "processor.h"
00005 #include "ABCDchip.h"
00006 #include "sctStructure.h"
00007
00008 #if defined(I_AM_MASTER_DSP)
00009
00010 INT32 sendConfigSet(UINT8 sp, UINT8 modIn[2], UINT8 chip, UINT8 loop,
00011 UINT8 setLinks, UINT8 cfgSet, UINT8 groupId,
00012 UINT32 dataType, UINT8 activeOnly, UINT8 enableDataTaking);
00013
00014 INT32 addCommand(CmdBuff *cb, UINT8 cmd, UINT8 chipAddress,
00015 UINT32 *data, UINT32 dataLen, UINT8 fibre);
00016 INT32 addCmdDelay(CmdBuff *cb, UINT32 numDelayBits);
00017 INT32 addFastCmd(CmdBuff *cb, FAST_CMD_ID fastCmd);
00018 INT32 addSlowCmd(CmdBuff *cb, SLOW_CMD_ID slowCmd, UINT8 chipAddress);
00019 INT32 addDataCmd(CmdBuff *cb, DATA_CMD_ID dataCmd, UINT8 chipAddress,
00020 UINT16 registerValue);
00021 INT32 addMaskCmd(CmdBuff *cb, UINT8 chipAddress, UINT32 mask[4]);
00022
00023 void maskAllChannels (UINT32 mask[4]);
00024 void unmaskAllChannels(UINT32 mask[4]);
00025 void maskChannel (UINT32 mask[4], UINT32 channel);
00026 void unmaskChannel (UINT32 mask[4], UINT32 channel);
00027 UINT32 getChannelMask (UINT32 mask[4], UINT32 channel);
00028
00029 UINT16 biasDACRegValue(UINT8 preamp, UINT8 shaper);
00030 UINT16 trimDACRegValue(UINT8 channel, UINT8 trim);
00031 UINT16 thresholdRegValue(UINT8 vthr, UINT8 vcal);
00032
00033 INT32 addConfigChipMask (CmdBuff *cb, ABCDChip *chip);
00034 INT32 addConfigChipBasic(CmdBuff *cb, ABCDChip *chip);
00035 INT32 addConfigChipTrim (CmdBuff *cb, ABCDChip *chip);
00036 INT32 addConfigChip (CmdBuff *cb, ABCDChip *chip);
00037
00038 INT32 addConfigModuleMask (CmdBuff *cb, ABCDModule *module);
00039 INT32 addConfigModuleBasic(CmdBuff *cb, ABCDModule *module);
00040 INT32 addConfigModuleTrim (CmdBuff *cb, ABCDModule *module);
00041 INT32 addConfigModule (CmdBuff *cb, ABCDModule *module);
00042
00043 INT32 setChipRole(ABCDModule *module, UINT32 theChip, ABCD_ROLES role);
00044 void setToken(ABCDModule* module, unsigned token, int link0, int link1);
00045
00046 INT32 setChipVariable(ABCDModule *module, UINT32 theChip, UINT32 typ, FLOAT32 val);
00047 INT32 getChipVariable(ABCDModule *module, UINT32 theChip, UINT32 typ, FLOAT32 *val);
00048
00049
00050 INT32 histoCtrl_convert(TaskInput *tsi_v107, TaskInput *tsi);
00051
00052 #elif defined(I_AM_SLAVE_DSP)
00053
00054 INT32 initHistos(void);
00055 void setHistoModuleBase(UINT8 init, UINT8 bin);
00056 UINT8 getHistoBin(void);
00057 void setHistoBin(UINT8);
00058
00059 INT32 histoSetup(UINT32 *base, UINT32 nBins, UINT32 binSize, UINT32 routineType,
00060 UINT32 dataType[2], UINT32 opt[4], UINT32 validModules[2],
00061 UINT32 moduleRangeMap[2][2], MDAT32 *xPtr[2]);
00062
00063
00064 void histoEvent_c(struct EventData *);
00065 void histoEvent_c_chipocc(struct EventData *);
00066 void histoEvent_c_full(struct EventData *);
00067 void histoError_c(struct EventData *);
00068
00069
00070 void histoEvent_asm(struct EventData *);
00071 void histoEvent_asm_chipocc(struct EventData *);
00072
00073 #endif
00074
00075 #endif