2017-05-03 58 views
0

CAPL을 사용하여 일부 테스트에 대한 테스트 환경을 시뮬레이트하고 메시지를 보내거나 특정 값을 설정하는 데 문제가 있습니다.CAPL 및 dbc 신호 값을 사용하여 메시지 보내기

$ SignalName으로 Signal Values를 읽을 수 있으며, 이와 같은 신호 값을 설정할 수도 있습니다. 내가 메시지를 보내려면이 코드를 사용하고있는 경우

메시지 데이터는 항상 0 :

on key 't' 
{ 
    message MessageName msg; 
    setSignal(SignalName,i); 
    write("Value: %d",i); 
    outport(msg); 
} 

마녀 내가 메시지 개체가 액세스 할 수있는 마녀 바이트를 전송하는 데 사용하기위한 것입니다 생각 렸기 때문에 sence 좀하게 through msg.byte()

나는 msg.SignalName에 의해 메시지에서 신호를 설정할 수 있음을 알고 있지만 다시 올바른 방법이 아닙니다. 메시지를 보내는 방법이 있어야하며 메시지에 포함 된 모든 신호는 SetSignal() 함수에 의해 설정된 값으로 설정되어야한다고 생각합니다. 그렇지 않으면 SetSignal Funktion이 약간 유용하지 않습니다.

누군가가 아이디어를 가지고 있을지도 모릅니다. 감사합니다.

답변

0

저는 CANalyzer 버전 8.2를 사용하고 있으며 SetSignal (신호, 값) 기능을 사용할 수있는 옵션이 없습니다. 메시지 선택자에 액세스하여 신호 값을 설정하는 것이 합리적인 방법 인 것 같습니다. 그러나 당신은 함수 outport를 사용! 출력 기능을 사용하여 메시지를 전송해야합니다.

on key 't' { 
    message MessageName msg; 
    msg.signal1 = value1; 
    output(msg); 
} 

이 방법의 경우 메시지 msg에 필요한 모든 신호 (signal1)가 포함되도록 데이터베이스를 구성해야합니다.

당신이 사용하는 기능은 데이터베이스에 구성된 시작 값으로 모든 신호 값을 설정하려면 다음

setSignalStartValues(message msg);