⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icta_var.c

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 C
📖 第 1 页 / 共 5 页
字号:
      break;    case IC_TYPE_DISCRETE:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeDiscrete));      pstDiscrete = (icTypeDiscrete *)pstVar->varPtr;      *pstDiscrete = 0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeDiscrete));      pstDiscrete = (icTypeDiscrete *)pstVar->extraPtr;      *pstDiscrete = 0;#endif      break;    case IC_TYPE_DISCRETE_Q:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQ));      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->varPtr;      pstDiscreteQ->Flags = 0;      pstDiscreteQ->Value = 0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQ));      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->extraPtr;      pstDiscreteQ->Flags = 0;      pstDiscreteQ->Value = 0;#endif      break;    case IC_TYPE_DISCRETE_Q_TIME_TAG:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQTimeTag));      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->varPtr;      pstDiscreteQTimeTag->Flags = 0;      pstDiscreteQTimeTag->Value = 0;      pstDiscreteQTimeTag->TimeStamp = time(NULL);#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQTimeTag));      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->extraPtr;      pstDiscreteQTimeTag->Flags = 0;      pstDiscreteQTimeTag->Value = 0;      pstDiscreteQTimeTag->TimeStamp = time(NULL);#endif      break;    case IC_TYPE_DISCRETE_Q_EXTENDED:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQExtended));      pstDiscreteQExt = (icTypeDiscreteQExtended *)pstVar->varPtr;      pstDiscreteQExt->Flags = 0;      pstDiscreteQExt->Value = 0;      pstDiscreteQExt->TimeStamp = time(NULL);      pstDiscreteQExt->COVCount = 0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeDiscreteQExtended));      pstDiscreteQExt = (icTypeDiscreteQExtended *)pstVar->extraPtr;      pstDiscreteQExt->Flags = 0;      pstDiscreteQExt->Value = 0;      pstDiscreteQExt->TimeStamp = time(NULL);      pstDiscreteQExt->COVCount = 0;#endif      break;    case IC_TYPE_REAL:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeReal));      pstReal = (icTypeReal *)pstVar->varPtr;      *pstReal = (float) 0.0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeReal));      pstReal = (icTypeReal *)pstVar->extraPtr;      *pstReal = (float) 0.0;#endif      break;    case IC_TYPE_REAL_Q:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeRealQ));      pstRealQ = (icTypeRealQ *)pstVar->varPtr;      pstRealQ->Flags = 0;      pstRealQ->Value = (float) 0.0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeRealQ));      pstRealQ = (icTypeRealQ *)pstVar->extraPtr;      pstRealQ->Flags = 0;      pstRealQ->Value = (float) 0.0;#endif      break;    case IC_TYPE_REAL_Q_TIME_TAG:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeRealQTimeTag));      pstRealQTimeTag = (icTypeRealQTimeTag *)pstVar->varPtr;      pstRealQTimeTag->Flags = 0;      pstRealQTimeTag->Value = (float) 0.0;      pstRealQTimeTag->TimeStamp = time(NULL);#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeRealQTimeTag));      pstRealQTimeTag = (icTypeRealQTimeTag *)pstVar->extraPtr;      pstRealQTimeTag->Flags = 0;      pstRealQTimeTag->Value = (float) 0.0;      pstRealQTimeTag->TimeStamp = time(NULL);#endif      break;    case IC_TYPE_REAL_EXTENDED:      pstVar->varPtr = (void *) chk_calloc(1, sizeof(icTypeRealExtended));      pstRealExt = (icTypeRealExtended *)pstVar->varPtr;      pstRealExt->Flags = 0;      pstRealExt->Value = (float) 0.0;      pstRealExt->TimeStamp = time(NULL);      pstRealExt->COVCount = 0;#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, sizeof(icTypeRealExtended));      pstRealExt = (icTypeRealExtended *)pstVar->extraPtr;      pstRealExt->Flags = 0;      pstRealExt->Value = (float) 0.0;      pstRealExt->TimeStamp = time(NULL);      pstRealExt->COVCount = 0;#endif      break;    case IC_TYPE_USER_DEFINED:      /* find out how much space we need				*/      pstNamedType = (NAMED_TYPE*)(pstVar->pstType->typeId);      pstVar->varPtr = (void *) chk_calloc(1, pstNamedType->blocked_len);#ifdef SISCO_THREADS      pstVar->extraPtr = (void *) chk_calloc(1, pstNamedType->blocked_len);#endif      break;    default:      ICA_Log_Err2("Init Variable %s Failed - Invalid Type %d",		   pstVar->varName, pstVar->iccpType);      break;    }  }/************************************************************************//* updateData:  stash newData into pstVar				*//*		only works for standard data types - not user types	*//************************************************************************/static ST_VOID updateData(ICTA_VAR_INFO *pstVar, char *newData, 			  ST_UCHAR *flagData)  {icTypeState         	*pstState;icTypeStateQ 	    	*pstStateQ;icTypeStateQTimeTag 	*pstStateQTimeTag;icTypeStateExtended 	*pstStateExt;icTypeDiscrete      	*pstDiscrete;icTypeDiscreteQ	    	*pstDiscreteQ;icTypeDiscreteQTimeTag	*pstDiscreteQTimeTag;icTypeDiscreteQExtended *pstDiscreteQExt;icTypeReal		*pstReal;icTypeRealQ         	*pstRealQ;icTypeRealQTimeTag	*pstRealQTimeTag;icTypeRealExtended  	*pstRealExt;  if (pstVar->bUserType)    {    ICA_Log_Err0("Unable to Update Data for variables with user defined types!!!!");    return;    }  switch (pstVar->iccpType)    {    case IC_TYPE_STATE:      pstState = (icTypeState *)pstVar->varPtr;      *pstState = (icTypeState)flagData[0];#ifdef SISCO_THREADS      pstState = (icTypeState *)pstVar->extraPtr;      *pstState = (icTypeState)flagData[0];#endif      break;    case IC_TYPE_STATE_Q:      pstStateQ = (icTypeStateQ *)pstVar->varPtr;      *pstStateQ = flagData[0];#ifdef SISCO_THREADS      pstStateQ = (icTypeStateQ *)pstVar->extraPtr;      *pstStateQ = flagData[0];#endif      break;    case IC_TYPE_STATE_Q_TIME_TAG:      pstStateQTimeTag = (icTypeStateQTimeTag *)pstVar->varPtr;      pstStateQTimeTag->TimeStamp = time(NULL);      pstStateQTimeTag->Flags = flagData[0];#ifdef SISCO_THREADS      pstStateQTimeTag = (icTypeStateQTimeTag *)pstVar->extraPtr;      pstStateQTimeTag->TimeStamp = time(NULL);      pstStateQTimeTag->Flags = flagData[0];#endif      break;    case IC_TYPE_STATE_EXTENDED:      pstStateExt = (icTypeStateExtended *)pstVar->varPtr;      pstStateExt->Flags = flagData[0];      pstStateExt->TimeStamp = time(NULL);      pstStateExt->COVCount++;#ifdef SISCO_THREADS      pstStateExt = (icTypeStateExtended *)pstVar->extraPtr;      pstStateExt->Flags = flagData[0];      pstStateExt->TimeStamp = time(NULL);      pstStateExt->COVCount++;#endif      break;    case IC_TYPE_DISCRETE:      pstDiscrete = (icTypeDiscrete *)pstVar->varPtr;      *pstDiscrete = atol(newData);#ifdef SISCO_THREADS      pstDiscrete = (icTypeDiscrete *)pstVar->extraPtr;      *pstDiscrete = atol(newData);#endif      break;    case IC_TYPE_DISCRETE_Q:      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->varPtr;      pstDiscreteQ->Flags = flagData[0];      pstDiscreteQ->Value = atol(newData);#ifdef SISCO_THREADS      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->extraPtr;      pstDiscreteQ->Flags = flagData[0];      pstDiscreteQ->Value = atol(newData);#endif      break;    case IC_TYPE_DISCRETE_Q_TIME_TAG:      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->varPtr;      pstDiscreteQTimeTag->Flags = flagData[0];      pstDiscreteQTimeTag->Value = atol(newData);      pstDiscreteQTimeTag->TimeStamp = time(NULL);#ifdef SISCO_THREADS      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->extraPtr;      pstDiscreteQTimeTag->Flags = flagData[0];      pstDiscreteQTimeTag->Value = atol(newData);      pstDiscreteQTimeTag->TimeStamp = time(NULL);#endif      break;    case IC_TYPE_DISCRETE_Q_EXTENDED:      pstDiscreteQExt = (icTypeDiscreteQExtended *)pstVar->varPtr;      pstDiscreteQExt->Flags = flagData[0];      pstDiscreteQExt->Value = atol(newData);      pstDiscreteQExt->TimeStamp = time(NULL);      pstDiscreteQExt->COVCount++;#ifdef SISCO_THREADS      pstDiscreteQExt = (icTypeDiscreteQExtended *)pstVar->extraPtr;      pstDiscreteQExt->Flags = flagData[0];      pstDiscreteQExt->Value = atol(newData);      pstDiscreteQExt->TimeStamp = time(NULL);      pstDiscreteQExt->COVCount++;#endif      break;    case IC_TYPE_REAL:      pstReal = (icTypeReal *)pstVar->varPtr;      *pstReal = (float) atof(newData);#ifdef SISCO_THREADS      pstReal = (icTypeReal *)pstVar->extraPtr;      *pstReal = (float) atof(newData);#endif      break;    case IC_TYPE_REAL_Q:      pstRealQ = (icTypeRealQ *)pstVar->varPtr;      pstRealQ->Flags = flagData[0];      pstRealQ->Value = (float) atof(newData);#ifdef SISCO_THREADS      pstRealQ = (icTypeRealQ *)pstVar->extraPtr;      pstRealQ->Flags = flagData[0];      pstRealQ->Value = (float) atof(newData);#endif      break;		        case IC_TYPE_REAL_Q_TIME_TAG:      pstRealQTimeTag = (icTypeRealQTimeTag *)pstVar->varPtr;      pstRealQTimeTag->Flags = flagData[0];      pstRealQTimeTag->Value = (float) atof(newData);      pstRealQTimeTag->TimeStamp = time(NULL);#ifdef SISCO_THREADS      pstRealQTimeTag = (icTypeRealQTimeTag *)pstVar->extraPtr;      pstRealQTimeTag->Flags = flagData[0];      pstRealQTimeTag->Value = (float) atof(newData);      pstRealQTimeTag->TimeStamp = time(NULL);#endif      break;    case IC_TYPE_REAL_EXTENDED:      pstRealExt = (icTypeRealExtended *)pstVar->varPtr;      pstRealExt->Flags = flagData[0];      pstRealExt->Value = (float) atof(newData);      pstRealExt->TimeStamp = time(NULL);      pstRealExt->COVCount++;#ifdef SISCO_THREADS      pstRealExt = (icTypeRealExtended *)pstVar->extraPtr;      pstRealExt->Flags = flagData[0];      pstRealExt->Value = (float) atof(newData);      pstRealExt->TimeStamp = time(NULL);      pstRealExt->COVCount++;#endif      break;    default:      ICA_Log_Err2("Update Variable %s Failed - Invalid Type %d",		   pstVar->varName, pstVar->iccpType);      break;    }  }/************************************************************************//* incrementVar: only works for standard data types - not user types	*//************************************************************************/#ifdef TEST_Y2K#define SECS_PER_DAY 86400#define SECS_PER_YEAR SECS_PER_DAY * 365#define TWO_YEARS SECS_PER_YEAR * 2#else#define TWO_YEARS 0#endifST_VOID incrementVar(ICTA_VAR_INFO *pstVar)  {icTypeState         	*pstState;icTypeStateQ 	    	*pstStateQ;icTypeStateQTimeTag 	*pstStateQTimeTag;icTypeStateExtended 	*pstStateExt;icTypeDiscrete      	*pstDiscrete;icTypeDiscreteQ	    	*pstDiscreteQ;icTypeDiscreteQTimeTag	*pstDiscreteQTimeTag;icTypeDiscreteQExtended *pstDiscreteQExt;icTypeReal		*pstReal;icTypeRealQ         	*pstRealQ;icTypeRealQTimeTag	*pstRealQTimeTag;icTypeRealExtended  	*pstRealExt;  if (pstVar->bUserType)    {    ICA_Log_Err0("Unable to Initialize Data for variables with user defined types!!!!");    return;    }  switch (pstVar->iccpType)    {    case IC_TYPE_STATE:      pstState = (icTypeState *)pstVar->varPtr;      incState (pstState);#ifdef SISCO_THREADS      pstState = (icTypeState *)pstVar->extraPtr;      incState (pstState);#endif      break;    case IC_TYPE_STATE_Q:      pstStateQ = (icTypeStateQ *)pstVar->varPtr;      incState (pstStateQ);      incStateFlags (pstStateQ);#ifdef SISCO_THREADS      pstStateQ = (icTypeStateQ *)pstVar->extraPtr;      incState (pstStateQ);      incStateFlags (pstStateQ);#endif      break;    case IC_TYPE_STATE_Q_TIME_TAG:      pstStateQTimeTag = (icTypeStateQTimeTag *)pstVar->varPtr;      pstStateQTimeTag->TimeStamp = time(NULL) + TWO_YEARS;      incState (&pstStateQTimeTag->Flags);      incStateFlags (&pstStateQTimeTag->Flags);#ifdef SISCO_THREADS      pstStateQTimeTag = (icTypeStateQTimeTag *)pstVar->extraPtr;      pstStateQTimeTag->TimeStamp = time(NULL) + TWO_YEARS;      incState (&pstStateQTimeTag->Flags);      incStateFlags (&pstStateQTimeTag->Flags);#endif      break;    case IC_TYPE_STATE_EXTENDED:      pstStateExt = (icTypeStateExtended *)pstVar->varPtr;      incState (&pstStateExt->Flags);      incStateFlags (&pstStateExt->Flags);      pstStateExt->TimeStamp = time(NULL) + TWO_YEARS;      pstStateExt->COVCount++;#ifdef SISCO_THREADS      pstStateExt = (icTypeStateExtended *)pstVar->extraPtr;      incState (&pstStateExt->Flags);      incStateFlags (&pstStateExt->Flags);      pstStateExt->TimeStamp = time(NULL) + TWO_YEARS;      pstStateExt->COVCount++;#endif      break;    case IC_TYPE_DISCRETE:      pstDiscrete = (icTypeDiscrete *)pstVar->varPtr;      *pstDiscrete += 1;#ifdef SISCO_THREADS      pstDiscrete = (icTypeDiscrete *)pstVar->extraPtr;      *pstDiscrete += 1;#endif      break;    case IC_TYPE_DISCRETE_Q:      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->varPtr;      pstDiscreteQ->Flags++;      pstDiscreteQ->Value++;#ifdef SISCO_THREADS      pstDiscreteQ = (icTypeDiscreteQ *)pstVar->extraPtr;      pstDiscreteQ->Flags++;      pstDiscreteQ->Value++;#endif      break;    case IC_TYPE_DISCRETE_Q_TIME_TAG:      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->varPtr;      pstDiscreteQTimeTag->Flags++;      pstDiscreteQTimeTag->Value++;      pstDiscreteQTimeTag->TimeStamp = time(NULL) + TWO_YEARS;#ifdef SISCO_THREADS      pstDiscreteQTimeTag = (icTypeDiscreteQTimeTag *)pstVar->extraPtr;      pstDiscreteQTimeTag->Flags++;      pstDiscreteQTimeTag->Value++;      pstDiscreteQTimeTag->TimeStamp = time(NULL) + TWO_YEARS;#endif      break;    case IC_TYPE_DISCRETE_Q_EXTENDED:      pstDiscreteQExt = (icTypeDiscreteQExtended *)pstVar->varPtr;      pstDiscreteQExt->Flags++;      pstDiscreteQExt->Value++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -