subscribe.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. module.exports = {
  2. subscribeSingleDevice: subscribeSingleDevice,
  3. subscribeAllDevice: subscribeAllDevice,
  4. }
  5. // 订阅在线单个设备
  6. function subscribeSingleDevice(device) {
  7. // /AIrSMArT_210052355545/status/onoffline 魅族款 APP
  8. // /AIrSMArT_861210052355545/status/onoffline 魅族款 小程序
  9. var deviceId = device.deviceId;
  10. const strings = require('../strings');
  11. var deviceList = pages[0].getDeviceList();
  12. var isOnline = false;
  13. if (!strings.isEmpty(deviceList)) {
  14. var deviceListSelect = pages[0].getDeviceListSelect();
  15. ///当前已连接
  16. if (deviceListSelect != null && deviceList.length > deviceListSelect) {
  17. var d = deviceList[deviceListSelect].deviceId;
  18. if (d == deviceId) {
  19. return;
  20. }
  21. }
  22. for (var i = 0; i < deviceList.length; i++) {
  23. var tempDevice = deviceList[i];
  24. if (deviceId == tempDevice.deviceId && tempDevice.state == "online") {
  25. isOnline = true;
  26. break;
  27. }
  28. }
  29. }
  30. ///在线处理
  31. if (isOnline) {
  32. var pages = getCurrentPages();
  33. pages[0].actionDevice(tempDevice);
  34. } else {
  35. const lexin_util = require('../lexin/util');
  36. var mac = lexin_util.getMacByDeviceId(deviceId);
  37. var topic = `/AIrSMArT_${mac}/status/onoffline`;
  38. const app = getApp();
  39. app.subscribe(topic);
  40. }
  41. };
  42. // 订阅在线设备
  43. function subscribeAllDevice() {
  44. const strings = require('../strings');
  45. var pages = getCurrentPages();
  46. var deviceList = pages[0].getDeviceList();
  47. if (strings.isEmpty(deviceList)) {
  48. return;
  49. }
  50. const app = getApp();
  51. const lexin_util = require('../lexin/util');
  52. ///扫描所有在线Wifi设备
  53. for (var i = 0; i < deviceList.length; i++) {
  54. var device = deviceList[i];
  55. if (device.connectType == 3) {
  56. var deviceId = device.deviceId;
  57. var mac = lexin_util.getMacByDeviceId(deviceId);
  58. var topic = `/AIrSMArT_${mac}/status/onoffline`;
  59. app.subscribe(topic);
  60. }
  61. }
  62. };