目录
前言
本想法纯属是个人猜想的,如有什么想法错误的地方还请指教
一,思路
1.设置一个定时器,启动定时器时让其获取当前的时间值。
2.再触发报文时,获取当前时间值。
3.两个时间值做差是一个特定的数,当不是这个特定的数时证明,该报文没有发送,即为通讯丢失。
二,实施
简单的一个思路的代码,仅供参考,还有不严谨的地方还请各位网友斧正。
1.首先我们要用到一个获取时间数据的函数 timeNowFloat (),下图是官方给予的该函数的解释
variables
{
msTimer Mytime;
float x=0;
float y=0;
float z=0;
}
on start
{
setTimer (Mytime ,100);
}
on message 报文
{
x=timeNowFloat ();
//write ("x:%g",x);
}
on timer Mytime
{
y=timeNowFloat ();
// write ("y:%g",y);
z=y-x;
write ("z:%g",z);
if(z!=9967)
{
环境变量_通讯丢失时间 =环境变量_通讯丢失时间 +1;
if (环境变量_通讯丢失时间 >1)
{
环境变量_通讯丢失报警 =1;
}
}
cancelTimer (Mytime );
setTimer (Mytime ,100);
}