大家好,有一个项目需要对接收的数据进行校验,数据第二位是功能码,目前功能码有0x02,0x03,0x04,0x06,0x08,0x09。校验有两个条件:一个是第二位的功能码是我们目前有的,另一个是接收的数据长度小于DEVICE_RECEIVE_DATA_MAX_LEN/8,不满足则退出,下面是我的代码:
/*判断数据异常*/
if((1 == m_dwcurIndex && (0x02 != Ch && 0x03 != Ch && 0x04 != Ch && 0x06 != Ch && 0x08 != Ch && 0x09 != Ch)) || m_dwcurIndex >= DEVICE_RECEIVE_DATA_MAX_LEN/8)
{
SetRecvDataState(FALSE);
m_dwcurIndex = 0;
m_dwRecvLen = 0;
return;
}
目前我的校验逻辑功能可以满足项目需要,但是如果功能码变成十几个,这样逻辑判断就会变得冗余,这个判断逻辑怎么写比较简洁?