我正在尝试将 Nextion HMI 串行屏幕连接到 Android Things,特别是 PICO-PI-IMX6UL
我使用 sample-uartloopback 模板作为起点。
我需要做的是通过串行(UART3)以某种格式和ASCII发送以下有效载荷
第 1 页
- 指令以三个字节“0xff 0xff 0xff”结束
- 所有指令和参数都是ASCII
所有说明都是小写字母
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);
}