如何在 CAPL 中将字节数组转换为字符串?
How to convert a byte array into a string in CAPL?
我有一个字节数组,我需要在一行中打印元素。
我尝试使用“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);
}
奥利维尔
我有一个字节数组,我需要在一行中打印元素。
我尝试使用“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);
}
奥利维尔