0

CAN C チャネルですべてのメッセージの送信を許可し、データベース ファイルからの特定のメッセージの送信を停止する必要がある CAPL スクリプトを作成しています。私が使用できるメソッド/関数/コードを手伝ってくれる人はいますか?

4

3 に答える 3

1

あなたの質問は漠然としていますが、あるCANチャネルから別のCANチャネルに移行していると思います。たとえば、CAN C から CAN D (または CAN 3 から CAN 4) の場合は、次のようになります。

on message CAN3.0x7FF  // This would be that one ID that stops at some point
{
  message CAN4.0x7FF msg;
  msg = this;

  // Assuming you are receiving on CAN 3, and looking to transmit on CAN 4
  if(this.dir == rx)
  {
      // Declare a global variable that sets to 1 when you want it to stop
    if(MSG_STOP == 0)
       output(msg);
  }
}

on message CAN3.*
{

  message CAN4.* msg;
  msg = this;
  if (this.dir == rx)
  {
    output (msg);
  } 
}
于 2016-05-31T19:34:16.973 に答える
1

私の知る限り、これを達成する唯一の方法は、メッセージの自動送信 (IG またはネットワーク IL 経由など) を無効にし、すべてのメッセージをタイマー コールバックで CAPL スクリプトから手動で送信することです。送信はoutput関数を使用して行うことができ、定義した条件に基づいて、outputブロックする必要があるメッセージを呼び出さないように選択できます。

于 2016-05-12T17:56:56.723 に答える