meter.c
来自「电力行业的DL645采集程序,嵌入式Linux环境」· C语言 代码 · 共 47 行
C
47 行
#define ARM_METER_GLOBALS
#include "cfg_ISlave.h"
/*****************************************************************************************
函数名称: BOOL MeterFilterFrame(INT8U *pbuf)
功能说明: 检查数据包、过滤0x33
输入参数:
输出参数:
其它说明:
*****************************************************************************************/
BOOL MeterFilterFrame(INT8U *pbuf)
{
MeterFrameType *pMeterFrame;
INT8U checkSum;
INT16U frameSize, datalen;
INT8U *ptr;
pMeterFrame = (MeterFrameType *)pbuf;
if(pMeterFrame->header1 != METER_FRAME_START_CH || pMeterFrame->header2 != METER_FRAME_START_CH)
{
return FALSE;
}
frameSize = pMeterFrame->datalen + METER_FRAME_EXT_LEN;
checkSum = mCheckSumByte(pbuf, frameSize-2);
if(checkSum != pbuf[frameSize-2])
{
return FALSE;
}
if(pbuf[frameSize-1] != METER_FRAME_END_CH)
{
return FALSE;
}
ptr = (INT8U *)pMeterFrame->data;
datalen = pMeterFrame->datalen;
while(datalen--)
{
*ptr -= 0x33;
ptr++;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?