📄 hrtsrvin.c
字号:
strHrtAppIf.byData[1] = (BYTE) co_ui8FbHartMfrID;
strHrtAppIf.byData[2] = (BYTE) co_ui8FbHartMfrDevType;
strHrtAppIf.byData[3] = (BYTE) co_ui8FbHartNoReqPreAmbs;
strHrtAppIf.byData[4] = (BYTE) co_ui8FbHartUnivCmdRev;
strHrtAppIf.byData[5] = (BYTE) co_ui8FbHartTransmSpecRev;
strHrtAppIf.byData[6] = (BYTE) co_ui8FbHartSoftwRev;
strHrtAppIf.byData[7] = (BYTE) co_ui8FbHartHardwRev;
strHrtAppIf.byData[8] = (BYTE) co_ui8FbHartFlags;
M_API_MEMCPY(&strHrtAppIf.byData[9],&co_ui24FbHartDeviceIDnum,3);
#ifdef VC_STUDIO
M_API_SWAP3(&strHrtAppIf.byData[9]);
#endif
strHrtAppIf.byDataLen = 12;
}
/**************/
static void hrtSrvFnc012(
/**************/
void
)
/*
* HART Command 12 Handling Function
*/
{
strHrtAppIf.byResponse1 = 0;
M_API_MEMCPY(&strHrtAppIf.byData[0],&rs_paFbHartMessage,24);
strHrtAppIf.byDataLen = 24;
}
/**************/
static void hrtSrvFnc013(
/**************/
void
)
/*
* HART Command 13 Handling Function
*/
{
strHrtAppIf.byResponse1 = 0;
M_API_MEMCPY(&strHrtAppIf.byData[0],&rl_paFbHartTagName,6);
M_API_MEMCPY(&strHrtAppIf.byData[6],&rs_paFbHartDescription,12);
strHrtAppIf.byData[18] = (BYTE) rs_ui8FbHartDayOfMonth;
strHrtAppIf.byData[19] = (BYTE) rs_ui8FbHartMonthOfYear;
strHrtAppIf.byData[20] = (BYTE) rs_ui8FbHartYearSince1900;
strHrtAppIf.byDataLen = 21;
}
/**************/
static void hrtSrvFnc014(
/**************/
void
)
/*
* HART Command 14 Handling Function
*/
{
strHrtAppIf.byResponse1 = 0;
M_API_MEMCPY(&strHrtAppIf.byData[0],&co_ui24MeasSensSerNum,3);
#ifdef VC_STUDIO
M_API_SWAP3(&strHrtAppIf.byData[0]);
#endif
strHrtAppIf.byData[3] = (BYTE) co_ui8MeasSensLimUnit;
M_API_MEMCPY(&strHrtAppIf.byData[4],&co_flMeasUpperSensLimit,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[4]);
#endif
M_API_MEMCPY(&strHrtAppIf.byData[8],&co_flMeasLowerSensLimit,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[8]);
#endif
M_API_MEMCPY(&strHrtAppIf.byData[12],&co_flMeasMinSpan,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[12]);
#endif
strHrtAppIf.byDataLen = 16;
}
/**************/
static void hrtSrvFnc015(
/**************/
void
)
/*
* HART Command 15 Handling Function
*/
{
strHrtAppIf.byResponse1 = 0;
strHrtAppIf.byData[0] = (BYTE) co_ui8FbHartAlmSelCode;
strHrtAppIf.byData[1] = (BYTE) co_ui8FbHartXferFuncCode;
strHrtAppIf.byData[2] = (BYTE) co_ui8IoutRangeUnits;
M_API_MEMCPY(&strHrtAppIf.byData[3],&co_flIoutUpperRange,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[3]);
#endif
M_API_MEMCPY(&strHrtAppIf.byData[7],&co_flIoutLowerRange,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[7]);
#endif
M_API_MEMCPY(&strHrtAppIf.byData[11],&co_flIoutDamping,4);
#ifdef VC_STUDIO
M_API_MSfloatToIEEE(&strHrtAppIf.byData[11]);
#endif
strHrtAppIf.byData[15] = (BYTE) rs_ui8FbHartWrProtCode;
strHrtAppIf.byData[16] = (BYTE) co_ui8FbHartPrivLabDistCode;
strHrtAppIf.byDataLen = 17;
}
/**************/
static void hrtSrvFnc016(
/**************/
void
)
/*
* HART Command 16 Handling Function
*/
{
strHrtAppIf.byResponse1 = 0;
M_API_MEMCPY(&strHrtAppIf.byData[0],&rs_ui24FbHartFinAssNum,3);
#ifdef VC_STUDIO
M_API_SWAP3(&strHrtAppIf.byData[0]);
#endif
strHrtAppIf.byDataLen = 3;
}
/**************/
static void hrtSrvFnc017(
/**************/
void
)
/*
* HART Command 17 Handling Function
*/
{
/* Write Part of Service */
if (M_API_IS_WR_PROTECTED)
{ strHrtAppIf.byResponse1 = HRT_IN_WR_PROT_MODE;
g_bNoData = T_TRUE;
}
else
{ if (strHrtAppIf.byDataLen < 24)
{ strHrtAppIf.byResponse1 = HRT_TOO_FEW_DATA_BYTES;
g_bNoData = T_TRUE;
}
else
{ strHrtAppIf.byResponse1 = 0;
if (strHrtAppIf.byResponse1 == 0)
{ if(memcmp(&rs_paFbHartMessage,&strHrtAppIf.byData[0],24)!=0)
{ M_API_MEMCPY(&rs_paFbHartMessage,&strHrtAppIf.byData[0],24);
M_API_EE_WRITE(&ee_paFbHartMessage,&rs_paFbHartMessage,24);
g_bConfChange = TRUE;
}
}
}
}
/* Get the response data */
M_API_MEMCPY(&strHrtAppIf.byData[0],&rs_paFbHartMessage,24);
strHrtAppIf.byDataLen = 24;
}
/**************/
static void hrtSrvFnc018(
/**************/
void
)
/*
* HART Command 18 Handling Function
*/
{
/* Write Part of Service */
if (M_API_IS_WR_PROTECTED)
{ strHrtAppIf.byResponse1 = HRT_IN_WR_PROT_MODE;
g_bNoData = T_TRUE;
}
else
{ if (strHrtAppIf.byDataLen < 21)
{ strHrtAppIf.byResponse1 = HRT_TOO_FEW_DATA_BYTES;
g_bNoData = T_TRUE;
}
else
{ strHrtAppIf.byResponse1 = 0;
if (strHrtAppIf.byResponse1 == 0)
{ if(memcmp(&rl_paFbHartTagName,&strHrtAppIf.byData[0],6)!=0)
{ M_API_MEMCPY(&rl_paFbHartTagName,&strHrtAppIf.byData[0],6);
M_API_EE_WRITE(&ee_paFbHartTagName,&rl_paFbHartTagName,6);
se_bFbHartParamChanged = TRUE;
g_bConfChange = TRUE;
}
if(memcmp(&rs_paFbHartDescription,&strHrtAppIf.byData[6],12)!=0)
{ M_API_MEMCPY(&rs_paFbHartDescription,&strHrtAppIf.byData[6],12);
M_API_EE_WRITE(&ee_paFbHartDescription,&rs_paFbHartDescription,12);
g_bConfChange = TRUE;
}
if(rs_ui8FbHartDayOfMonth != strHrtAppIf.byData[18])
{ rs_ui8FbHartDayOfMonth = (BYTE) strHrtAppIf.byData[18];
M_API_EE_WRITE(&ee_ui8FbHartDayOfMonth,&rs_ui8FbHartDayOfMonth,1);
g_bConfChange = TRUE;
}
if(rs_ui8FbHartMonthOfYear != strHrtAppIf.byData[19])
{ rs_ui8FbHartMonthOfYear = (BYTE) strHrtAppIf.byData[19];
M_API_EE_WRITE(&ee_ui8FbHartMonthOfYear,&rs_ui8FbHartMonthOfYear,1);
g_bConfChange = TRUE;
}
if(rs_ui8FbHartYearSince1900 != strHrtAppIf.byData[20])
{ rs_ui8FbHartYearSince1900 = (BYTE) strHrtAppIf.byData[20];
M_API_EE_WRITE(&ee_ui8FbHartYearSince1900,&rs_ui8FbHartYearSince1900,1);
g_bConfChange = TRUE;
}
}
}
}
/* Get the response data */
M_API_MEMCPY(&strHrtAppIf.byData[0],&rl_paFbHartTagName,6);
M_API_MEMCPY(&strHrtAppIf.byData[6],&rs_paFbHartDescription,12);
strHrtAppIf.byData[18] = (BYTE) rs_ui8FbHartDayOfMonth;
strHrtAppIf.byData[19] = (BYTE) rs_ui8FbHartMonthOfYear;
strHrtAppIf.byData[20] = (BYTE) rs_ui8FbHartYearSince1900;
strHrtAppIf.byDataLen = 21;
}
/**************/
static void hrtSrvFnc019(
/**************/
void
)
/*
* HART Command 19 Handling Function
*/
{
/* Write Part of Service */
if (M_API_IS_WR_PROTECTED)
{ strHrtAppIf.byResponse1 = HRT_IN_WR_PROT_MODE;
g_bNoData = T_TRUE;
}
else
{ if (strHrtAppIf.byDataLen < 3)
{ strHrtAppIf.byResponse1 = HRT_TOO_FEW_DATA_BYTES;
g_bNoData = T_TRUE;
}
else
{ strHrtAppIf.byResponse1 = 0;
if (strHrtAppIf.byResponse1 == 0)
{
#ifdef VC_STUDIO
M_API_SWAP3(&strHrtAppIf.byData[0]);
#endif
if(memcmp(&rs_ui24FbHartFinAssNum,&strHrtAppIf.byData[0],3)!=0)
{ M_API_MEMCPY(&rs_ui24FbHartFinAssNum,&strHrtAppIf.byData[0],3);
M_API_EE_WRITE(&ee_ui24FbHartFinAssNum,&rs_ui24FbHartFinAssNum,3);
g_bConfChange = TRUE;
}
}
}
}
/* Get the response data */
M_API_MEMCPY(&strHrtAppIf.byData[0],&rs_ui24FbHartFinAssNum,3);
#ifdef VC_STUDIO
M_API_SWAP3(&strHrtAppIf.byData[0]);
#endif
strHrtAppIf.byDataLen = 3;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -