/****************************************************************************** * * Title : primFunc_moduleMask.c * Version 0.0, * * Description: Module mask control primitive function. * Related files: * * Author: Lukas Tomasek, tomasekl@fzu.cz * ******************************************************************************/ /****************************************************************************** * Header files * ******************************************************************************/ #include #include "primFunc_moduleMask.h" #include "globalDefinitions.h" #include "uirUtility.h" #include "primParamsUir.h" #include "mainUir.h" #include #include "primFunctionInit.h" /****************************************************************************** * Global functions * ******************************************************************************/ /*============================================================================= * primFunction_moduleMask() *============================================================================= * * * */ ERROR_ID primFunction_moduleMask(PRIM_FUNC_OPTION funcOption, struct PRIM_TABLE *primTable, void *primitive, UINT32 inputParameter, UINT8 slotNumber){ FILE *file; struct MSG_HEAD* primHeader=(struct MSG_HEAD*) primitive; UINT32 *primDataPtr=(UINT32*)((UINT32)primHeader+sizeof(struct MSG_HEAD)); ERROR_ID errorId=SUCCESS; char errorMessage[200]; int status; UINT32 primBodyLength; UINT32 primitiveId; struct MODULE_MASK_IN *moduleMask=&primTable->params.moduleMask; const int panel=global.panel.primEdit[getPrimArrayId(MODULE_MASK)]; UINT32 i; UINT32 dataLength; char textMessage[200]; char errorText[100]; UINT32 listIndex; int ringIndex; char str[300]; int slave; UINT8 xd[]= {0,0}; if(R_MODULE_MASK!=R_MODULE_MASK_HOST){ ERROR_CHECK(PROGRAM_ERROR, primitive MODULE_MASK - wrong revision number); return(PROGRAM_ERROR); } switch(funcOption){ case PRIM_PANEL_TO_TABLE: moduleMask->slvBits=0; GetCtrlVal(panel, MDL_MASKP_SLV0, &slave); if(slave) SET_BIT(moduleMask->slvBits, 0); GetCtrlVal(panel, MDL_MASKP_SLV1, &slave); if(slave) SET_BIT(moduleMask->slvBits, 1); GetCtrlVal(panel, MDL_MASKP_SLV2, &slave); if(slave) SET_BIT(moduleMask->slvBits, 2); GetCtrlVal(panel, MDL_MASKP_SLV3, &slave); if(slave) SET_BIT(moduleMask->slvBits, 3); GetCtrlVal(panel, MDL_MASKP_MODULE_NUM, &moduleMask->moduleNum); GetCtrlVal(panel, MDL_MASKP_PORT, &moduleMask->port); GetCtrlVal(panel, MDL_MASKP_USE_SET, &moduleMask->useStructSet); GetCtrlVal(panel, MDL_MASKP_PASS, &moduleMask->passOn); GetCtrlVal(panel, MDL_MASKP_CMD_LINE, &moduleMask->cmdLine); GetCtrlVal(panel, MDL_MASKP_DATA_LINE0, &moduleMask->dataLine[0]); GetCtrlVal(panel, MDL_MASKP_DATA_LINE1, &moduleMask->dataLine[1]); //dpsf GetCtrlVal(panel, MDL_MASKP_DATA_LINE0, &moduleMask->fmtLink[0]); //dpsf GetCtrlVal(panel, MDL_MASKP_DATA_LINE1, &moduleMask->fmtLink[1]); GetCtrlVal(panel, MDL_MASKP_CFG, &moduleMask->cfg); GetCtrlVal(panel, MDL_MASKP_MASK0, &moduleMask->modMask[0]); GetCtrlVal(panel, MDL_MASKP_MASK1, &moduleMask->modMask[1]); GetCtrlVal(panel, MDL_MASKP_MASK_TYPE, &moduleMask->maskType); GetCtrlVal(panel, MDL_MASKP_STORAGE, &moduleMask->storage); GetCtrlVal(panel, MDL_MASKP_MASK_SET, &moduleMask->maskSet); /* NO BREAK HERE!!!*/ case PRIM_PARAMS_TO_TABLE: /* add table headers - don't set indexes!!! */ primTable->inPrimHeader.length=SIZEOF(struct MODULE_MASK_IN)+SIZEOF(struct MSG_HEAD); primTable->inPrimHeader.id=MODULE_MASK; primTable->inPrimHeader.primRevision=R_MODULE_MASK; primTable->replyLength=0; break; case PRIM_TABLE_TO_PANEL: if(primTable->inPrimHeader.primRevision!=R_MODULE_MASK){ ERROR_CHECK(PROGRAM_ERROR, primitive MODULE_MASK - wrong revision number); return(PROGRAM_ERROR); } SetCtrlVal(panel, MDL_MASKP_SLV0, READ_BIT(moduleMask->slvBits, 0)); SetCtrlVal(panel, MDL_MASKP_SLV1, READ_BIT(moduleMask->slvBits, 1)); SetCtrlVal(panel, MDL_MASKP_SLV2, READ_BIT(moduleMask->slvBits, 2)); SetCtrlVal(panel, MDL_MASKP_SLV3, READ_BIT(moduleMask->slvBits, 3)); SetCtrlVal(panel, MDL_MASKP_MODULE_NUM, moduleMask->moduleNum); SetCtrlVal(panel, MDL_MASKP_PORT, moduleMask->port); SetCtrlVal(panel, MDL_MASKP_USE_SET, moduleMask->useStructSet); SetCtrlVal(panel, MDL_MASKP_PASS, moduleMask->passOn); SetCtrlVal(panel, MDL_MASKP_CMD_LINE, moduleMask->cmdLine); SetCtrlVal(panel, MDL_MASKP_DATA_LINE0, moduleMask->dataLine[0]); SetCtrlVal(panel, MDL_MASKP_DATA_LINE1, moduleMask->dataLine[1]); //dpsf SetCtrlVal(panel, MDL_MASKP_DATA_LINE0, moduleMask->fmtLink[0]); //dpsf SetCtrlVal(panel, MDL_MASKP_DATA_LINE1, moduleMask->fmtLink[1]); SetCtrlVal(panel, MDL_MASKP_CFG, moduleMask->cfg); SetCtrlVal(panel, MDL_MASKP_MASK0, moduleMask->modMask[0]); SetCtrlVal(panel, MDL_MASKP_MASK1, moduleMask->modMask[1]); SetCtrlVal(panel, MDL_MASKP_MASK_TYPE, moduleMask->maskType); SetCtrlVal(panel, MDL_MASKP_STORAGE, moduleMask->storage); SetCtrlVal(panel, MDL_MASKP_MASK_SET, moduleMask->maskSet); SetInputMode(panel, MDL_MASKP_SLV0, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_SLV1, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_SLV2, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_SLV3, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_MODULE_NUM, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_USE_SET, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_PASS, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_CMD_LINE, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_DATA_LINE0, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_DATA_LINE1, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_DATA_LINE2, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_DATA_LINE3, !moduleMask->cfg); SetInputMode(panel, MDL_MASKP_MASK0, moduleMask->cfg); SetInputMode(panel, MDL_MASKP_MASK1, moduleMask->cfg); SetInputMode(panel, MDL_MASKP_MASK_TYPE, moduleMask->cfg); SetInputMode(panel, MDL_MASKP_STORAGE, moduleMask->cfg); SetInputMode(panel, MDL_MASKP_MASK_SET, moduleMask->cfg); break; case PRIM_BUILD: /* copy data */ *(struct MODULE_MASK_IN*)(primDataPtr)=*moduleMask; break; case REP_DATA_PROCESS: /* no reply */ break; case WRITE_TO_FILE: file=(FILE*)inputParameter; fprintf(file, "moduleNum= %d, port= %d, useStructSet= %d, passOn= %d, slvBits= %d\n", moduleMask->moduleNum, moduleMask->port, moduleMask->useStructSet, moduleMask->passOn, moduleMask->slvBits); fprintf(file, "cmdLine= 0x%X, dataLine={ 0x%X, 0x%X, 0x%X, 0x%X }\n", moduleMask->cmdLine, moduleMask->dataLine[0], moduleMask->dataLine[1], xd[0], xd[1]); //dpsf moduleMask->cmdLine, moduleMask->fmtLink[0], moduleMask->fmtLink[1], xd[0], xd[1]); fprintf(file, "cfg= %d, modMask={ 0x%X, 0x%X }, maskType= 0x%X, storage= %d, maskSet= %d\n", moduleMask->cfg, moduleMask->modMask[0], moduleMask->modMask[1], moduleMask->maskType, moduleMask->storage, moduleMask->maskSet); break; case READ_FROM_FILE: file=(FILE*)inputParameter; status=fscanf(file, "moduleNum= %d, port= %d, useStructSet= %d, passOn= %d, slvBits= %d\n", &moduleMask->moduleNum, &moduleMask->port, &moduleMask->useStructSet, &moduleMask->passOn, &moduleMask->slvBits); if(status==-1) {ERROR_CHECK(FATAL_ERROR, Read from prim file error!); return(FATAL_ERROR);} status=fscanf(file, "cmdLine= 0x%X, dataLine={ 0x%X, 0x%X, 0x%X, 0x%X }\n", &moduleMask->cmdLine, &moduleMask->dataLine[0], &moduleMask->dataLine[1], &xd[0], &xd[1]); //dpsf &moduleMask->cmdLine, &moduleMask->fmtLink[0], &moduleMask->fmtLink[1], &xd[0], &xd[1]); if(status==-1) {ERROR_CHECK(FATAL_ERROR, Read from prim file error!); return(FATAL_ERROR);} status=fscanf(file, "cfg= %d, modMask={ 0x%X, 0x%X }, maskType= 0x%X, storage= %d, maskSet= %d\n", &moduleMask->cfg, &moduleMask->modMask[0], &moduleMask->modMask[1], &moduleMask->maskType, &moduleMask->storage, &moduleMask->maskSet); if(status==-1) {ERROR_CHECK(FATAL_ERROR, Read from prim file error!); return(FATAL_ERROR);} break; default: ;//error } return(SUCCESS); } /******************************************************************************/