/****************************************************************************** * * Title : primFunc_sendStream.c * Version 0.0, * * Description: * Related files: * * Author: Lukas Tomasek, tomasekl@fzu.cz * ******************************************************************************/ /****************************************************************************** * Header files * ******************************************************************************/ #include #include "primFunc_sendStream.h" #include "globalDefinitions.h" #include "uirUtility.h" #include "primParamsUir.h" #include "mainUir.h" #include #include "primFunctionInit.h" /****************************************************************************** * Global functions * ******************************************************************************/ /*============================================================================= * primFunction_sendStream() *============================================================================= * * * */ ERROR_ID primFunction_sendStream(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; struct SEND_STREAM_IN *sendStream=&primTable->params.sendStream; const int panel=global.panel.primEdit[getPrimArrayId(SEND_STREAM)]; if(R_SEND_STREAM!=R_SEND_STREAM_HOST){ ERROR_CHECK(PROGRAM_ERROR, primitive SEND_STREAM - wrong revision number); return(PROGRAM_ERROR); } switch(funcOption){ case PRIM_PANEL_TO_TABLE: GetCtrlVal(panel, SEND_STRM_CMD_BUFF, &sendStream->port); GetCtrlVal(panel, SEND_STRM_CAP_SER_ON, &sendStream->captureSerOn); /* NO BREAK HERE!!!*/ case PRIM_PARAMS_TO_TABLE: /* add table headers - don't set indexes!!! */ primTable->inPrimHeader.length=SIZEOF(struct SEND_STREAM_IN)+SIZEOF(struct MSG_HEAD); primTable->inPrimHeader.id=SEND_STREAM; primTable->inPrimHeader.primRevision=R_SEND_STREAM; primTable->replyLength=0; /* no reply */ break; case PRIM_TABLE_TO_PANEL: if(primTable->inPrimHeader.primRevision!=R_SEND_STREAM){ ERROR_CHECK(PROGRAM_ERROR, primitive SEND_STREAM - wrong revision number); return(PROGRAM_ERROR); } SetCtrlVal(panel, SEND_STRM_CMD_BUFF, sendStream->port); SetCtrlVal(panel, SEND_STRM_CAP_SER_ON, sendStream->captureSerOn); break; case PRIM_BUILD: /* copy data */ *(struct SEND_STREAM_IN*)(primDataPtr)=*sendStream; break; case REP_DATA_PROCESS: /* no reply data */ break; case WRITE_TO_FILE: file=(FILE*)inputParameter; fprintf(file, "port= %d, captureSerOn= %d\n", sendStream->port, sendStream->captureSerOn); break; case READ_FROM_FILE: file=(FILE*)inputParameter; status=fscanf(file, "port= %d, captureSerOn= %d\n", &sendStream->port, &sendStream->captureSerOn); if(status==-1) {ERROR_CHECK(FATAL_ERROR, Read from prim file error!); return(FATAL_ERROR);} break; default: ;//error } return(SUCCESS); } /******************************************************************************/