1,当全局动作触发后,若未收到服务器命令,系统中所有关于#include "apdefap.h"定义的函数命令均无法立即执行(处于等待状态),而是当接受到服务器命令发送数据之后,系统中关于#include "apdefap.h"才立即执行(释放先前未执行的动作)。
2,程序执行的定义周期里,如果服务器发送数据过来,然后就不会造成其他函数暂停执行的情况。
#include "apdefap.h"
int gscAction( void )
{
char buf[256];
float so2,nox,dust,speed,flux;
#pragma code ("UDPClient.dll");
long Init(long flag,char *addr,unsigned short port);
long RecvData(char *buf,long len);
long SendData(char *buf,long len);
void ShutDown();
long SendSmokeData(float so2,float nox,float dust,float speed,float flux);
void SleepTime(unsigned long time);
#pragma code()
Init(0,"192.168.0.18",8000);
{
if(RecvData(buf,sizeof(buf))>0)
{
so2=GetTagFloat("SO2_Value");
nox=GetTagFloat("nox");
dust=GetTagFloat("Dust_Value");
speed=GetTagFloat("speed");
flux=GetTagFloat("flow_gas");
SendSmokeData(so2,nox,dust,speed,flux);
}
SleepTime(10);
}
ShutDown();
return 0;
}
我设置的是周期触发1S,每1S执行一次程序,当if(RecvData(buf,sizeof(buf))>0)成立的时候,系统一切正常,当if(RecvData(buf,sizeof(buf))>0)不成立,也就是没有接受到数据的时候,系统中涉及到#include "apdefap.h"的所有脚本动作均不能执行(而是处于等待状态),接受到数据后,涉及到#include "apdefap.h"的脚本动作就立即执行了
原因哪儿找啊?