2

structベクター CANoe CAPLでの a の宣言と初期化に問題があります。C/C++ の構造体は既に知っていますが、CAPL では宣言が少し異なるようです。

ベクトルのヘルプ機能は、実際には明らかではありません。

多数の CAN ID (例: 0x61A) があります。すべての CAN ID は、異なる数の信号 ID (例: 0xDDF6) が割り当てられています。CAN IDからSignal IDを周期的に読み出して、これを複雑な形で整理したいと考えていますstruct

すでにさまざまなタイプの宣言と初期化を試しましたが、毎回解析エラーが発生します。

私の問題を解決する手を貸していただけませんか?とは異なり、私の価値観を整理するための他のアイデアはありstructますか?

よろしくお願いします!

4

3 に答える 3

3

CAPLのドキュメントから:

構造化された型は、C と同様の方法で CAPL で宣言できます...

... バージョン 7.0 Service Pack 3 以降の CANoe を使用する CAPL プログラムでのみ使用できます。

例:

variables
{
  /* declarating a struct */
  struct MyData {
    int i;
    float f;
  };
}

on start
{
  /* defining a struct variable and initiliazing the elements */
  struct MyData data = {
    i = 42,
    f = 1.32
  };

  /* accessing the struct elements */
  write("i=%d, f=%f", data.i, data.f);
}

出力:

i=42, f=1.320000
于 2016-08-17T12:13:38.217 に答える
2

structアクセスに不備がありました。structルーチンではなく、変数宣言ルーチンでパラメータを初期化しようとしましたon start

私の複数のデータアクセスの作業コードは次のとおりです。

variables
{
  struct Veh_Database
  {
    dword ECU;
    dword ParamID[8][2];
  };
  struct Veh_Database ECU_Info[12];
}

on start
{
  ECU_Info[0].ECU = 0x1A;
  ECU_Info[0].ParamID[0][0] = 0xDD;     
  ECU_Info[0].ParamID[0][1] = 0xF6;
  /* ... */
  ECU_Info[1].ECU = 0x12;
  ECU_Info[1].ParamID[0][0] = 0xDE;
  ECU_Info[1].ParamID[0][1] = 0x9C;
  /* ... */
}

ご協力いただきありがとうございます!

于 2016-08-17T17:11:14.357 に答える