万网有网站建设吗,做网站程序员都要先做维护么,网站建设uuiop,wordpress 开启xml-rpc定时器在C语言中的使用我想学习过C编程的都不会陌生#xff0c;它能够提供延时#xff0c;完成等待一定的时间#xff1b;它也可以实现多线程的操作#xff0c;并行实行某些软件功能。那在CAPL中#xff0c;定时器又能做哪些工作呢#xff1f;又是怎么使用的呢#xff1…定时器在C语言中的使用我想学习过C编程的都不会陌生它能够提供延时完成等待一定的时间它也可以实现多线程的操作并行实行某些软件功能。那在CAPL中定时器又能做哪些工作呢又是怎么使用的呢今天我们就一起来看下。timermsTimer在CAPL中主要的定时器有毫秒定时器和秒定时器他们分别是Timer和msTimer。对于计时器类型的变量最长时间为2147483647 s596523.23h对于msTimer类型的变量最长时间是2147483647ms2147483647s596,52h我们常定义在variables中如下variables
{timer timer1;msTimer mstimer2;message 0x100 msg1;message 0x101 msg2;
}on timer timer1
{output(msg1);write(执行timer1内部内容发送0x100报文);
}on timer mstimer2
{output(msg2);write(执行mstimer2内部内容,发送0x101报文);
}setTimer功能CAPL中的定时器精度取决于所使用的的硬件一般精度为一毫秒msTimer的最大值为2147483647 ms2147483648 s596,52h。from 2计时器的最大值为2147483647 s596523.23hfrom 3计时器的UI大致为2147483647秒214783647ns ~ 2147483649秒t上面在variables中定时的毫秒计时器或秒定时器duration设置定时器时间为duration时间为毫秒或者秒durationSec起始时间durationNanoSec终止时间variables {msTimer t1;Timer t23;
}on key F1 {setTimer(t1, 200); // set timer t1 to 200 ms
}on key F2 {setTimer (t23, 2); // set timer t23 to 2 sec
}on key F3 {setTimer (t23, 0, 1250*1000 ); // set timer t23 to 1.250 milliseconds
}on timer t1 {write(F1 was pressed 200ms ago);
}on timer t23 {write(F2 was pressed 2 sec ago or F3 1250000 nsec ago);
}
setTimerCyclic功能设置一个循环计时器循环调用定时器t毫秒定时器或秒定时器timermsTimer在variables中定义的定时器firstDuration启动定时器起始时间period计时器在到期时重新启动的时间周期时间以毫秒为单位periodInNs计时器在到期时重新启动的时间周期时间以纳秒为单位variables {msTimer t1;Timer t23;message 0x100 msg1
}
on timer timer1
{output(msg1);write(执行timer1内部内容发送0x100报文);
}
void send_msg1()
{//以周期为20ms的周期发送0x100setTimerCyclic(timer1, 20)
}
void send_msg2()
{//等待100ms后以周期为20ms的周期发送0x100setTimerCyclic(timer1, 100,20)
}cancelTimer功能停止正在激活的定时器t毫秒定时器或秒定时器timermsTimer在variables中定义的定时器variables {msTimer t1;Timer t23;message 0x100 msg1
}
on timer timer1
{output(msg1);write(执行timer1内部内容发送0x100报文);
}
void send_msg1()
{//以周期为20ms的周期发送0x100setTimerCyclic(timer1, 20)
}
void send_msg2()
{//等待100ms后以周期为20ms的周期发送0x100setTimerCyclic(timer1, 100,20)
}
void stop_msg()
{//停止周期发送报文0x100cancelTimer(timer1);
}timetoelapse功能计时器超时并调用事件过程之前所需的时间返回一个值该值指示在调用计时器事件过程之前还要经过多少时间。对于Form 1时间值以秒为单位返回对于Form 2时间值以毫秒为单位返回。如果计时器未激活则返回-1计时器事件过程本身也是如此。t毫秒定时器或秒定时器timermsTimer在variables中定义的定时器timer t;
setTimer(t, 5);
write(Time to elapse: %d, timeToElapse(t)); // writes 5isTimerActive功能返回值指示特定计时器是否处于活动状态在调用setTimer函数和调用ontimer事件过程之间就是这种情况。t毫秒定时器或秒定时器timermsTimer在variables中定义的定时器返回值如果计时器激活状态则为1否则为0。0也在计时器事件过程中返回。timer t;
write(Active? %d, isTimerActive(t)); // writes 0
setTimer(t, 5);
write(Active? %d, isTimerActive(t)); // writes 1以上是CAPL相关定时器的所有常用函数欢迎大家评论区交流