我想访问 CAPL 中的 IG 块,例如激活/停用消息发送,设置信号值。但我没有找到这种capl函数。
问问题
10374 次
2 回答
1
您需要在 CAPL 中声明您是自己的消息,然后您应该使用函数“输出”在 CAN 上发送它。下面的示例以 100 毫秒周期发送 ID 为 0x100 的消息。
enter code here
variables
{
msTimer timer200ms;
msTimer timer100ms;
message 0x100 msg = {
DLC = 8,
byte(0) = 0x00, byte(1) = 0x00, byte(2) = 0x00, byte(3) = 0x00,
byte(4) = 0x00, byte(5) = 0x00, byte(6) = 0x00, byte(7) = 0x00
};
byte myByte[8];
}
on timer timer200ms{
int i=0, j=0;
if(i<7){
if(j<256){
myByte[i] = j;
write("frame %d have been change for %d", i, j);
j++;
if(j==255){
i++;
j=0;
}
}
}
else{
cancelTimer(timer200ms);
}
}
on timer timer100ms{
msg.byte(0) = myByte[0];
msg.byte(1) = myByte[1];
msg.byte(2) = myByte[2];
msg.byte(3) = myByte[3];
msg.byte(4) = myByte[4];
msg.byte(5) = myByte[5];
msg.byte(6) = myByte[6];
msg.byte(7) = myByte[7];
output(msg);
}
on start{
setTimerCyclic(timer100ms, 100);
setTimerCyclic(timer200ms, 100);
}
于 2017-06-07T12:28:33.200 回答
0
您必须在按键或连接到面板上的功能上创建一些功能,IG 只是一种更简单的发送消息的方式,但您不能将 capl 与 IG 连接,因为它们是不同的节点。
于 2017-03-08T11:48:31.590 回答