You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 5 месеца
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. const wjApi = require("./wjBleAPI.js");
  2. export function disconnectDevice() {
  3. wjApi.disConnectDevice((res) => {
  4. if (res.serviceCode === 0) {
  5. console.log('断开设备成功!')
  6. } else {
  7. console.log('断开设备失败!')
  8. }
  9. })
  10. }
  11. export function connectDevice(d, f, e) {
  12. d.device_id = d.deviceId
  13. d.device_name = d.name
  14. wjApi.connectDevice(d, function(serviceResult) {
  15. console.log('serviceResult.serviceCode', serviceResult.serviceCode)
  16. console.log("connectDevice2", serviceResult);
  17. if (serviceResult.serviceCode === 0) {
  18. f(serviceResult)
  19. } else {
  20. e(serviceResult)
  21. }
  22. }, function(serviceResult) {
  23. e(serviceResult)
  24. })
  25. }
  26. //计算请求指令的长度并转为16进制
  27. function getLenth(request) {
  28. let num = request.length / 2;
  29. let paddedHexString = num.toString(16).padStart(2, '0');
  30. return paddedHexString;
  31. }
  32. let cmdArr = []
  33. /**
  34. * @param {Object} request
  35. * @param {Object} channel AC(ESAM)、A3(IC)
  36. * @param {Object} callback
  37. */
  38. export function transCmd(request, cmdtype, callback) {
  39. cmdArr = []
  40. sendCommand(0, request, cmdtype, callback)
  41. }
  42. function sendCommand(index, request, cmdtype, callback) {
  43. let continueExecution = true; // 控制执行的标志
  44. console.log('======================', request.length > index, request.length, index)
  45. if (request.length > index) {
  46. if (continueExecution) {
  47. console.log('执行内容', request[index], cmdtype == 10 ? 'A3' : 'AC')
  48. wjApi.transCommand("01" + getLenth(request[index]) + request[index], cmdtype == 10 ? 'A3' : 'AC', function(
  49. res) {
  50. console.log(res, '输出内容失败:${res.serviceInfo};请看console日志', res.serviceInfo)
  51. if (res.serviceCode === 0) {
  52. cmdArr.push(res.serviceData.dataBuff.slice(4))
  53. sendCommand(index + 1, request, cmdtype, callback)
  54. } else {
  55. continueExecution = false
  56. }
  57. })
  58. } else {
  59. console.log('---执行结果----', cmdArr)
  60. callback({
  61. code: 1,
  62. data: []
  63. })
  64. }
  65. } else {
  66. console.log({
  67. code: 0,
  68. data: cmdArr
  69. }, '---输出结果----', cmdArr)
  70. callback({
  71. code: 0,
  72. data: cmdArr
  73. })
  74. }
  75. }