我有一个字节数组,我需要在一行中打印元素。
我尝试使用 ' snprintf()
' 但它不会将字节数组作为其输入参数。
我尝试将字节数组复制到整数数组中,然后使用snprintf()
,但不是打印 HEX 值,而是打印相应的 ASCII 值。
你可以试试这段代码:
variables
{
int ar[100];
}
on diagResponse TCCM.*
{
char tmp[8]; // Temporary buffer containing single HEX value
char out[301]; // Bigger output string and "local" to function
// Better to place them there (i and response) if they are not global
int i;
byte response[100];
out[0] = 0; // Clear output string
s1 = DiagGetPrimitiveData(this, response, elcount(response));
for (i = 0; i < s1; i++)
{
ar[i] = response[i];
snprintf(tmp, elcount(tmp), "%.2X ", response[i]); // byte to HEX convert
strncat(out, tmp, elcount(out)); // Concatenate HEX value to output string
}
write("HEX Response : %s", out);
}
奥利维尔