簡単な質問だと思いますが、残念ながら自分で解決策を見つけることができません。
.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 ");