From 3f4a0c4e287ba11092a1f4abab774bcb14d3d9e4 Mon Sep 17 00:00:00 2001 From: Melissa Aguiar Date: Thu, 9 Dec 2021 09:10:05 -0300 Subject: [PATCH 1/5] FOFBApp/src: update fofb_processing functions prefix --- FOFBApp/src/drvFOFB.cpp | 134 ++++++++++++++++++++-------------------- FOFBApp/src/drvFOFB.h | 18 +++--- 2 files changed, 76 insertions(+), 76 deletions(-) diff --git a/FOFBApp/src/drvFOFB.cpp b/FOFBApp/src/drvFOFB.cpp index f480681..cb8ef5e 100644 --- a/FOFBApp/src/drvFOFB.cpp +++ b/FOFBApp/src/drvFOFB.cpp @@ -60,7 +60,7 @@ static const functionsAny_t fofb_processingSetGetRamWriteFunc = {functi halcs_get_fofb_processing_ram_write}}; static const functionsAny_t fofb_processingSetGetRamAddrFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_addr, halcs_get_fofb_processing_ram_addr}}; -static const functionsAny_t fofb_processingSetGetRamDataInFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_data_in, +static const functionsAny_t fofb_processingSetGetRamDataInFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_data_in, halcs_get_fofb_processing_ram_data_in}}; static const functionsAny_t fofb_processingSetGetRamDataOutFunc = {functionsUInt32_t{"FOFB_PROCESSING", NULL, halcs_get_fofb_processing_ram_data_out}}; @@ -217,53 +217,53 @@ drvFOFB::drvFOFB(const char *portName, const char *endpoint, int fofbNumber, * * * Otherwise, checking for FIRST_PARAM/LAST_PARAM won't work */ /* Create general parameters */ - createParam(P_RamWriteString, asynParamUInt32Digital, &P_RamWrite); - createParam(P_RamAddrString, asynParamUInt32Digital, &P_RamAddr); - createParam(P_RamDataInString, asynParamUInt32Digital, &P_RamDataIn); - createParam(P_RamDataOutString, asynParamUInt32Digital, &P_RamDataOut); - createParam(P_RtmLampStatusString, asynParamUInt32Digital, &P_RtmLampStatus); - createParam(P_RtmLampDacDataFromWbString, asynParamUInt32Digital, &P_RtmLampDacDataFromWb); - createParam(P_RtmLampAmpIFlagLString, asynParamUInt32Digital, &P_RtmLampAmpIFlagL); - createParam(P_RtmLampAmpTFlagLString, asynParamUInt32Digital, &P_RtmLampAmpTFlagL); - createParam(P_RtmLampAmpIFlagRString, asynParamUInt32Digital, &P_RtmLampAmpIFlagR); - createParam(P_RtmLampAmpTFlagRString, asynParamUInt32Digital, &P_RtmLampAmpTFlagR); - createParam(P_RtmLampAmpEnString, asynParamUInt32Digital, &P_RtmLampAmpEn); - createParam(P_RtmLampPIOLTriangEnString, asynParamUInt32Digital, &P_RtmLampPIOLTriangEn); - createParam(P_RtmLampPIOLSquareEnString, asynParamUInt32Digital, &P_RtmLampPIOLSquareEn); - createParam(P_RtmLampPISPSquareEnString, asynParamUInt32Digital, &P_RtmLampPISPSquareEn); - createParam(P_RtmLampPIEnString, asynParamUInt32Digital, &P_RtmLampPIEn); - createParam(P_RtmLampDacDataString, asynParamUInt32Digital, &P_RtmLampDacData); - createParam(P_RtmLampDacWrString, asynParamUInt32Digital, &P_RtmLampDacWr); - createParam(P_RtmLampPIKPString, asynParamUInt32Digital, &P_RtmLampPIKP); - createParam(P_RtmLampPITIString, asynParamUInt32Digital, &P_RtmLampPITI); - createParam(P_RtmLampPISPString, asynParamUInt32Digital, &P_RtmLampPISP); - createParam(P_RtmLampPIOLDacCntMaxString, asynParamUInt32Digital, &P_RtmLampPIOLDacCntMax); - createParam(P_RtmLampPISPLimInfString, asynParamUInt32Digital, &P_RtmLampPISPLimInf); + createParam(P_FofbProcessingRamWriteString, asynParamUInt32Digital, &P_FofbProcessingRamWrite); + createParam(P_FofbProcessingRamAddrString, asynParamUInt32Digital, &P_FofbProcessingRamAddr); + createParam(P_FofbProcessingRamDataInString, asynParamUInt32Digital, &P_FofbProcessingRamDataIn); + createParam(P_FofbProcessingRamDataOutString, asynParamUInt32Digital, &P_FofbProcessingRamDataOut); + createParam(P_RtmLampStatusString, asynParamUInt32Digital, &P_RtmLampStatus); + createParam(P_RtmLampDacDataFromWbString, asynParamUInt32Digital, &P_RtmLampDacDataFromWb); + createParam(P_RtmLampAmpIFlagLString, asynParamUInt32Digital, &P_RtmLampAmpIFlagL); + createParam(P_RtmLampAmpTFlagLString, asynParamUInt32Digital, &P_RtmLampAmpTFlagL); + createParam(P_RtmLampAmpIFlagRString, asynParamUInt32Digital, &P_RtmLampAmpIFlagR); + createParam(P_RtmLampAmpTFlagRString, asynParamUInt32Digital, &P_RtmLampAmpTFlagR); + createParam(P_RtmLampAmpEnString, asynParamUInt32Digital, &P_RtmLampAmpEn); + createParam(P_RtmLampPIOLTriangEnString, asynParamUInt32Digital, &P_RtmLampPIOLTriangEn); + createParam(P_RtmLampPIOLSquareEnString, asynParamUInt32Digital, &P_RtmLampPIOLSquareEn); + createParam(P_RtmLampPISPSquareEnString, asynParamUInt32Digital, &P_RtmLampPISPSquareEn); + createParam(P_RtmLampPIEnString, asynParamUInt32Digital, &P_RtmLampPIEn); + createParam(P_RtmLampDacDataString, asynParamUInt32Digital, &P_RtmLampDacData); + createParam(P_RtmLampDacWrString, asynParamUInt32Digital, &P_RtmLampDacWr); + createParam(P_RtmLampPIKPString, asynParamUInt32Digital, &P_RtmLampPIKP); + createParam(P_RtmLampPITIString, asynParamUInt32Digital, &P_RtmLampPITI); + createParam(P_RtmLampPISPString, asynParamUInt32Digital, &P_RtmLampPISP); + createParam(P_RtmLampPIOLDacCntMaxString, asynParamUInt32Digital, &P_RtmLampPIOLDacCntMax); + createParam(P_RtmLampPISPLimInfString, asynParamUInt32Digital, &P_RtmLampPISPLimInf); /* FOFB HW Int32 Functions mapping. Functions not mapped here are just written * * * to the parameter library */ - fofbHwFunc.emplace(P_RamWrite, fofb_processingSetGetRamWriteFunc); - fofbHwFunc.emplace(P_RamAddr, fofb_processingSetGetRamAddrFunc); - fofbHwFunc.emplace(P_RamDataIn, fofb_processingSetGetRamDataInFunc); - fofbHwFunc.emplace(P_RamDataOut, fofb_processingSetGetRamDataOutFunc); - fofbHwFunc.emplace(P_RtmLampStatus, rtmlamp_ohwrSetGetRtmLampStatusFunc); - fofbHwFunc.emplace(P_RtmLampDacDataFromWb, rtmlamp_ohwrSetGetRtmLampDacDataFromWbFunc); - fofbHwFunc.emplace(P_RtmLampAmpIFlagL, rtmlamp_ohwrSetGetRtmLampAmpIFlagLFunc); - fofbHwFunc.emplace(P_RtmLampAmpTFlagL, rtmlamp_ohwrSetGetRtmLampAmpTFlagLFunc); - fofbHwFunc.emplace(P_RtmLampAmpIFlagR, rtmlamp_ohwrSetGetRtmLampAmpIFlagRFunc); - fofbHwFunc.emplace(P_RtmLampAmpTFlagR, rtmlamp_ohwrSetGetRtmLampAmpTFlagRFunc); - fofbHwFunc.emplace(P_RtmLampAmpEn, rtmlamp_ohwrSetGetRtmLampAmpEnFunc); - fofbHwFunc.emplace(P_RtmLampPIOLTriangEn, rtmlamp_ohwrSetGetRtmLampPIOLTriangEnFunc); - fofbHwFunc.emplace(P_RtmLampPIOLSquareEn, rtmlamp_ohwrSetGetRtmLampPIOLSquareEnFunc); - fofbHwFunc.emplace(P_RtmLampPISPSquareEn, rtmlamp_ohwrSetGetRtmLampPISPSquareEnFunc); - fofbHwFunc.emplace(P_RtmLampPIEn, rtmlamp_ohwrSetGetRtmLampPIEnFunc); - fofbHwFunc.emplace(P_RtmLampDacData, rtmlamp_ohwrSetGetRtmLampDacDataFunc); - fofbHwFunc.emplace(P_RtmLampDacWr, rtmlamp_ohwrSetGetRtmLampDacWrFunc); - fofbHwFunc.emplace(P_RtmLampPIKP, rtmlamp_ohwrSetGetRtmLampPIKPFunc); - fofbHwFunc.emplace(P_RtmLampPITI, rtmlamp_ohwrSetGetRtmLampPITIFunc); - fofbHwFunc.emplace(P_RtmLampPISP, rtmlamp_ohwrSetGetRtmLampPISPFunc); - fofbHwFunc.emplace(P_RtmLampPIOLDacCntMax, rtmlamp_ohwrSetGetRtmLampPIOLDacCntMaxFunc); - fofbHwFunc.emplace(P_RtmLampPISPLimInf, rtmlamp_ohwrSetGetRtmLampPISPLimInfFunc); + fofbHwFunc.emplace(P_FofbProcessingRamWrite, fofb_processingSetGetRamWriteFunc); + fofbHwFunc.emplace(P_FofbProcessingRamAddr, fofb_processingSetGetRamAddrFunc); + fofbHwFunc.emplace(P_FofbProcessingRamDataIn, fofb_processingSetGetRamDataInFunc); + fofbHwFunc.emplace(P_FofbProcessingRamDataOut, fofb_processingSetGetRamDataOutFunc); + fofbHwFunc.emplace(P_RtmLampStatus, rtmlamp_ohwrSetGetRtmLampStatusFunc); + fofbHwFunc.emplace(P_RtmLampDacDataFromWb, rtmlamp_ohwrSetGetRtmLampDacDataFromWbFunc); + fofbHwFunc.emplace(P_RtmLampAmpIFlagL, rtmlamp_ohwrSetGetRtmLampAmpIFlagLFunc); + fofbHwFunc.emplace(P_RtmLampAmpTFlagL, rtmlamp_ohwrSetGetRtmLampAmpTFlagLFunc); + fofbHwFunc.emplace(P_RtmLampAmpIFlagR, rtmlamp_ohwrSetGetRtmLampAmpIFlagRFunc); + fofbHwFunc.emplace(P_RtmLampAmpTFlagR, rtmlamp_ohwrSetGetRtmLampAmpTFlagRFunc); + fofbHwFunc.emplace(P_RtmLampAmpEn, rtmlamp_ohwrSetGetRtmLampAmpEnFunc); + fofbHwFunc.emplace(P_RtmLampPIOLTriangEn, rtmlamp_ohwrSetGetRtmLampPIOLTriangEnFunc); + fofbHwFunc.emplace(P_RtmLampPIOLSquareEn, rtmlamp_ohwrSetGetRtmLampPIOLSquareEnFunc); + fofbHwFunc.emplace(P_RtmLampPISPSquareEn, rtmlamp_ohwrSetGetRtmLampPISPSquareEnFunc); + fofbHwFunc.emplace(P_RtmLampPIEn, rtmlamp_ohwrSetGetRtmLampPIEnFunc); + fofbHwFunc.emplace(P_RtmLampDacData, rtmlamp_ohwrSetGetRtmLampDacDataFunc); + fofbHwFunc.emplace(P_RtmLampDacWr, rtmlamp_ohwrSetGetRtmLampDacWrFunc); + fofbHwFunc.emplace(P_RtmLampPIKP, rtmlamp_ohwrSetGetRtmLampPIKPFunc); + fofbHwFunc.emplace(P_RtmLampPITI, rtmlamp_ohwrSetGetRtmLampPITIFunc); + fofbHwFunc.emplace(P_RtmLampPISP, rtmlamp_ohwrSetGetRtmLampPISPFunc); + fofbHwFunc.emplace(P_RtmLampPIOLDacCntMax, rtmlamp_ohwrSetGetRtmLampPIOLDacCntMaxFunc); + fofbHwFunc.emplace(P_RtmLampPISPLimInf, rtmlamp_ohwrSetGetRtmLampPISPLimInfFunc); lock(); @@ -282,28 +282,28 @@ drvFOFB::drvFOFB(const char *portName, const char *endpoint, int fofbNumber, /* Set the initial values of some parameters */ - setUIntDigitalParam(P_RamWrite, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RamAddr, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RamDataIn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RamDataOut, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampStatus, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampDacDataFromWb, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampAmpIFlagL, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampAmpTFlagL, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampAmpIFlagR, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampAmpTFlagR, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampAmpEn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPIOLTriangEn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPIOLSquareEn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPISPSquareEn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPIEn, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampDacData, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampDacWr, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPIKP, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPITI, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPISP, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPIOLDacCntMax, 0, 0xFFFFFFFF); - setUIntDigitalParam(P_RtmLampPISPLimInf, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbProcessingRamWrite, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbProcessingRamAddr, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbProcessingRamDataIn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbProcessingRamDataOut, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampStatus, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampDacDataFromWb, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampAmpIFlagL, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampAmpTFlagL, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampAmpIFlagR, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampAmpTFlagR, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampAmpEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPIOLTriangEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPIOLSquareEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPISPSquareEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPIEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampDacData, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampDacWr, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPIKP, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPITI, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPISP, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPIOLDacCntMax, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_RtmLampPISPLimInf, 0, 0xFFFFFFFF); /* Do callbacks so higher layers see any changes. Call callbacks for every addr */ for (int i = 0; i < MAX_ADDR; ++i) { diff --git a/FOFBApp/src/drvFOFB.h b/FOFBApp/src/drvFOFB.h index 020e4ab..a4fe647 100644 --- a/FOFBApp/src/drvFOFB.h +++ b/FOFBApp/src/drvFOFB.h @@ -158,10 +158,10 @@ struct functionsAny_t { /* These are the drvInfo strings that are used to identify the parameters. * * * They are used by asyn clients, including standard asyn device support */ -#define P_RamWriteString "FOFB_PROCESSING_RAM_WRITE" /* asynUInt32Digital, r/w */ -#define P_RamAddrString "FOFB_PROCESSING_RAM_ADDR" /* asynUInt32Digital, r/w */ -#define P_RamDataInString "FOFB_PROCESSING_RAM_DATA_IN" /* asynUInt32Digital, r/w */ -#define P_RamDataOutString "FOFB_PROCESSING_RAM_DATA_OUT" /* asynUInt32Digital, r/o */ +#define P_FofbProcessingRamWriteString "FOFB_PROCESSING_RAM_WRITE" /* asynUInt32Digital, r/w */ +#define P_FofbProcessingRamAddrString "FOFB_PROCESSING_RAM_ADDR" /* asynUInt32Digital, r/w */ +#define P_FofbProcessingRamDataInString "FOFB_PROCESSING_RAM_DATA_IN" /* asynUInt32Digital, r/w */ +#define P_FofbProcessingRamDataOutString "FOFB_PROCESSING_RAM_DATA_OUT" /* asynUInt32Digital, r/o */ #define P_RtmLampStatusString "RTMLAMP_OHWR_STA" /* asynUInt32Digital, r/o */ #define P_RtmLampDacDataFromWbString "RTMLAMP_OHWR_CTL_DAC_DATA_FROM_WB" /* asynUInt32Digital, r/w */ #define P_RtmLampAmpIFlagLString "RTMLAMP_OHWR_CH_0_STA_AMP_IFLAG_L" /* asynUInt32Digital, r/w */ @@ -242,11 +242,11 @@ class drvFOFB : public asynPortDriver { protected: /** Values used for pasynUser->reason, and indexes into the parameter library. */ - int P_RamWrite; -#define FIRST_COMMAND P_RamWrite - int P_RamAddr; - int P_RamDataIn; - int P_RamDataOut; + int P_FofbProcessingRamWrite; +#define FIRST_COMMAND P_FofbProcessingRamWrite + int P_FofbProcessingRamAddr; + int P_FofbProcessingRamDataIn; + int P_FofbProcessingRamDataOut; int P_RtmLampStatus; int P_RtmLampDacDataFromWb; int P_RtmLampAmpIFlagL; From 1502fce63654a860572f9ade2a586b783f7d4d79 Mon Sep 17 00:00:00 2001 From: Melissa Aguiar Date: Thu, 9 Dec 2021 12:18:23 -0300 Subject: [PATCH 2/5] FOFBApp/Db: add fofb_ctrl records --- FOFBApp/Db/FOFB.template | 562 ++++++++++++++++++++++++++++++++++- FOFBApp/Db/FOFB_settings.req | 52 +++- 2 files changed, 596 insertions(+), 18 deletions(-) diff --git a/FOFBApp/Db/FOFB.template b/FOFBApp/Db/FOFB.template index 5e9b7b8..b55d0d2 100644 --- a/FOFBApp/Db/FOFB.template +++ b/FOFBApp/Db/FOFB.template @@ -6,69 +6,69 @@ # Created Dez. 03, 2021 # -######################### -# RAM parameters -######################### +############################ +# FOFB PRCESSING parameters +############################ -record(longout,"$(P)$(R)RamWriteEnable-SP"){ +record(longout,"$(P)$(R)FofbProcessingRamWriteEnable-SP"){ field(DTYP,"asynUInt32Digital") field(DESC,"set ram enable bit") field(PINI,"YES") field(SCAN,"Passive") field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_WRITE") } -record(longin,"$(P)$(R)RamWriteEnable-RB"){ +record(longin,"$(P)$(R)FofbProcessingRamWriteEnable-RB"){ field(DTYP,"asynUInt32Digital") field(DESC,"get ram enable bit") field(SCAN,"I/O Intr") field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_WRITE") } -record(longout,"$(P)$(R)RamAddr-SP"){ +record(longout,"$(P)$(R)FofbProcessingRamAddr-SP"){ field(DTYP,"asynUInt32Digital") field(DESC,"set ram address") field(PINI,"YES") field(SCAN,"Passive") field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_ADDR") } -record(longin,"$(P)$(R)RamAddr-RB"){ +record(longin,"$(P)$(R)FofbProcessingRamAddr-RB"){ field(DTYP,"asynUInt32Digital") field(DESC,"get ram address") field(SCAN,"I/O Intr") field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_ADDR") } -record(longout,"$(P)$(R)RamDataIn-SP"){ +record(longout,"$(P)$(R)FofbProcessingRamDataIn-SP"){ field(DTYP,"asynUInt32Digital") field(DESC,"set ram data input") field(PINI,"YES") field(SCAN,"Passive") field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_DATA_IN") } -record(longin,"$(P)$(R)RamDataIn-RB"){ +record(longin,"$(P)$(R)FofbProcessingRamDataIn-RB"){ field(DTYP,"asynUInt32Digital") field(DESC,"get ram data input") field(SCAN,"I/O Intr") field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_DATA_IN") } -record(longout,"$(P)$(R)RamDataOut-SP"){ +record(longout,"$(P)$(R)FofbProcessingRamDataOut-SP"){ field(DTYP,"asynUInt32Digital") field(DESC,"set ram data output") field(PINI,"YES") field(SCAN,"Passive") field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_DATA_OUT") } -record(longin,"$(P)$(R)RamDataOut-RB"){ +record(longin,"$(P)$(R)FofbProcessingRamDataOut-RB"){ field(DTYP,"asynUInt32Digital") field(DESC,"get ram data output") field(SCAN,"I/O Intr") field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_PROCESSING_RAM_DATA_OUT") } -######################### +############################ # RTM LAMP parameters -######################### +############################ record(longout,"$(P)$(R)RtmLampStatus-SP"){ field(DTYP,"asynUInt32Digital") @@ -321,3 +321,539 @@ record(longin,"$(P)$(R)RtmLampPISPLimInf-RB"){ field(SCAN,"I/O Intr") field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))RTMLAMP_OHWR_PI_SP_LIM_INF_DATA") } + +############################ +# FOFB CTRL parameters +############################ + +record(longout,"$(P)$(R)FofbCtrlActPart-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set FOFB CC configuration register") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_ACT_PART") +} +record(longin,"$(P)$(R)FofbCtrlActPart-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get FOFB CC configuration register") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_ACT_PART") +} + +record(longout,"$(P)$(R)FofbCtrlErrClr-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set FOFB CC configuration register") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_ERR_CLR") +} +record(longin,"$(P)$(R)FofbCtrlErrClr-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get FOFB CC configuration register") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_ERR_CLR") +} + +record(longout,"$(P)$(R)FofbCtrlCcEnable-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set FOFB CC configuration register") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_CC_ENABLE") +} +record(longin,"$(P)$(R)FofbCtrlCcEnable-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get FOFB CC configuration register") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_CC_ENABLE") +} + +record(longout,"$(P)$(R)FofbCtrlTfsOverride-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set FOFB CC configuration register") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_TFS_OVERRIDE") +} +record(longin,"$(P)$(R)FofbCtrlTfsOverride-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get FOFB CC configuration register") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CFG_VAL_TFS_OVERRIDE") +} + +record(longout,"$(P)$(R)FofbCtrlBpmId-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set FOFB CC BPM ID") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_ID") +} +record(longin,"$(P)$(R)FofbCtrlBpmId-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get FOFB CC BPM ID") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_ID") +} + +record(longout,"$(P)$(R)FofbCtrlTimeFrameLen-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set time frame length") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_LEN") +} +record(longin,"$(P)$(R)FofbCtrlTimeFrameLen-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get time frame length") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_LEN") +} + +record(longout,"$(P)$(R)FofbCtrlMgtPowerdown-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set mgt powerdown") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_MGT_POWERDOWN") +} +record(longin,"$(P)$(R)FofbCtrlMgtPowerdown-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get mgt powerdown") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_MGT_POWERDOWN") +} + +record(longout,"$(P)$(R)FofbCtrlMgtLoopback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set mgt loopback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_MGT_LOOPBACK") +} +record(longin,"$(P)$(R)FofbCtrlMgtLoopback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get mgt loopback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_MGT_LOOPBACK") +} + +record(longout,"$(P)$(R)FofbCtrlTimeFrameDly-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set time frame dly") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_DLY") +} +record(longin,"$(P)$(R)FofbCtrlTimeFrameDly-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get time frame dly") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_DLY") +} + +record(longout,"$(P)$(R)FofbCtrlGoldenOrbX-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set golden orbit x") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_GOLDEN_ORB_X") +} +record(longin,"$(P)$(R)FofbCtrlGoldenOrbX-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get golden orbit x") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_GOLDEN_ORB_X") +} + +record(longout,"$(P)$(R)FofbCtrlGoldenOrbY-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set golden orbit y") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_GOLDEN_ORB_Y") +} +record(longin,"$(P)$(R)FofbCtrlGoldenOrbY-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get golden orbit y") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_GOLDEN_ORB_Y") +} + +record(longout,"$(P)$(R)FofbCtrlCustFeature-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set cust feature") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CUST_FEATURE") +} +record(longin,"$(P)$(R)FofbCtrlCustFeature-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get cust feature") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_CUST_FEATURE") +} + +record(longout,"$(P)$(R)FofbCtrlRxPolarity-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set rx polarity") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RXPOLARITY") +} +record(longin,"$(P)$(R)FofbCtrlRxPolarity-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get rx polarity") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RXPOLARITY") +} + +record(longout,"$(P)$(R)FofbCtrlPayloadsel-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set payload sel") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_PAYLOADSEL") +} +record(longin,"$(P)$(R)FofbCtrlPayloadsel-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get payload sel") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_PAYLOADSEL") +} + +record(longout,"$(P)$(R)FofbCtrlFofbdatasel-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set fofb data sel") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FOFBDATASEL") +} +record(longin,"$(P)$(R)FofbCtrlFofbdatasel-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get fofb data sel") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FOFBDATASEL") +} + +record(longout,"$(P)$(R)FofbCtrlFirmwareVer-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set firmware version") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FIRMWARE_VER") +} +record(longin,"$(P)$(R)FofbCtrlFirmwareVer-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get firmware version") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FIRMWARE_VER") +} + +record(longout,"$(P)$(R)FofbCtrlSysStatus-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set system status") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_SYS_STATUS") +} +record(longin,"$(P)$(R)FofbCtrlSysStatus-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get system status") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_SYS_STATUS") +} + +record(longout,"$(P)$(R)FofbCtrlLinkPartner-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set link partner") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LINK_PARTNER_1") +} +record(longin,"$(P)$(R)FofbCtrlLinkPartner-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get link partner") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LINK_PARTNER_1") +} + +record(longout,"$(P)$(R)FofbCtrlLinkUp-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set link up") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LINK_UP") +} +record(longin,"$(P)$(R)FofbCtrlLinkUp-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get link up") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LINK_UP") +} + +record(longout,"$(P)$(R)FofbCtrlTimeFrameCount-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set time frame count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_COUNT") +} +record(longin,"$(P)$(R)FofbCtrlTimeFrameCount-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get time frame count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TIME_FRAME_COUNT") +} + +record(longout,"$(P)$(R)FofbCtrlHardErrCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set hard errors count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_HARD_ERR_CNT_1") +} +record(longin,"$(P)$(R)FofbCtrlHardErrCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get hard errors count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_HARD_ERR_CNT_1") +} + +record(longout,"$(P)$(R)FofbCtrlSoftErrCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set soft errors count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_SOFT_ERR_CNT_1") +} +record(longin,"$(P)$(R)FofbCtrlSoftErrCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get soft errors count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_SOFT_ERR_CNT_1") +} + +record(longout,"$(P)$(R)FofbCtrlFrameErrCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set frame errors count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FRAME_ERR_CNT_1") +} +record(longin,"$(P)$(R)FofbCtrlFrameErrCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get frame errors count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FRAME_ERR_CNT_1") +} + +record(longout,"$(P)$(R)FofbCtrlRxPckCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set rx packet count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RX_PCK_CNT_1") +} +record(longin,"$(P)$(R)FofbCtrlRxPckCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get rx packet count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RX_PCK_CNT_1") +} + +record(longout,"$(P)$(R)FofbCtrlTxPckCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set PI tx packet count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TX_PCK_CNT_1") +} +record(longin,"$(P)$(R)FofbCtrlTxPckCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get tx packet count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TX_PCK_CNT_1") +} + +record(longout,"$(P)$(R)FofbCtrlFodProcessTime-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set fod process time") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FOD_PROCESS_TIME") +} +record(longin,"$(P)$(R)FofbCtrlFodProcessTime-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get fod process time") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FOD_PROCESS_TIME") +} + +record(longout,"$(P)$(R)FofbCtrlBpmCnt-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set bpm count") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_COUNT") +} +record(longin,"$(P)$(R)FofbCtrlBpmCnt-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get bpm count") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_COUNT") +} + +record(longout,"$(P)$(R)FofbCtrlBpmIdRdback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set bpm id readback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_ID_RDBACK") +} +record(longin,"$(P)$(R)FofbCtrlBpmIdRdback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get bpm id readback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_BPM_ID_RDBACK") +} + +record(longout,"$(P)$(R)FofbCtrlTfLengthRdback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set time frame length readback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TF_LENGTH_RDBACK") +} +record(longin,"$(P)$(R)FofbCtrlTfLengthRdback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get timeframe length readback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TF_LENGTH_RDBACK") +} + +record(longout,"$(P)$(R)FofbCtrlPowerdownRdback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set powerdown readback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_POWERDOWN_RDBACK") +} +record(longin,"$(P)$(R)FofbCtrlPowerdownRdback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get powerdown readback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_POWERDOWN_RDBACK") +} + +record(longout,"$(P)$(R)FofbCtrlLoopbackRdback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set loopback readback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LOOPBACK_RDBACK") +} +record(longin,"$(P)$(R)FofbCtrlLoopbackRdback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get loopback readback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_LOOPBACK_RDBACK") +} + +record(longout,"$(P)$(R)FofbCtrlFaivalRdback-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set faival readback") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FAIVAL_RDBACK") +} +record(longin,"$(P)$(R)FofbCtrlFaivalRdback-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get faival readback") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_FAIVAL_RDBACK") +} + +record(longout,"$(P)$(R)FofbCtrlToaRdEn-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set toa ctl read enable") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_CTL_RD_EN") +} +record(longin,"$(P)$(R)FofbCtrlToaRdEn-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get toa ctl read enable") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_CTL_RD_EN") +} + +record(longout,"$(P)$(R)FofbCtrlToaRdStr-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set toa ctl read string") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_CTL_RD_STR") +} +record(longin,"$(P)$(R)FofbCtrlToaRdStr-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get toa ctl read string") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_CTL_RD_STR") +} + +record(longout,"$(P)$(R)FofbCtrlToaData-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set toa data") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_DATA_VAL") +} +record(longin,"$(P)$(R)FofbCtrlToaData-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get toa data") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_TOA_DATA_VAL") +} + +record(longout,"$(P)$(R)FofbCtrlRcbRdEn-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set rcb ctl read enable") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_CTL_RD_EN") +} +record(longin,"$(P)$(R)FofbCtrlRcbRdEn-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get rcb ctl read enable") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_CTL_RD_EN") +} + +record(longout,"$(P)$(R)FofbCtrlRcbRdStr-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set rcb ctl read string") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_CTL_RD_STR") +} +record(longin,"$(P)$(R)FofbCtrlRcbRdStr-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get rcb ctl read string") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_CTL_RD_STR") +} +record(longout,"$(P)$(R)FofbCtrlRcbData-SP"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"set rcb data") + field(PINI,"YES") + field(SCAN,"Passive") + field(OUT,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_DATA_VAL") +} +record(longin,"$(P)$(R)FofbCtrlRcbData-RB"){ + field(DTYP,"asynUInt32Digital") + field(DESC,"get rcb data") + field(SCAN,"I/O Intr") + field(INP,"@asynMask($(PORT),$(ADDR),0xFFFFFFFF,$(TIMEOUT))FOFB_CC_RCB_DATA_VAL") +} + diff --git a/FOFBApp/Db/FOFB_settings.req b/FOFBApp/Db/FOFB_settings.req index b5227ca..a785d21 100644 --- a/FOFBApp/Db/FOFB_settings.req +++ b/FOFBApp/Db/FOFB_settings.req @@ -1,11 +1,11 @@ ######################### -# RAM parameters +# FOFB PROCESSING parameters ######################### -$(P)$(R)RamWriteEnable-SP -$(P)$(R)RamAddr-SP -$(P)$(R)RamDataIn-SP -$(P)$(R)RamDataOut-SP +$(P)$(R)FofbProcessingRamWriteEnable-SP +$(P)$(R)FofbProcessingRamAddr-SP +$(P)$(R)FofbProcessingRamDataIn-SP +$(P)$(R)FofbProcessingRamDataOut-SP ######################### # RTM LAMP parameters @@ -30,3 +30,45 @@ $(P)$(R)RtmLampPISP-SP $(P)$(R)RtmLampPIOLDacCntMax-SP $(P)$(R)RtmLampPISPLimInf-SP +############################ +# FOFB CTRL parameters +############################ + +$(P)$(R)FofbCtrlActPart-SP +$(P)$(R)FofbCtrlErrClr-SP +$(P)$(R)FofbCtrlCcEnable-SP +$(P)$(R)FofbCtrlTfsOverride-SP +$(P)$(R)FofbCtrlBpmId-SP +$(P)$(R)FofbCtrlTimeFrameLen-SP +$(P)$(R)FofbCtrlMgtPowerdwn-SP +$(P)$(R)FofbCtrlMgtLoopback-SP +$(P)$(R)FofbCtrlTimeFrameDly-SP +$(P)$(R)FofbCtrlGoldenOrbX-SP +$(P)$(R)FofbCtrlGoldenOrbY-SP +$(P)$(R)FofbCtrlCustFeature-SP +$(P)$(R)FofbCtrlRxPolarity-SP +$(P)$(R)FofbCtrlPayloadsel-SP +$(P)$(R)FofbCtrlFofbdatasel-SP +$(P)$(R)FofbCtrlFirmwareVer-SP +$(P)$(R)FofbCtrlSysStatus-SP +$(P)$(R)FofbCtrlLinkPartner-SP +$(P)$(R)FofbCtrlLinkUp-SP +$(P)$(R)FofbCtrlTimeFrameCount-SP +$(P)$(R)FofbCtrlHardErrCnt-SP +$(P)$(R)FofbCtrlSoftErrCnt-SP +$(P)$(R)FofbCtrlFrameErrCnt-SP +$(P)$(R)FofbCtrlRxPckCnt-SP +$(P)$(R)FofbCtrlTxPckCnt-SP +$(P)$(R)FofbCtrlFodProcessTime-SP +$(P)$(R)FofbCtrlBpmCnt-SP +$(P)$(R)FofbCtrlBpmIdRdback-SP +$(P)$(R)FofbCtrlTfLengthRdback-SP +$(P)$(R)FofbCtrlPowerdownRdback-SP +$(P)$(R)FofbCtrlLoopbackRdback-SP +$(P)$(R)FofbCtrlFaivalRdback-SP +$(P)$(R)FofbCtrlToaRdEn-SP +$(P)$(R)FofbCtrlToaRdStr-SP +$(P)$(R)FofbCtrlToaData-SP +$(P)$(R)FofbCtrlRcbRdEn-SP +$(P)$(R)FofbCtrlRcbRdStr-SP +$(P)$(R)FofbCtrlRcbData-SP From 227f103bb04da78db5413a35d4edcdc912346cbb Mon Sep 17 00:00:00 2001 From: Melissa Aguiar Date: Thu, 9 Dec 2021 12:18:46 -0300 Subject: [PATCH 3/5] FOFBApp/src: add fofb_ctrl functions --- FOFBApp/src/drvFOFB.cpp | 279 +++++++++++++++++++++++++++++++++------- FOFBApp/src/drvFOFB.h | 78 ++++++++++- 2 files changed, 311 insertions(+), 46 deletions(-) diff --git a/FOFBApp/src/drvFOFB.cpp b/FOFBApp/src/drvFOFB.cpp index cb8ef5e..7c290f4 100644 --- a/FOFBApp/src/drvFOFB.cpp +++ b/FOFBApp/src/drvFOFB.cpp @@ -56,50 +56,126 @@ static const boardMap_t boardMap[MAX_FOFBS+1] = { }; /* Int32 functions mapping */ -static const functionsAny_t fofb_processingSetGetRamWriteFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_write, +static const functionsAny_t fofbProcessingSetGetRamWriteFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_write, halcs_get_fofb_processing_ram_write}}; -static const functionsAny_t fofb_processingSetGetRamAddrFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_addr, +static const functionsAny_t fofbProcessingSetGetRamAddrFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_addr, halcs_get_fofb_processing_ram_addr}}; -static const functionsAny_t fofb_processingSetGetRamDataInFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_data_in, +static const functionsAny_t fofbProcessingSetGetRamDataInFunc = {functionsUInt32_t{"FOFB_PROCESSING", halcs_set_fofb_processing_ram_data_in, halcs_get_fofb_processing_ram_data_in}}; -static const functionsAny_t fofb_processingSetGetRamDataOutFunc = {functionsUInt32_t{"FOFB_PROCESSING", NULL, +static const functionsAny_t fofbProcessingSetGetRamDataOutFunc = {functionsUInt32_t{"FOFB_PROCESSING", NULL, halcs_get_fofb_processing_ram_data_out}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampStatusFunc = {functionsUInt32_t{"RTMLAMP_OHWR", NULL , +static const functionsAny_t rtmLampOhwrSetGetStatusFunc = {functionsUInt32_t{"RTMLAMP_OHWR", NULL , halcs_get_rtmlamp_ohwr_sta}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampDacDataFromWbFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_data_from_wb, +static const functionsAny_t rtmLampSetGetDacDataFromWbFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_data_from_wb, halcs_get_rtmlamp_ohwr_dac_data_from_wb}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampAmpIFlagLFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_iflag_l, +static const functionsAny_t rtmLampSetGetAmpIFlagLFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_iflag_l, halcs_get_rtmlamp_ohwr_amp_iflag_l}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampAmpTFlagLFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_tflag_l, +static const functionsAny_t rtmLampSetGetAmpTFlagLFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_tflag_l, halcs_get_rtmlamp_ohwr_amp_tflag_l}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampAmpIFlagRFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_iflag_r, +static const functionsAny_t rtmLampSetGetAmpIFlagRFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_iflag_r, halcs_get_rtmlamp_ohwr_amp_iflag_r}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampAmpTFlagRFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_tflag_r, +static const functionsAny_t rtmLampSetGetAmpTFlagRFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_tflag_r, halcs_get_rtmlamp_ohwr_amp_tflag_r}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampAmpEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_en, +static const functionsAny_t rtmLampSetGetAmpEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_amp_en, halcs_get_rtmlamp_ohwr_amp_en}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPIOLTriangEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_triang_enable, +static const functionsAny_t rtmLampSetGetPIOLTriangEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_triang_enable, halcs_get_rtmlamp_ohwr_pi_ol_triang_enable}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPIOLSquareEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_square_enable, +static const functionsAny_t rtmLampSetGetPIOLSquareEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_square_enable, halcs_get_rtmlamp_ohwr_pi_ol_square_enable}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPISPSquareEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp_square_enable, +static const functionsAny_t rtmLampSetGetPISPSquareEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp_square_enable, halcs_get_rtmlamp_ohwr_pi_sp_square_enable}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPIEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_enable, +static const functionsAny_t rtmLampSetGetPIEnFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_enable, halcs_get_rtmlamp_ohwr_pi_enable}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampDacDataFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_data, +static const functionsAny_t rtmLampSetGetDacDataFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_data, halcs_get_rtmlamp_ohwr_dac_data}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampDacWrFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_wr, +static const functionsAny_t rtmLampSetGetDacWrFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_wr, halcs_get_rtmlamp_ohwr_dac_wr}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPIKPFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_kp, +static const functionsAny_t rtmLampSetGetPIKPFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_kp, halcs_get_rtmlamp_ohwr_pi_kp}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPITIFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ti, +static const functionsAny_t rtmLampSetGetPITIFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ti, halcs_get_rtmlamp_ohwr_pi_ti}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPISPFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp, +static const functionsAny_t rtmLampSetGetPISPFunc = {functionsUInt32Chan_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp, halcs_get_rtmlamp_ohwr_pi_sp}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPIOLDacCntMaxFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_dac_cnt_max, +static const functionsAny_t rtmLampSetGetPIOLDacCntMaxFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_ol_dac_cnt_max, halcs_get_rtmlamp_ohwr_pi_ol_dac_cnt_max}}; -static const functionsAny_t rtmlamp_ohwrSetGetRtmLampPISPLimInfFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp_lim_inf, +static const functionsAny_t rtmLampSetGetPISPLimInfFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp_lim_inf, halcs_get_rtmlamp_ohwr_pi_sp_lim_inf}}; +static const functionsAny_t fofbCtrlSetGetActPartFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_act_part, + halcs_get_fofb_ctrl_act_part}}; +static const functionsAny_t fofbCtrlSetGeErrClrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_err_clr, + halcs_get_fofb_ctrl_err_clr}}; +static const functionsAny_t fofbCtrlSetGetCcEnableFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_cc_enable, + fofb_ctrl_cc_enable}}; +static const functionsAny_t fofbCtrlSetGetTfsOverrideFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_tfs_override, + halcs_get_fofb_ctrl_tfs_override}}; +static const functionsAny_t fofbCtrlSetGetBpmIdFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_bpm_id, + halcs_get_fofb_ctrl_bpm_id}}; +static const functionsAny_t fofbCtrlSetGetTimeFrameLenFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_time_frame_len, + halcs_get_fofb_ctrl_time_frame_len}}; +static const functionsAny_t fofbCtrlSetGetMgtPowerdownFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_mgt_powerdown, + halcs_get_fofb_ctrl_mgt_powerdown}}; +static const functionsAny_t fofbCtrlSetGetMgtLoopbackFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_mgt_loopback, + halcs_get_fofb_ctrl_mgt_loopback}}; +static const functionsAny_t fofbCtrlSetGetTimeFrameDlyFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_time_frame_dly, + halcs_get_fofb_ctrl_time_frame_dly}}; +static const functionsAny_t fofbCtrlSetGetGoldenOrbXFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_golden_orb_x, + halcs_get_fofb_ctrl_golden_orb_x}}; +static const functionsAny_t fofbCtrlSetGetGoldenOrbYFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_golden_orb_y, + halcs_get_fofb_ctrl_golden_orb_y}}; +static const functionsAny_t fofbCtrlSetGetCustFeatureFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_cust_feature, + halcs_get_fofb_ctrl_cust_feature}}; +static const functionsAny_t fofbCtrlSetGetRxPolarityFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rx_polarity, + halcs_get_fofb_ctrl_rx_polarity}}; +static const functionsAny_t fofbCtrlSetGetPayloadselFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_payloadsel, + halcs_get_fofb_ctrl_payloadsel}}; +static const functionsAny_t fofbCtrlSetGetFofbdataselFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_fofbdatasel, + halcs_get_fofb_ctrl_fofbdatasel}}; +static const functionsAny_t fofbCtrlSetGetFirmwareVerFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_firmware_ver}}; +static const functionsAny_t fofbCtrlSetGetSysStatusFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_sys_status}}; +static const functionsAny_t fofbCtrlSetGetLinkPartnerFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_link_partner}}; +static const functionsAny_t fofbCtrlSetGetLinkUpFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_link_up}}; +static const functionsAny_t fofbCtrlSetGetTimeFrameCountFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_time_frame_count}}; +static const functionsAny_t fofbCtrlSetGetHardErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_hard_err_cnt}}; +static const functionsAny_t fofbCtrlSetGetSoftErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_soft_err_cnt}}; +static const functionsAny_t fofbCtrlSetGetFrameErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_frame_err_cnt}}; +static const functionsAny_t fofbCtrlSetGetRxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_rx_pck_cnt}}; +static const functionsAny_t fofbCtrlSetGetTxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_tx_pck_cnt}}; +static const functionsAny_t fofbCtrlSetGetFodProcessTimeFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_fod_process_time}}; +static const functionsAny_t fofbCtrlSetGetBpmCntFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_bpm_count}}; +static const functionsAny_t fofbCtrlSetGetBpmIdRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_bpm_id_rdback}}; +static const functionsAny_t fofbCtrlSetGetTfLengthRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_tf_length_rdback}}; +static const functionsAny_t fofbCtrlSetGetPowerdownRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_powerdown_rdback}}; +static const functionsAny_t fofbCtrlSetGetLoopbackRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_loopback_rdback}}; +static const functionsAny_t fofbCtrlSetGetFaivalRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_faival_rdback}}; +static const functionsAny_t fofbCtrlSetGetToaRdEnFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_toa_rd_en, + halcs_get_fofb_ctrl_toa_rd_en}}; +static const functionsAny_t fofbCtrlSetGetToaRdStrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_toa_rd_str, + halcs_get_fofb_ctrl_toa_rd_str}}; +static const functionsAny_t fofbCtrlSetGetToaDataFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_toa_data}}; +static const functionsAny_t fofbCtrlSetGetRcbRdEnFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rcb_rd_en, + halcs_get_fofb_ctrl_rcb_rd_en}}; +static const functionsAny_t fofbCtrlSetGetRcbRdStrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rcb_rd_str, + halcs_get_fofb_ctrl_rcb_rd_str}}; +static const functionsAny_t fofbCtrlSetGetRcbDataFunc = {functionsUInt32_t{"FOFB_CC", NULL, + halcs_get_fofb_ctrl_rcb_data}}; static const char *driverName="drvFOFB"; void acqTask(void *drvPvt); @@ -239,32 +315,107 @@ drvFOFB::drvFOFB(const char *portName, const char *endpoint, int fofbNumber, createParam(P_RtmLampPISPString, asynParamUInt32Digital, &P_RtmLampPISP); createParam(P_RtmLampPIOLDacCntMaxString, asynParamUInt32Digital, &P_RtmLampPIOLDacCntMax); createParam(P_RtmLampPISPLimInfString, asynParamUInt32Digital, &P_RtmLampPISPLimInf); + createParam(P_FofbCtrlActPartString, asynParamUInt32Digital, &P_FofbCtrlActPart); + createParam(P_FofbCtrlErrClrString, asynParamUInt32Digital, &P_FofbCtrlErrClr); + createParam(P_FofbCtrlCcEnableString, asynParamUInt32Digital, &P_FofbCtrlCcEnable); + createParam(P_FofbCtrlTfsOverrideString, asynParamUInt32Digital, &P_FofbCtrlTfsOverride); + createParam(P_FofbCtrlBpmIdString, asynParamUInt32Digital, &P_FofbCtrlBpmId); + createParam(P_FofbCtrlTimeFrameLenString, asynParamUInt32Digital, &P_FofbCtrlTimeFrameLen); + createParam(P_FofbCtrlMgtPowerdownString, asynParamUInt32Digital, &P_FofbCtrlMgtPowerdown); + createParam(P_FofbCtrlMgtLoopbackString, asynParamUInt32Digital, &P_FofbCtrlMgtLoopback); + createParam(P_FofbCtrlTimeFrameDlyString, asynParamUInt32Digital, &P_FofbCtrlTimeFrameDly); + createParam(P_FofbCtrlGoldenOrbXString, asynParamUInt32Digital, &P_FofbCtrlGoldenOrbX); + createParam(P_FofbCtrlGoldenOrbYString, asynParamUInt32Digital, &P_FofbCtrlGoldenOrbY); + createParam(P_FofbCtrlCustFeatureString, asynParamUInt32Digital, &P_FofbCtrlCustFeature); + createParam(P_FofbCtrlRxPolarityString, asynParamUInt32Digital, &P_FofbCtrlRxPolarity); + createParam(P_FofbCtrlPayloadselString, asynParamUInt32Digital, &P_FofbCtrlPayloadsel); + createParam(P_FofbCtrlFofbdataselString, asynParamUInt32Digital, &P_FofbCtrlFofbdatasel); + createParam(P_FofbCtrlFirmwareVerString, asynParamUInt32Digital, &P_FofbCtrlFirmwareVer); + createParam(P_FofbCtrlSysStatusString, asynParamUInt32Digital, &P_FofbCtrlSysStatus); + createParam(P_FofbCtrlLinkPartnerString, asynParamUInt32Digital, &P_FofbCtrlLinkPartner); + createParam(P_FofbCtrlLinkUpString, asynParamUInt32Digital, &P_FofbCtrlLinkUp); + createParam(P_FofbCtrlTimeFrameCountString, asynParamUInt32Digital, &P_FofbCtrlTimeFrameCount); + createParam(P_FofbCtrlHardErrCntString, asynParamUInt32Digital, &P_FofbCtrlHardErrCnt); + createParam(P_FofbCtrlSoftErrCntString, asynParamUInt32Digital, &P_FofbCtrlSoftErrCnt); + createParam(P_FofbCtrlFrameErrCntString, asynParamUInt32Digital, &P_FofbCtrlFrameErrCnt); + createParam(P_FofbCtrlRxPckCntString, asynParamUInt32Digital, &P_FofbCtrlRxPckCnt); + createParam(P_FofbCtrlTxPckCntString, asynParamUInt32Digital, &P_FofbCtrlTxPckCnt); + createParam(P_FofbCtrlFodProcessTimeString, asynParamUInt32Digital, &P_FofbCtrlFodProcessTime); + createParam(P_FofbCtrlBpmCntString, asynParamUInt32Digital, &P_FofbCtrlBpmCnt); + createParam(P_FofbCtrlBpmIdRdbackString, asynParamUInt32Digital, &P_FofbCtrlBpmIdRdback); + createParam(P_FofbCtrlTfLengthRdbackString, asynParamUInt32Digital, &P_FofbCtrlTfLengthRdback); + createParam(P_FofbCtrlPowerdownRdbackString, asynParamUInt32Digital, &P_FofbCtrlPowerdownRdback); + createParam(P_FofbCtrlLoopbackRdbackString, asynParamUInt32Digital, &P_FofbCtrlLoopbackRdback); + createParam(P_FofbCtrlFaivalRdbackString, asynParamUInt32Digital, &P_FofbCtrlFaivalRdback); + createParam(P_FofbCtrlToaRdEnString, asynParamUInt32Digital, &P_FofbCtrlToaRdEn); + createParam(P_FofbCtrlToaRdStrString, asynParamUInt32Digital, &P_FofbCtrlToaRdStr); + createParam(P_FofbCtrlToaDataString, asynParamUInt32Digital, &P_FofbCtrlToaData); + createParam(P_FofbCtrlRcbRdEnString, asynParamUInt32Digital, &P_FofbCtrlRcbRdEn); + createParam(P_FofbCtrlRcbRdStrString, asynParamUInt32Digital, &P_FofbCtrlRcbRdStr); + createParam(P_FofbCtrlRcbDataString, asynParamUInt32Digital, &P_FofbCtrlRcbData); /* FOFB HW Int32 Functions mapping. Functions not mapped here are just written * * * to the parameter library */ - fofbHwFunc.emplace(P_FofbProcessingRamWrite, fofb_processingSetGetRamWriteFunc); - fofbHwFunc.emplace(P_FofbProcessingRamAddr, fofb_processingSetGetRamAddrFunc); - fofbHwFunc.emplace(P_FofbProcessingRamDataIn, fofb_processingSetGetRamDataInFunc); - fofbHwFunc.emplace(P_FofbProcessingRamDataOut, fofb_processingSetGetRamDataOutFunc); - fofbHwFunc.emplace(P_RtmLampStatus, rtmlamp_ohwrSetGetRtmLampStatusFunc); - fofbHwFunc.emplace(P_RtmLampDacDataFromWb, rtmlamp_ohwrSetGetRtmLampDacDataFromWbFunc); - fofbHwFunc.emplace(P_RtmLampAmpIFlagL, rtmlamp_ohwrSetGetRtmLampAmpIFlagLFunc); - fofbHwFunc.emplace(P_RtmLampAmpTFlagL, rtmlamp_ohwrSetGetRtmLampAmpTFlagLFunc); - fofbHwFunc.emplace(P_RtmLampAmpIFlagR, rtmlamp_ohwrSetGetRtmLampAmpIFlagRFunc); - fofbHwFunc.emplace(P_RtmLampAmpTFlagR, rtmlamp_ohwrSetGetRtmLampAmpTFlagRFunc); - fofbHwFunc.emplace(P_RtmLampAmpEn, rtmlamp_ohwrSetGetRtmLampAmpEnFunc); - fofbHwFunc.emplace(P_RtmLampPIOLTriangEn, rtmlamp_ohwrSetGetRtmLampPIOLTriangEnFunc); - fofbHwFunc.emplace(P_RtmLampPIOLSquareEn, rtmlamp_ohwrSetGetRtmLampPIOLSquareEnFunc); - fofbHwFunc.emplace(P_RtmLampPISPSquareEn, rtmlamp_ohwrSetGetRtmLampPISPSquareEnFunc); - fofbHwFunc.emplace(P_RtmLampPIEn, rtmlamp_ohwrSetGetRtmLampPIEnFunc); - fofbHwFunc.emplace(P_RtmLampDacData, rtmlamp_ohwrSetGetRtmLampDacDataFunc); - fofbHwFunc.emplace(P_RtmLampDacWr, rtmlamp_ohwrSetGetRtmLampDacWrFunc); - fofbHwFunc.emplace(P_RtmLampPIKP, rtmlamp_ohwrSetGetRtmLampPIKPFunc); - fofbHwFunc.emplace(P_RtmLampPITI, rtmlamp_ohwrSetGetRtmLampPITIFunc); - fofbHwFunc.emplace(P_RtmLampPISP, rtmlamp_ohwrSetGetRtmLampPISPFunc); - fofbHwFunc.emplace(P_RtmLampPIOLDacCntMax, rtmlamp_ohwrSetGetRtmLampPIOLDacCntMaxFunc); - fofbHwFunc.emplace(P_RtmLampPISPLimInf, rtmlamp_ohwrSetGetRtmLampPISPLimInfFunc); - + fofbHwFunc.emplace(P_FofbProcessingRamWrite, fofbProcessingSetGetRamWriteFunc); + fofbHwFunc.emplace(P_FofbProcessingRamAddr, fofbProcessingSetGetRamAddrFunc); + fofbHwFunc.emplace(P_FofbProcessingRamDataIn, fofbProcessingSetGetRamDataInFunc); + fofbHwFunc.emplace(P_FofbProcessingRamDataOut, fofbProcessingSetGetRamDataOutFunc); + fofbHwFunc.emplace(P_RtmLampStatus, rtmLampSetGetStatusFunc); + fofbHwFunc.emplace(P_RtmLampDacDataFromWb, rtmLampSetGetDacDataFromWbFunc); + fofbHwFunc.emplace(P_RtmLampAmpIFlagL, rtmLampSetGetAmpIFlagLFunc); + fofbHwFunc.emplace(P_RtmLampAmpTFlagL, rtmLampSetGetAmpTFlagLFunc); + fofbHwFunc.emplace(P_RtmLampAmpIFlagR, rtmLampSetGetAmpIFlagRFunc); + fofbHwFunc.emplace(P_RtmLampAmpTFlagR, rtmLampSetGetAmpTFlagRFunc); + fofbHwFunc.emplace(P_RtmLampAmpEn, rtmLampSetGetAmpEnFunc); + fofbHwFunc.emplace(P_RtmLampPIOLTriangEn, rtmLampSetGetPIOLTriangEnFunc); + fofbHwFunc.emplace(P_RtmLampPIOLSquareEn, rtmLampSetGetPIOLSquareEnFunc); + fofbHwFunc.emplace(P_RtmLampPISPSquareEn, rtmLampSetGetPISPSquareEnFunc); + fofbHwFunc.emplace(P_RtmLampPIEn, rtmLampSetGetPIEnFunc); + fofbHwFunc.emplace(P_RtmLampDacData, rtmLampSetGetDacDataFunc); + fofbHwFunc.emplace(P_RtmLampDacWr, rtmLampSetGetDacWrFunc); + fofbHwFunc.emplace(P_RtmLampPIKP, rtmLampSetGetPIKPFunc); + fofbHwFunc.emplace(P_RtmLampPITI, rtmLampSetGetPITIFunc); + fofbHwFunc.emplace(P_RtmLampPISP, rtmLampSetGetPISPFunc); + fofbHwFunc.emplace(P_RtmLampPIOLDacCntMax, rtmLampSetGetPIOLDacCntMaxFunc); + fofbHwFunc.emplace(P_RtmLampPISPLimInf, rtmLampSetGetPISPLimInfFunc); + fofbHwFunc.emplace(P_FofbCtrlActPart, fofbCtrlSetGetActPartFunc); + fofbHwFunc.emplace(P_FofbCtrlErrClr, fofbCtrlSetGeFofbCtrlErrClrFunc); + fofbHwFunc.emplace(P_FofbCtrlCcEnable, fofbCtrlSetGetCcEnableFunc); + fofbHwFunc.emplace(P_FofbCtrlTfsOverride, fofbCtrlSetGetTfsOverrideFunc); + fofbHwFunc.emplace(P_FofbCtrlBpmId, fofbCtrlSetGetBpmIdFunc); + fofbHwFunc.emplace(P_FofbCtrlTimeFrameLen, fofbCtrlSetGetTimeFrameLenFunc); + fofbHwFunc.emplace(P_FofbCtrlMgtPowerdown, fofbCtrlSetGetMgtPowerdownFunc); + fofbHwFunc.emplace(P_FofbCtrlMgtLoopback, fofbCtrlSetGetMgtLoopbackFunc); + fofbHwFunc.emplace(P_FofbCtrlTimeFrameDly, fofbCtrlSetGetTimeFrameDlyFunc); + fofbHwFunc.emplace(P_FofbCtrlGoldenOrbX, fofbCtrlSetGetGoldenOrbXFunc); + fofbHwFunc.emplace(P_FofbCtrlGoldenOrbY, fofbCtrlSetGetGoldenOrbYFunc); + fofbHwFunc.emplace(P_FofbCtrlCustFeature, fofbCtrlSetGetCustFeatureFunc); + fofbHwFunc.emplace(P_FofbCtrlRxPolarity, fofbCtrlSetGetRxPolarityFunc); + fofbHwFunc.emplace(P_FofbCtrlPayloadsel, fofbCtrlSetGetPayloadselFunc); + fofbHwFunc.emplace(P_FofbCtrlFofbdatasel, fofbCtrlSetGetFofbdataselFunc); + fofbHwFunc.emplace(P_FofbCtrlFirmwareVer, fofbCtrlSetGetFirmwareVerFunc); + fofbHwFunc.emplace(P_FofbCtrlSysStatus, fofbCtrlSetGetSysStatusFunc); + fofbHwFunc.emplace(P_FofbCtrlLinkPartner, fofbCtrlSetGetLinkPartnerFunc); + fofbHwFunc.emplace(P_FofbCtrlLinkUp, fofbCtrlSetGetLinkUpFunc); + fofbHwFunc.emplace(P_FofbCtrlTimeFrameCount, fofbCtrlSetGetTimeFrameCountFunc); + fofbHwFunc.emplace(P_FofbCtrlHardErrCnt, fofbCtrlSetGetHardErrCntFunc); + fofbHwFunc.emplace(P_FofbCtrlSoftErrCnt, fofbCtrlSetGetSoftErrCntFunc); + fofbHwFunc.emplace(P_FofbCtrlFrameErrCnt, fofbCtrlSetGetFrameErrCntFunc); + fofbHwFunc.emplace(P_FofbCtrlRxPckCnt, fofbCtrlSetGetRxPckCntFunc); + fofbHwFunc.emplace(P_FofbCtrlTxPckCnt, fofbCtrlSetGetTxPckCntFunc); + fofbHwFunc.emplace(P_FofbCtrlFodProcessTime, fofbCtrlSetGetFodProcessTimeFunc); + fofbHwFunc.emplace(P_FofbCtrlBpmCnt, fofbCtrlSetGetBpmCntFunc); + fofbHwFunc.emplace(P_FofbCtrlBpmIdRdback, fofbCtrlSetGetBpmIdRdbackFunc); + fofbHwFunc.emplace(P_FofbCtrlTfLengthRdback, fofbCtrlSetGetTfLengthRdbackFunc); + fofbHwFunc.emplace(P_FofbCtrlPowerdownRdback, fofbCtrlSetGetPowerdownRdbackFunc); + fofbHwFunc.emplace(P_FofbCtrlLoopbackRdback, fofbCtrlSetGetLoopbackRdbackFunc); + fofbHwFunc.emplace(P_FofbCtrlFaivalRdback, fofbCtrlSetGetFaivalRdbackFunc); + fofbHwFunc.emplace(P_FofbCtrlToaRdEn, fofbCtrlSetGetToaRdEnFunc); + fofbHwFunc.emplace(P_FofbCtrlToaRdStr, fofbCtrlSetGetToaRdStrFunc); + fofbHwFunc.emplace(P_FofbCtrlToaData, fofbCtrlSetGetToaDataFunc); + fofbHwFunc.emplace(P_FofbCtrlRcbRdEn, fofbCtrlSetGetRcbRdEnFunc); + fofbHwFunc.emplace(P_FofbCtrlRcbRdStr, fofbCtrlSetGetRcbRdStrFunc); + fofbHwFunc.emplace(P_FofbCtrlRcbData, fofbCtrlSetGetRcbDataFunc); lock(); status = fofbClientConnect(this->pasynUserSelf); @@ -304,6 +455,44 @@ drvFOFB::drvFOFB(const char *portName, const char *endpoint, int fofbNumber, setUIntDigitalParam(P_RtmLampPISP, 0, 0xFFFFFFFF); setUIntDigitalParam(P_RtmLampPIOLDacCntMax, 0, 0xFFFFFFFF); setUIntDigitalParam(P_RtmLampPISPLimInf, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlActPart, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlErrClr, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlCcEnable, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTfsOverride, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlBpmId, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTimeFrameLen, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlMgtPowerdown, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlMgtLoopback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTimeFrameDly, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlGoldenOrbX, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlGoldenOrbY, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlCustFeature, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlRxPolarity, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlPayloadsel, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlFofbdatasel, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlFirmwareVer, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlSysStatus, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlLinkPartner, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlLinkUp, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTimeFrameCount, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlHardErrCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlSoftErrCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlFrameErrCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlRxPckCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTxPckCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlFodProcessTime, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlBpmCnt, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlBpmIdRdback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlTfLengthRdback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlPowerdownRdback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlLoopbackRdback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlFaivalRdback, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlToaRdEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlToaRdStr, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlToaData, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlRcbRdEn, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlRcbRdStr, 0, 0xFFFFFFFF); + setUIntDigitalParam(P_FofbCtrlRcbData, 0, 0xFFFFFFFF); /* Do callbacks so higher layers see any changes. Call callbacks for every addr */ for (int i = 0; i < MAX_ADDR; ++i) { diff --git a/FOFBApp/src/drvFOFB.h b/FOFBApp/src/drvFOFB.h index a4fe647..29122b8 100644 --- a/FOFBApp/src/drvFOFB.h +++ b/FOFBApp/src/drvFOFB.h @@ -180,6 +180,44 @@ struct functionsAny_t { #define P_RtmLampPISPString "RTMLAMP_OHWR_CH_0_PI_SP_DATA" /* asynUInt32Digital, r/w */ #define P_RtmLampPIOLDacCntMaxString "RTMLAMP_OHWR_PI_OL_DAC_CNT_MAX_DATA" /* asynUInt32Digital, r/w */ #define P_RtmLampPISPLimInfString "RTMLAMP_OHWR_PI_SP_LIM_INF_DATA" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlActPartString "FOFB_CC_CFG_VAL_ACT_PART" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlErrClrString "FOFB_CC_CFG_VAL_ERR_CLR" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlCcEnableString "FOFB_CC_CFG_VAL_CC_ENABLE" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlTfsOverrideString "FOFB_CC_CFG_VAL_TFS_OVERRIDE" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlBpmIdString "FOFB_CC_BPM_ID" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlTimeFrameLenString "FOFB_CC_TIME_FRAME_LEN" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlMgtPowerdownString "FOFB_CC_MGT_POWERDOWN" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlMgtLoopbackString "FOFB_CC_MGT_LOOPBACK" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlTimeFrameDlyString "FOFB_CC_TIME_FRAME_DLY" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlGoldenOrbXString "FOFB_CC_GOLDEN_ORB_X" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlGoldenOrbYString "FOFB_CC_GOLDEN_ORB_Y" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlCustFeatureString "FOFB_CC_CUST_FEATURE" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlRxPolarityString "FOFB_CC_RXPOLARITY" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlPayloadselString "FOFB_CC_PAYLOADSEL" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlFofbdataselString "FOFB_CC_FOFBDATASEL" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlFirmwareVerString "FOFB_CC_FIRMWARE_VER" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlSysStatusString "FOFB_CC_SYS_STATUS" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlLinkPartnerString "FOFB_CC_LINK_PARTNER_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlLinkUpString "FOFB_CC_LINK_UP" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlTimeFrameCountString "FOFB_CC_TIME_FRAME_COUNT" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlHardErrCntString "FOFB_CC_HARD_ERR_CNT_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlSoftErrCntString "FOFB_CC_SOFT_ERR_CNT_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlFrameErrCntString "FOFB_CC_FRAME_ERR_CNT_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlRxPckCntString "FOFB_CC_RX_PCK_CNT_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlTxPckCntString "FOFB_CC_TX_PCK_CNT_1" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlFodProcessTimeString "FOFB_CC_FOD_PROCESS_TIME" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlBpmCntString "FOFB_CC_BPM_COUNT" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlBpmIdRdbackString "FOFB_CC_BPM_ID_RDBACK" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlTfLengthRdbackString "FOFB_CC_TF_LENGTH_RDBACK" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlPowerdownRdbackString "FOFB_CC_POWERDOWN_RDBACK" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlLoopbackRdbackString "FOFB_CC_LOOPBACK_RDBACK" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlFaivalRdbackString "FOFB_CC_FAIVAL_RDBACK" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlToaRdEnString "FOFB_CC_TOA_CTL_RD_EN" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlToaRdStrString "FOFB_CC_TOA_CTL_RD_STR" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlToaDataString "FOFB_CC_TOA_DATA_VAL" /* asynUInt32Digital, r/o */ +#define P_FofbCtrlRcbRdEnString "FOFB_CC_RCB_CTL_RD_EN" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlRcbRdStrString "FOFB_CC_RCB_CTL_RD_STR" /* asynUInt32Digital, r/w */ +#define P_FofbCtrlRcbDataString "FOFB_CC_RCB_DATA_VAL" /* asynUInt32Digital, r/o */ class drvFOFB : public asynPortDriver { public: @@ -265,7 +303,45 @@ class drvFOFB : public asynPortDriver { int P_RtmLampPISP; int P_RtmLampPIOLDacCntMax; int P_RtmLampPISPLimInf; -#define LAST_COMMAND P_RtmLampPISPLimInf + int P_FofbCtrlActPart; + int P_FofbCtrlErrClr; + int P_FofbCtrlCcEnable; + int P_FofbCtrlTfsOverride; + int P_FofbCtrlBpmId; + int P_FofbCtrlTimeFrameLen; + int P_FofbCtrlMgtPowerdown; + int P_FofbCtrlMgtLoopback; + int P_FofbCtrlTimeFrameDly; + int P_FofbCtrlGoldenOrbX; + int P_FofbCtrlGoldenOrbY; + int P_FofbCtrlCustFeature; + int P_FofbCtrlRxPolarity; + int P_FofbCtrlPayloadsel; + int P_FofbCtrlFofbdatasel; + int P_FofbCtrlFirmwareVer; + int P_FofbCtrlSysStatus; + int P_FofbCtrlLinkPartner; + int P_FofbCtrlLinkUp; + int P_FofbCtrlTimeFrameCount; + int P_FofbCtrlHardErrCnt; + int P_FofbCtrlSoftErrCnt; + int P_FofbCtrlFrameErrCnt; + int P_FofbCtrlRxPckCnt; + int P_FofbCtrlTxPckCnt; + int P_FofbCtrlFodProcessTime; + int P_FofbCtrlBpmCnt; + int P_FofbCtrlBpmIdRdback; + int P_FofbCtrlTfLengthRdback; + int P_FofbCtrlPowerdownRdback; + int P_FofbCtrlLoopbackRdback; + int P_FofbCtrlFaivalRdback; + int P_FofbCtrlToaRdEn; + int P_FofbCtrlToaRdStr; + int P_FofbCtrlToaData; + int P_FofbCtrlRcbRdEn; + int P_FofbCtrlRcbRdStr; + int P_FofbCtrlRcbData; +#define LAST_COMMAND P_FofbCtrlRcbData private: /* Our data */ From b07b718fdc726e72fc6a7d78527330994475e5df Mon Sep 17 00:00:00 2001 From: Melissa Aguiar Date: Thu, 9 Dec 2021 12:24:38 -0300 Subject: [PATCH 4/5] FOFBApp/src: update fofb_ctrl functions --- FOFBApp/src/drvFOFB.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FOFBApp/src/drvFOFB.cpp b/FOFBApp/src/drvFOFB.cpp index 7c290f4..ca4e3c4 100644 --- a/FOFBApp/src/drvFOFB.cpp +++ b/FOFBApp/src/drvFOFB.cpp @@ -64,7 +64,7 @@ static const functionsAny_t fofbProcessingSetGetRamDataInFunc = {functio halcs_get_fofb_processing_ram_data_in}}; static const functionsAny_t fofbProcessingSetGetRamDataOutFunc = {functionsUInt32_t{"FOFB_PROCESSING", NULL, halcs_get_fofb_processing_ram_data_out}}; -static const functionsAny_t rtmLampOhwrSetGetStatusFunc = {functionsUInt32_t{"RTMLAMP_OHWR", NULL , +static const functionsAny_t rtmLampSetGetStatusFunc = {functionsUInt32_t{"RTMLAMP_OHWR", NULL , halcs_get_rtmlamp_ohwr_sta}}; static const functionsAny_t rtmLampSetGetDacDataFromWbFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_dac_data_from_wb, halcs_get_rtmlamp_ohwr_dac_data_from_wb}}; @@ -105,7 +105,7 @@ static const functionsAny_t fofbCtrlSetGetActPartFunc = {functio static const functionsAny_t fofbCtrlSetGeErrClrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_err_clr, halcs_get_fofb_ctrl_err_clr}}; static const functionsAny_t fofbCtrlSetGetCcEnableFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_cc_enable, - fofb_ctrl_cc_enable}}; + halcs_get_fofb_ctrl_cc_enable}}; static const functionsAny_t fofbCtrlSetGetTfsOverrideFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_tfs_override, halcs_get_fofb_ctrl_tfs_override}}; static const functionsAny_t fofbCtrlSetGetBpmIdFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_bpm_id, @@ -379,7 +379,7 @@ drvFOFB::drvFOFB(const char *portName, const char *endpoint, int fofbNumber, fofbHwFunc.emplace(P_RtmLampPIOLDacCntMax, rtmLampSetGetPIOLDacCntMaxFunc); fofbHwFunc.emplace(P_RtmLampPISPLimInf, rtmLampSetGetPISPLimInfFunc); fofbHwFunc.emplace(P_FofbCtrlActPart, fofbCtrlSetGetActPartFunc); - fofbHwFunc.emplace(P_FofbCtrlErrClr, fofbCtrlSetGeFofbCtrlErrClrFunc); + fofbHwFunc.emplace(P_FofbCtrlErrClr, fofbCtrlSetGeErrClrFunc); fofbHwFunc.emplace(P_FofbCtrlCcEnable, fofbCtrlSetGetCcEnableFunc); fofbHwFunc.emplace(P_FofbCtrlTfsOverride, fofbCtrlSetGetTfsOverrideFunc); fofbHwFunc.emplace(P_FofbCtrlBpmId, fofbCtrlSetGetBpmIdFunc); From 512f8650bac0f93a023728991e255a94c6475bb0 Mon Sep 17 00:00:00 2001 From: Melissa Aguiar Date: Thu, 9 Dec 2021 13:52:58 -0300 Subject: [PATCH 5/5] FOFBApp/src: fix fofb_ctrl SDB name in function arguments --- FOFBApp/src/drvFOFB.cpp | 76 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/FOFBApp/src/drvFOFB.cpp b/FOFBApp/src/drvFOFB.cpp index ca4e3c4..4f88778 100644 --- a/FOFBApp/src/drvFOFB.cpp +++ b/FOFBApp/src/drvFOFB.cpp @@ -100,81 +100,81 @@ static const functionsAny_t rtmLampSetGetPIOLDacCntMaxFunc = {functio halcs_get_rtmlamp_ohwr_pi_ol_dac_cnt_max}}; static const functionsAny_t rtmLampSetGetPISPLimInfFunc = {functionsUInt32_t{"RTMLAMP_OHWR", halcs_set_rtmlamp_ohwr_pi_sp_lim_inf, halcs_get_rtmlamp_ohwr_pi_sp_lim_inf}}; -static const functionsAny_t fofbCtrlSetGetActPartFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_act_part, +static const functionsAny_t fofbCtrlSetGetActPartFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_act_part, halcs_get_fofb_ctrl_act_part}}; -static const functionsAny_t fofbCtrlSetGeErrClrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_err_clr, +static const functionsAny_t fofbCtrlSetGeErrClrFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_err_clr, halcs_get_fofb_ctrl_err_clr}}; -static const functionsAny_t fofbCtrlSetGetCcEnableFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_cc_enable, +static const functionsAny_t fofbCtrlSetGetCcEnableFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_cc_enable, halcs_get_fofb_ctrl_cc_enable}}; -static const functionsAny_t fofbCtrlSetGetTfsOverrideFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_tfs_override, +static const functionsAny_t fofbCtrlSetGetTfsOverrideFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_tfs_override, halcs_get_fofb_ctrl_tfs_override}}; -static const functionsAny_t fofbCtrlSetGetBpmIdFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_bpm_id, +static const functionsAny_t fofbCtrlSetGetBpmIdFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_bpm_id, halcs_get_fofb_ctrl_bpm_id}}; -static const functionsAny_t fofbCtrlSetGetTimeFrameLenFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_time_frame_len, +static const functionsAny_t fofbCtrlSetGetTimeFrameLenFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_time_frame_len, halcs_get_fofb_ctrl_time_frame_len}}; -static const functionsAny_t fofbCtrlSetGetMgtPowerdownFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_mgt_powerdown, +static const functionsAny_t fofbCtrlSetGetMgtPowerdownFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_mgt_powerdown, halcs_get_fofb_ctrl_mgt_powerdown}}; -static const functionsAny_t fofbCtrlSetGetMgtLoopbackFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_mgt_loopback, +static const functionsAny_t fofbCtrlSetGetMgtLoopbackFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_mgt_loopback, halcs_get_fofb_ctrl_mgt_loopback}}; -static const functionsAny_t fofbCtrlSetGetTimeFrameDlyFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_time_frame_dly, +static const functionsAny_t fofbCtrlSetGetTimeFrameDlyFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_time_frame_dly, halcs_get_fofb_ctrl_time_frame_dly}}; -static const functionsAny_t fofbCtrlSetGetGoldenOrbXFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_golden_orb_x, +static const functionsAny_t fofbCtrlSetGetGoldenOrbXFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_golden_orb_x, halcs_get_fofb_ctrl_golden_orb_x}}; -static const functionsAny_t fofbCtrlSetGetGoldenOrbYFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_golden_orb_y, +static const functionsAny_t fofbCtrlSetGetGoldenOrbYFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_golden_orb_y, halcs_get_fofb_ctrl_golden_orb_y}}; -static const functionsAny_t fofbCtrlSetGetCustFeatureFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_cust_feature, +static const functionsAny_t fofbCtrlSetGetCustFeatureFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_cust_feature, halcs_get_fofb_ctrl_cust_feature}}; -static const functionsAny_t fofbCtrlSetGetRxPolarityFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rx_polarity, +static const functionsAny_t fofbCtrlSetGetRxPolarityFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_rx_polarity, halcs_get_fofb_ctrl_rx_polarity}}; -static const functionsAny_t fofbCtrlSetGetPayloadselFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_payloadsel, +static const functionsAny_t fofbCtrlSetGetPayloadselFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_payloadsel, halcs_get_fofb_ctrl_payloadsel}}; -static const functionsAny_t fofbCtrlSetGetFofbdataselFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_fofbdatasel, +static const functionsAny_t fofbCtrlSetGetFofbdataselFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_fofbdatasel, halcs_get_fofb_ctrl_fofbdatasel}}; -static const functionsAny_t fofbCtrlSetGetFirmwareVerFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetFirmwareVerFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_firmware_ver}}; -static const functionsAny_t fofbCtrlSetGetSysStatusFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetSysStatusFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_sys_status}}; -static const functionsAny_t fofbCtrlSetGetLinkPartnerFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetLinkPartnerFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_link_partner}}; -static const functionsAny_t fofbCtrlSetGetLinkUpFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetLinkUpFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_link_up}}; -static const functionsAny_t fofbCtrlSetGetTimeFrameCountFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetTimeFrameCountFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_time_frame_count}}; -static const functionsAny_t fofbCtrlSetGetHardErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetHardErrCntFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_hard_err_cnt}}; -static const functionsAny_t fofbCtrlSetGetSoftErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetSoftErrCntFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_soft_err_cnt}}; -static const functionsAny_t fofbCtrlSetGetFrameErrCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetFrameErrCntFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_frame_err_cnt}}; -static const functionsAny_t fofbCtrlSetGetRxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetRxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_rx_pck_cnt}}; -static const functionsAny_t fofbCtrlSetGetTxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetTxPckCntFunc = {functionsUInt32Chan_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_tx_pck_cnt}}; -static const functionsAny_t fofbCtrlSetGetFodProcessTimeFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetFodProcessTimeFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_fod_process_time}}; -static const functionsAny_t fofbCtrlSetGetBpmCntFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetBpmCntFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_bpm_count}}; -static const functionsAny_t fofbCtrlSetGetBpmIdRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetBpmIdRdbackFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_bpm_id_rdback}}; -static const functionsAny_t fofbCtrlSetGetTfLengthRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetTfLengthRdbackFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_tf_length_rdback}}; -static const functionsAny_t fofbCtrlSetGetPowerdownRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetPowerdownRdbackFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_powerdown_rdback}}; -static const functionsAny_t fofbCtrlSetGetLoopbackRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetLoopbackRdbackFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_loopback_rdback}}; -static const functionsAny_t fofbCtrlSetGetFaivalRdbackFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetFaivalRdbackFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_faival_rdback}}; -static const functionsAny_t fofbCtrlSetGetToaRdEnFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_toa_rd_en, +static const functionsAny_t fofbCtrlSetGetToaRdEnFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_toa_rd_en, halcs_get_fofb_ctrl_toa_rd_en}}; -static const functionsAny_t fofbCtrlSetGetToaRdStrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_toa_rd_str, +static const functionsAny_t fofbCtrlSetGetToaRdStrFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_toa_rd_str, halcs_get_fofb_ctrl_toa_rd_str}}; -static const functionsAny_t fofbCtrlSetGetToaDataFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetToaDataFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_toa_data}}; -static const functionsAny_t fofbCtrlSetGetRcbRdEnFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rcb_rd_en, +static const functionsAny_t fofbCtrlSetGetRcbRdEnFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_rcb_rd_en, halcs_get_fofb_ctrl_rcb_rd_en}}; -static const functionsAny_t fofbCtrlSetGetRcbRdStrFunc = {functionsUInt32_t{"FOFB_CC", halcs_set_fofb_ctrl_rcb_rd_str, +static const functionsAny_t fofbCtrlSetGetRcbRdStrFunc = {functionsUInt32_t{"FOFB_CTRL", halcs_set_fofb_ctrl_rcb_rd_str, halcs_get_fofb_ctrl_rcb_rd_str}}; -static const functionsAny_t fofbCtrlSetGetRcbDataFunc = {functionsUInt32_t{"FOFB_CC", NULL, +static const functionsAny_t fofbCtrlSetGetRcbDataFunc = {functionsUInt32_t{"FOFB_CTRL", NULL, halcs_get_fofb_ctrl_rcb_data}}; static const char *driverName="drvFOFB";