将QByteArray数据转ascii字符串

代码主要就是根据ascii表格将对应数据转换即可

typedef struct {
  char cmd;
  QString data;
} cmdList_t; /* 该结构体可以精简掉 直接用QStringList也可以处理 */

static cmdList_t cmdList[] = {
    {0x00, QString("NULL")}, {0x01, QString("SOH")}, {0x02, QString("STX")},
    {0x03, QString("ETX")},  {0x04, QString("EOT")}, {0x05, QString("ENQ")},
    {0x06, QString("ACK")},  {0x07, QString("BEL")}, {0x08, QString("BS")},
    {0x09, QString("HT")},   {0x0A, QString("LF")},  {0x0B, QString("VT")},
    {0x0C, QString("FF")},   {0x0D, QString("CR")},  {0x0E, QString("SO")},
    {0x0F, QString("SI")},   {0x10, QString("DLE")}, {0x11, QString("DC1")},
    {0x12, QString("DC2")},  {0x13, QString("DC3")}, {0x14, QString("DC4")},
    {0x15, QString("NAK")},  {0x16, QString("SYN")}, {0x17, QString("ETB")},
    {0x18, QString("CAN")},  {0x19, QString("EM")},  {0x1A, QString("SUB")},
    {0x1B, QString("ESC")},  {0x1C, QString("FS")},  {0x1D, QString("GS")},
    {0x1E, QString("RS")},   {0x1F, QString("US")},  {0x20, QString(" ")},
    {0x7F, QString("DEL")}};

/* 将QByteArray数据转对应的ascii数据 返回QString */
QString smallerShare::getAsciiByArray(QByteArray &data) {
  uint16_t len = data.length();
  QString sRet;
  if (len == 0) {
    return sRet;
  }
  QString tmp;
  for (uint16_t cnt = 0; cnt < len; cnt++) {
    if (0x00 > data.at(cnt))
      continue;
    if (0x20 < data.at(cnt) && 0x7E >= data.at(cnt)) {
      tmp.clear();
      sRet += QString::asprintf("%c", data.at(cnt));
    } else {
      if (0x7F == data[cnt]) {
        sRet += cmdList[32].data;
      } else if (0x20 >= data.at(cnt)) {
        sRet += cmdList[(int)data.at(cnt)].data;
      } else {
        continue;
      }
    }
  }

  return sRet;
}

串口例子如下如:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值