0

我有一个字节数组,我需要在一行中打印元素。

我尝试使用 ' snprintf()' 但它不会将字节数组作为其输入参数。

我尝试将字节数组复制到整数数组中,然后使用snprintf(),但不是打印 HEX 值,而是打印相应的 ASCII 值。

4

1 回答 1

0

你可以试试这段代码:

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);
}

奥利维尔

于 2020-06-30T08:22:49.243 回答