如何在 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);
}

奥利维尔