我有一个我认为简单的问题,但不幸的是我自己找不到解决方案。
我在 .txt 文件中有一个包含十六进制数据的数组(例如 0x01 0x02 [...]),并希望将此数据用于另一个函数。目的是使用数组的某些部分(在此示例中为数组编号 100)以及不会更改的静态值并向 ECU 发送请求。
当我使用 fileGetString 从文件中读取数据并将其打印到控制台时,它会很好(如 0x01 0x02 等)。
当我尝试将它用于您在下面看到的功能时,它不采用正确的十六进制值(例如 StringLongWrite[100] = 0xFF),但在跟踪数据中只使用“30”。
因此,对于以下示例,发送的请求将是 11 12 13 30 而不是 11 12 13 FF。
有没有简单的方法来解决这个问题?(最初我得到了我想在 .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 ");