2017-03-01 54 views

回答

0

你必須在按鍵或功能連接到一個面板,IG只是一個easyer方式發送消息,但你不能連接與IG的capl,因爲是不同的節點。

1

您需要在CAPL中聲明自己的消息,然後使用函數「output」在CAN上發送消息。下例以100ms週期發送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); 
}