使用铬序列清除极显示文本
Clear Pole Display text using chrome serial
我创建了一个chrome应用程序,通过串行端口连接到Pole Display,我成功地写入了它,但每次我发送消息时,它都会将它与前一个连接起来,每次我发送新消息时,我都找不到清除屏幕的方法!
这是我的代码:
var connectionId = -1;
openPort("COM3");
function openPort(port){
var onOpen = function(connectionInfo) {
if (!connectionInfo || connectionInfo.connectionId == -1) {
return;
}
connectionId = connectionInfo.connectionId;
}
chrome.serial.connect(port, {bitrate: 9600}, onOpen);
}
function closePort() {
if (connectionId == -1) {
return;
}
var onDisconnect = function(connectionInfo) {
connectionId = -1;
}
chrome.serial.disconnect(connectionId, onDisconnect);
}
function sendData(str){
chrome.serial.flush(connectionId, function(){});
chrome.serial.send(connectionId, str2ab(str), function(){});
}
function str2ab(str) {
var buf = new ArrayBuffer(str.length);
var bufView = new Uint8Array(buf);
for (var i = 0; i < str.length; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}
sendData("dsadsads");
您应该查看您的Pole Display手册。
根据我使用插入符号的经验,您需要发送一个特殊命令来清除显示和/或重新定位开头的插入符号。
您命名了您的显示器型号,搜索"BIRCH DSP-800手册"会得到该文档的第一个链接,该文档包含第4.1.7节中的所有命令代码。
要覆盖一个字符串,只需要发送40个字符就可以"覆盖"旧数据顺便说一句,这是一个通用的解决方案:只将文本写入与显示大小相等的块中根据需要填充空间。
您还可以通过发送与命令相对应的字符串来执行命令。让我们以"clear range"命令为例进行说明。
"清除1个位置到40个位置的范围,并将光标移动到1个位置"
十六进制字符串为04 01 43 n m 17
,请注意:m和n在[0x31;0x58]范围内,因此位置1将为n=0x31,位置40将为(十六进制算术!)m=0x31+39=49+39=88=0x58(不足为奇)。因此,正确的命令(十六进制编码)是04 01 43 31 58 17
。
相应的字符串将是String.fromCharCode(0x04, 0x01, 0x43, 0x31, 0x58, 0x17)
,您将其作为文本发送,就完成了。
您可以转换其他类似的命令,并完全控制极点显示。
相关文章:
- xmlhttp.responseText不显示文本
- 如何在MVC中使用jQuery在文本框旁边显示文本
- 根据页面的位置突出显示文本中的字符
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 操作javascript变量[HTML]以只显示文本
- 如何显示文本长度,即使它超过ng最大长度
- 如何在悬停时显示文本而不移动页面上的内容
- ASP.NET MVC,在文本框旁边显示文本
- 可单击滚动图像以显示文本框
- 使用鼠标悬停JavaScript/HTML显示文本
- 延迟高亮显示文本区域中的文本
- 选择“选择选项”时显示文本.怎么做
- 无法使用JavaScript在画布上显示文本
- 在不更改HTML源代码的情况下,在管理员TinyMCE编辑器中突出显示文本
- 将鼠标悬停在图像上时显示文本
- javascript:在for循环中使用settimeout来定期显示文本
- 一页主题搜索/用下一个按钮突出显示文本
- JavaScript 在更改选择时不显示文本区域
- 用于突出显示文本的JQuery/JavaScript插件
- 模式显示文本区域内容不是字符串