G'day 人民,
我正在使用 MavLink 获取 GPS 信息。其中一种消息类型是 GPS_STATUS,MavLink 使用一系列 uint8_t[20] 对其进行描述。
如果我运行以下代码:
console.log(' sat prn: ' + message.satellite_prn);
console.log(' sat prn: ' + JSON.stringify(message.satellite_prn));
console.log(' sat prn: ' + JSON.stringify(new Uint8Array(message.satellite_prn)));
我得到以下输出:
sat prn: <weird charcaters...>
sat prn: "\u0002\u0005\n\f\u000f\u0012\u0015\u0019\u001a\u001b\u001d\u001e\u001f\u0000\u0000\u0000\u0000"
sat prn: {"BYTES_PER_ELEMENT":1,"buffer":{"byteLength":0},"length":0,"byteOffset":0,"byteLength":0}
所以显然它不起作用。我需要一种方法来获取每个元素的 int 值。
这让我觉得我可以做到以下几点:
satellite_prn = Array.apply([], new Uint8Array(message.satellite_prn));
satellite_prn.length === 20;
satellite_prn.constructor === Array;
但是当我通过 JSON 对其进行字符串化时,它会报告 [],我认为这是一个空数组。
有谁知道我该怎么做?我知道数据是一个由 20 个无符号 8 位整数组成的数组。我只需要知道如何访问或解析它们。
注意:我使用的是 node.js,但这不应该影响我正在做的事情。这就是我使用 console.log 的原因,因为它在 node.js 中很有用。