hex_util.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. module.exports = {
  2. buf2hex: buf2hex,
  3. buf2string: buf2string,
  4. changeArrayByValue: changeArrayByValue,
  5. removeWrongArray: removeWrongArray,
  6. }
  7. ///获取数据
  8. function buf2hex(buffer) {
  9. return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
  10. }
  11. ///数据转文字
  12. function buf2string(buffer) {
  13. var arr = Array.prototype.map.call(new Uint8Array(buffer), x => x)
  14. var str = ''
  15. for (var i = 0; i < arr.length; i++) {
  16. str += String.fromCharCode(arr[i])
  17. }
  18. return str
  19. }
  20. /// value 数组转换的根据值 array 需要转换的数组
  21. /// 根据数组中的一个值分隔数组, 分割后组成的新数组
  22. function changeArrayByValue(value, array) {
  23. // var value = "IMU data";
  24. var newArray = new Array();
  25. var dataStr = '';
  26. for (var i = 0; i < array.length; i++) {
  27. if (array[i] == value) {
  28. if (dataStr) {
  29. //把分隔的数据添加新到数组中
  30. newArray.push(dataStr.substring(0, dataStr.length - 2).split(" "));
  31. }
  32. dataStr = '';
  33. continue;
  34. } else {
  35. dataStr += (array[i] + " ");
  36. //把最后分隔的数据添加新到数组中
  37. if (i == array.length - 1) {
  38. newArray.push(dataStr.substring(0, dataStr.length - 2).split(" "));
  39. }
  40. }
  41. }
  42. return newArray;
  43. }
  44. ///数组 去除数组中长度不等于三的属性
  45. function removeWrongArray(array) {
  46. for (var i = 0; i < array.length; i++) {
  47. if (array[i].length != 9) {
  48. array.splice(i, 1);
  49. removeWrongArray(array);
  50. }
  51. }
  52. return array;
  53. }