【发布时间】:2017-01-03 15:26:54
【问题描述】:
我正在编写一个小应用程序,它需要将数据从 NTRIP Caster 流式传输到蓝牙 GNSS 接收器。我正在使用 XHR 从服务器获取数据,并使用 Cordova 的蓝牙插件与我的设备进行通信。
我能够接收我需要的数据,但是在尝试将其写入设备时遇到了问题——基本上,什么也没有发生;虽然数据发送成功,但设备并没有对字节数组“做”任何事情。
数据传输适用于用 VB 和 Java 编写的开源应用程序(由 Lefebure 编写),因此我只能得出结论,我发送的数据结构中的某些内容与这些应用程序中的完成方式不同,并且我错过了它,或者我对某些东西有根本的误解。
这是一个 JSFiddle:https://jsfiddle.net/mpwacuLb/
if (this.responseText.indexOf("ICY 200 OK") > -1) {
var rtkData = this.response.substr(seenBytes);
seenBytes = this.responseText.length;
var byteData = stringToByte(rtkData);
var bytes = new Uint8Array(byteData);
bluetooth.write(bytes,
(success) => {
console.log("bt write: " + success);
},
(error) => {
console.log("bt err: " + error);
});
}
基本上,我正在建立与服务器的连接,并在收到“ICY 200 OK”消息后将其转换为字节并将其写入蓝牙 com 端口。
这是 Lefebure 的 VB 源代码:http://pastebin.com/Q5cZzBjF
(整个项目可以在 LeFebure 的网站上下载 - 只需 google “LeFebure ntrip”)
该文件很长,但我想我会保持原样,以防我遗漏了一些重要的东西。据我所知,与我的问题相关的部分是:
- 1557 到 1615(从 NTRIP 服务器获取数据)
- 1698到1716(将数据写入COM口)
我做错了什么?
【问题讨论】:
标签: javascript cordova geolocation xmlhttprequest gis