module.exports = { buf2hex: buf2hex, buf2string: buf2string, changeArrayByValue: changeArrayByValue, removeWrongArray: removeWrongArray, } ///获取数据 function buf2hex(buffer) { return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); } ///数据转文字 function buf2string(buffer) { var arr = Array.prototype.map.call(new Uint8Array(buffer), x => x) var str = '' for (var i = 0; i < arr.length; i++) { str += String.fromCharCode(arr[i]) } return str } /// value 数组转换的根据值 array 需要转换的数组 /// 根据数组中的一个值分隔数组, 分割后组成的新数组 function changeArrayByValue(value, array) { // var value = "IMU data"; var newArray = new Array(); var dataStr = ''; for (var i = 0; i < array.length; i++) { if (array[i] == value) { if (dataStr) { //把分隔的数据添加新到数组中 newArray.push(dataStr.substring(0, dataStr.length - 2).split(" ")); } dataStr = ''; continue; } else { dataStr += (array[i] + " "); //把最后分隔的数据添加新到数组中 if (i == array.length - 1) { newArray.push(dataStr.substring(0, dataStr.length - 2).split(" ")); } } } return newArray; } ///数组 去除数组中长度不等于三的属性 function removeWrongArray(array) { for (var i = 0; i < array.length; i++) { if (array[i].length != 9) { array.splice(i, 1); removeWrongArray(array); } } return array; }