connect.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. module.exports = {
  2. searchOnlineDevice: searchOnlineDevice,
  3. }
  4. // [{"deviceId":"BLUFI_7cdfa1fcbb24","name":"BLUFI_7cdfa1fcbb24","state":"online","ProdModel":"MW-2AX(WIFI-N)","devName":"猫王小王子OTR-X"}]
  5. /// payloads:{"uuid":"AIrSMArT_7cdfa1fcbb24","state":"online","userid":"1"}
  6. // [{"deviceId":"BLUFI_7cdfa1fcbb24","name":"BLUFI_7cdfa1fcbb24","state":"online","ProdModel":"MW-2AX(WIFI-N)","devName":"猫王小王子OTR-X"}]
  7. ///更新在线状态,连接第一个在线设备
  8. // deviceId: BLUFI_7cdfa1fd3af0
  9. // uuid: AIrSMArT_7cdfa1fd3af0
  10. function searchOnlineDevice(payloads, changeCallback, resetCallback) {
  11. var isChanged = false;
  12. const strings = require('../strings');
  13. const lexin_util = require('../lexin/util');
  14. var deviceList = getCurrentPages()[0].getDeviceList();
  15. /// 处理在线设备
  16. if (!strings.isEmpty(deviceList)) {
  17. for (var i = 0; i < deviceList.length; i++) {
  18. if (payloads && payloads.uuid) {
  19. var device = deviceList[i];
  20. var connectType = device.connectType;
  21. if (connectType == 3) {
  22. var deviceId = device.deviceId;
  23. var mac = lexin_util.getMacByDeviceId(deviceId);
  24. var index = payloads.uuid.indexOf(mac);
  25. if (index !== -1) {
  26. if (device.state != payloads.state) {
  27. isChanged = true;
  28. device.state = payloads.state;
  29. }
  30. break;
  31. }
  32. }
  33. }
  34. }
  35. }
  36. ///更新数据
  37. if (isChanged) {
  38. changeCallback(deviceList);
  39. }
  40. _connectToDevice(resetCallback);
  41. };
  42. /// 连接设备
  43. function _connectToDevice(resetCallback) {
  44. ///是否已登录
  45. var isLogin = getCurrentPages()[0].getIsLogin();
  46. if (!isLogin) {
  47. return;
  48. }
  49. ///当前没有连接设备,则去连接第一个wifi设备
  50. var deviceList = getCurrentPages()[0].getDeviceList();
  51. var deviceListSelect = getCurrentPages()[0].getDeviceListSelect();
  52. ///去连接第一个
  53. if (deviceListSelect === null) {
  54. const strings = require('../strings');
  55. if (!strings.isEmpty(deviceList)) {
  56. var autoConnected = getCurrentPages()[0].getAutoConnected();
  57. var connectDeviceIding = getCurrentPages()[0].getConnectDeviceIding();
  58. /// 还没有自动连接采用第一个
  59. if (!autoConnected) {
  60. for (var i = 0; i < deviceList.length; i++) {
  61. var device = deviceList[i];
  62. var deviceId = device.deviceId;
  63. if (device.connectType == 3 && device.state === "online") {
  64. connectDeviceIding = deviceId;
  65. break;
  66. }
  67. }
  68. }
  69. for (var i = 0; i < deviceList.length; i++) {
  70. var device = deviceList[i];
  71. var deviceId = device.deviceId;
  72. if (deviceId == connectDeviceIding) {
  73. if (device.connectType == 3 && device.state === "online") {
  74. getCurrentPages()[0].actionDevice(device);
  75. }
  76. break;
  77. }
  78. }
  79. }
  80. } else {
  81. // 当前播放设备离线
  82. if (deviceList.length > deviceListSelect && deviceList[deviceListSelect].state !== "online") {
  83. resetCallback();
  84. };
  85. }
  86. }