在电力系统中应用的电力设备,经常有开关量状态需要转化为0或1的数字量上传至决策单元。开关量巡检的程序如下构造比较合理:
unsigned int oldFlag,curFlag,flag;
int i;
oldFlag=0;
while(1)
{
curFlag = getNewFlag();
flag = oldFlag^curFlag;
for (i=0;i<BIT_NUM;i++)
{
if (flag&(0x1<<i) == (0x1<<i))
{
printf("bit[%d] changed to %d!\n",i,(curFlag&(0x1<<i))>>i);
handleEvent();
oldFlag = curFlag;
}
}
}
unsigned int oldFlag,curFlag,flag;
int i;
oldFlag=0;
while(1)
{
curFlag = getNewFlag();
flag = oldFlag^curFlag;
for (i=0;i<BIT_NUM;i++)
{
if (flag&(0x1<<i) == (0x1<<i))
{
printf("bit[%d] changed to %d!\n",i,(curFlag&(0x1<<i))>>i);
handleEvent();
oldFlag = curFlag;
}
}
}