2017-05-03 1035 views
0

我正在使用CAPL來模擬一些小測試的測試envirmonet,並且在發送消息或更具體地設置值時遇到問題。用CAPL和dbc信號值發送消息

我能讀取信號值與$ SignalName,我也能夠設置這樣的信號值。

如果我使用此代碼來發送消息的消息數據始終是0:

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

女巫使還挺SENCE becouse我認爲消息對象旨在用於發送字節巫婆你可以訪問通過msg.byte()

我知道我可以通過msg.SignalName在消息中設置信號,但這似乎不是正確的方法。我認爲應該有一種方法來發送消息,消息中包含的所有信號都被設置爲由SetSignal()函數設置的值。否則SetSignal Funktion有點無用

也許有人有一個想法。 謝謝

回答

0

我正在使用CANalyzer版本8.2,我沒有使用SetSignal(信號,值)功能的選項。通過訪問消息選擇器來設置信號值似乎是一種合理的方法。但是,您使用了功能輸出!您需要使用輸出功能來傳輸消息。

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

對於這種方法的數據庫必須被配置爲使得消息MSG包含所有必要的信號(信號1)。

如果你想將所有信號值在數據庫中配置的初始值使用的功能:

setSignalStartValues(message msg);