1

簡単な質問だと思いますが、残念ながら自分で解決策を見つけることができません。

.txt ファイルに 16 進データの配列 (例: 0x01 0x02 [...]) があり、このデータを別の関数に使用したいと考えています。目的は、変更されない静的な値に加えて、配列の一部 (この例では配列番号 100) を使用して、ECU に要求を送信することです。

ファイルから fileGetString を使用してデータを読み取り、それをコンソールに出力すると、問題ありません (0x01 0x02 など)。

以下に示す関数に使用しようとすると、正しい 16 進数値 (たとえば、StringLongWrite[100] = 0xFF) が使用されませんが、トレース データでは "30" が使用されます。

したがって、以下の例では、送信されるリクエストは 11 12 13 FF ではなく 11 12 13 30 になります。

これを修正する簡単な方法はありますか?(もともと、.txtファイルに「01 02 03 ... FF ...」の形式で書きたいデータを取得し、これを「0x01 0x02 0x03 ... 0xFF ...」データに変換しました。最初のデータ型の方が使いやすい場合...)

ロバートに感謝します。

case  1:    /* write memory */
            if(something);

      glbHandleWrite = openFileRead ("test.txt",0);

      if (glbHandleWrite != 0 && fileGetString(StringLongWrite, elcount(StringLongWrite), glbHandleWrite) != 0)
      {
      SendReq[0] = 0x11;
      SendReq[1] = 0x12;
      SendReq[2] = 0x13;
      SendReq[3] = StringLongWrite[100];
      SendRequest(ServicePhys, 4);
      setTimer( TimeOutTimer, TimeOutLong);
      write ("data %s", StringLongWrite);
      break; 
      }

      else write("Data file cannot be opened ");
4

1 に答える 1