我试图在按键后连续发送消息,并在设置的时间后重置消息。
includes
{
}
variables
{
int i;
int j;
}
On key 'a'
{
j = 1;
}
on start
{
if(j == 1 && i <= 300)
{
message MyMessage msg;
msg.signal1 = 1;
msg.signal2 = 600;
output(msg);
i++;
}
if(i>300)
{
message MyMessage msg;
msg.signal1 = 0;
msg.signal2 = 0;
output(msg);
j = 0;
}
}
因此,在按“ A”键时,它需要继续发送消息3秒钟,但3秒钟后结束。它需要将我的消息重置为0。
我认为“开始时”被称为每个循环周期。但是看来我错了。
答案 0 :(得分:0)
On start
。
您可以使用一个计时器,该计时器可在需要的每10 / ms中定期调用一次。在On timer
函数中,您可以满足自己的逻辑。
您可以使用以下CAPL脚本作为参考,并根据需要对其进行修改。
includes
{
}
variables
{ int i;
int j;
mstimer timer1;
}
On key 'a'
{
j = 1;
}
On timer timer1
{
if(j >= 1 && i <= 300)
{
message MyMessage msg;
msg.signal1 = 1;
msg.signal2 = 600;
output(msg);
i++;
}
if(i>300)
{
message MyMessage msg;
msg.signal1 = 0;
msg.signal2 = 0;
output(msg);
j = 0;
}
settimer(timer1,10);
}
on start
{
j = 0;
i = 0;
settimer(timer1,10);
}