字节数组如何显示?

1、很多用户在刚开始接触WeStudio软件时经常会问到串口接收到的数据(字节数组)如何显示,下面演示如何将串口接收到字节数组显示成不同形式。在主界面拖入5个标签控件,使能串口控件device.io.com0,并在它的onReceive()方法中添加如下代码:

device.io.com0.onReceive = function(count) {
    // 读取数据,返回值是字节数组,假如内容为 [0xaa,0xbb,0x40,0x48,0xf5,0xc3,0xcc,0xdd]
    var data = this.read();
    // 取数组下标为2和3的两个元素以10进制形式显示,如 “64 72”
    ui.main.label.text = '10进制: ' + data[2] + ' ' + data[3];
    // 取数组下标为2和3的两个元素以16进制形式显示,如 “40 48”
    ui.main.label_2.text = '16进制: ' + data[2].toString(16) + ' ' + data[3].toString(16);
    // 取数组下标2~5的4个元素,slice()方法返回新的子数组
    var arr = data.slice(2, 6); // [0x40,0x48,0xf5,0xc3]
    // 新数组以16进制形式显示
    ui.main.label_3.text = '子数组: ' + util.cast.arrayToHexString(arr);
    // 新数组转换为浮点数显示
    ui.main.label_4.text = '浮点数: ' + util.cast.arrayToFloat(arr); // 3.140000104904175
    // 新数组转换为浮点数,保留两位小数位
    ui.main.label_5.text = '浮点两位小数: ' + util.cast.arrayToFloat(arr).toFixed(2); // 3.14
};

启动模拟器,在底部输入框中输入数据 “aa bb 40 48 f5 c3 cc dd”,点击“发送”按钮,显示的内容如下:

2、上面的例子演示的是二进制字节的不同形式的显示,在实际应用中还有一种是文本字节的显示,比如电子秤的串口通讯就是传输的ASCII码字节数组,下面演示如何显示。在主界面拖入两个标签控件,使能串口控件device.io.com0,并在它的onReceive()方法中添加如下代码:

device.io.com0.onReceive = function(count) {
    //测试数据1(+01.2345kg): 2B 30 31 2E 32 33 34 35 6B 67 0D 0A
    //测试数据2(1.00000g/pcs): 31 2E 30 30 30 30 30 67 2F 70 63 73 0D 0A
    //测试数据3(001000pcs): 30 30 31 30 30 30 70 63 73 0D 0A
    var data = this.read();
    // 以16进制形式显示字节数组的内容
    ui.main.label.text = util.cast.arrayToHexString(data);
    // 将字节数组转换为UTF-8格式的字符串
    ui.main.label_2.text = util.cast.arrayToUtf8(data);
};

启动模拟器,在底部输入框中输入测试数据,得到如下结果:

results matching ""

    No results matching ""