1

我正在尝试将 Nextion HMI 串行屏幕连接到 Android Things,特别是 PICO-PI-IMX6UL

我使用 sample-uartloopback 模板作为起点。

我需要做的是通过串行(UART3)以某种格式和ASCII发送以下有效载荷

第 1 页

  1. 指令以三个字节“0xff 0xff 0xff”结束
  2. 所有指令和参数都是ASCII
  3. 所有说明都是小写字母

    mLoopbackDevice.write(buffer, buffer.length);

其中 buffer 是具有三个终止字节的有效负载。

问题是屏幕想要输入 ASCII 但我只能发送字节数组...

我尝试了多种方法,但似乎无法使其正常工作。

格式化“第 1 页”字符串然后添加终止字节的正确方法是什么?

我让它在一个节点应用程序中工作,但java现在让我大吃一惊......

我努力了:

String strCommand = "page 1";
byte b = (byte)0xFF;
byte[] endCommand = {b,b,b};
byte[] cmd = strCommand.getBytes();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
outputStream.write(cmd);
outputStream.write(endCommand);
byte[] payload = outputStream.toByteArray();
Screen.write(payload, payload.length);

但这不起作用。

我可以读取数据(目前没什么用),所以我可以确认通信正常并且它在我的 Node 应用程序中工作,但我需要将它移植到 Android Things...

谁能指出我正确的方向?

编辑:这会在 JS 中为我​​返回正确的格式

function hex(str) {
    var arr = [];
    for (var i = 0, l = str.length; i < l; i ++) {
            var ascii = str.charCodeAt(i);
            arr.push(ascii);
    }
    arr.push(255);
    arr.push(255);
    arr.push(255);
    return new Buffer(arr);
}
4

0 回答 0