xBlufi.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. var mOnFire = require("other/onfire.js");
  2. var $wxBlufiImpl = require('xBlufi-wx-impl.js');
  3. // 0表示阿里支付宝小程序 1表示微信小程序
  4. let XMQTT_SYSTEM = {
  5. Alis: 0,
  6. WeChat: 1,
  7. };
  8. let XBLUFI_TYPE = {
  9. TYPE_STATUS_CONNECTED: '-2', /// 设备连接状态回调
  10. TYPE_CLOSE_CONNECTED: '-1', ///主动关闭连接
  11. TYPE_CONNECTED: '0', //主动连接
  12. TYPE_GET_DEVICE_LISTS: '1', //发现设备列表回调
  13. TYPE_INIT_ESP32_RESULT: '2',
  14. TYPE_RECIEVE_CUSTON_DATA: '3', //接收到自定义数据
  15. TYPE_CONNECT_ROUTER_RESULT: '4',
  16. TYPE_GET_DEVICE_LISTS_START: ' 41', //发现设备列表回调开始
  17. TYPE_GET_DEVICE_LISTS_STOP: '42', //停止发现设备列表回调
  18. };
  19. let OnFireEvent = {
  20. EVENT_START_DISCONORY: '0', //蓝牙状态事件 发现设备
  21. EVENT_CONNECT_DISCONNECT: '1', //通知连接或断开蓝牙
  22. EVENT_NOFITY_INIT_ESP32: '3', //通知获取蓝牙设备的服务uuid列表等初始化工作
  23. ENENT_ALL: '6',
  24. EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD: '50', //通知发送路由器的ssid和password
  25. EVENT_NOFITY_SEND_CUSTON_DATA: '51', //通知发送自定义数据
  26. }
  27. /**
  28. * 初始化
  29. * @param type 参考 XMQTT_SYSTEM
  30. */
  31. function initXBlufi(type) {
  32. switch (type) {
  33. case XMQTT_SYSTEM.Alis:
  34. break;
  35. case XMQTT_SYSTEM.WeChat:
  36. $wxBlufiImpl.init();
  37. break;
  38. }
  39. }
  40. function notifyDeviceMsgEvent(options) {
  41. mOnFire.fire(OnFireEvent.ENENT_ALL, options);
  42. }
  43. function listenDeviceMsgEvent(isSetListener, funtion) {
  44. if (isSetListener) {
  45. mOnFire.on(OnFireEvent.ENENT_ALL, funtion)
  46. } else {
  47. mOnFire.un(funtion)
  48. }
  49. }
  50. /**
  51. * 开始或停止发现附近的蓝牙设备
  52. * @param options 连接参数 {"isStart":true , "filter":"名字过滤"} :是否开始发现设备
  53. */
  54. function notifyStartDiscoverBle(options) {
  55. mOnFire.fire(OnFireEvent.EVENT_START_DISCONORY, options);
  56. }
  57. /**
  58. * 开始或停止发现附近的蓝牙设备
  59. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  60. */
  61. function listenStartDiscoverBle(isSetListener, funtion) {
  62. if (isSetListener) {
  63. mOnFire.on(OnFireEvent.EVENT_START_DISCONORY, funtion)
  64. } else {
  65. mOnFire.un(funtion)
  66. }
  67. }
  68. /**
  69. * 连接或断开 蓝牙连接
  70. *
  71. * @param options 连接参数 {"connect":true,"deviceID":"设备id,蓝牙发现列表获取"}
  72. */
  73. function notifyConnectBle(options) {
  74. mOnFire.fire(OnFireEvent.EVENT_CONNECT_DISCONNECT, options);
  75. }
  76. /**
  77. * 开始或停止连接的蓝牙设备
  78. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  79. */
  80. function listenConnectBle(isSetListener, funtion) {
  81. if (isSetListener) {
  82. mOnFire.on(OnFireEvent.EVENT_CONNECT_DISCONNECT, funtion)
  83. } else {
  84. mOnFire.un(funtion)
  85. }
  86. }
  87. /**
  88. * 通知初始化获取设备的服务列表等信息
  89. * @param options 连接参数 {"deviceId":"设备的设备id"}
  90. */
  91. function notifyInitBleEsp32(options) {
  92. mOnFire.fire(OnFireEvent.EVENT_NOFITY_INIT_ESP32, options);
  93. }
  94. /**
  95. * 通知初始化获取设备的服务列表等信息
  96. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  97. */
  98. function listenInitBleEsp32(isSetListener, funtion) {
  99. if (isSetListener) {
  100. mOnFire.on(OnFireEvent.EVENT_NOFITY_INIT_ESP32, funtion)
  101. } else {
  102. mOnFire.un(funtion)
  103. }
  104. }
  105. /**
  106. * 发送要连接的路由器的ssid和密码
  107. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","ssid":"路由器名字","password":"密码"}
  108. */
  109. function notifySendRouterSsidAndPassword(options) {
  110. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, options);
  111. }
  112. /**
  113. * 发送要连接的路由器的ssid和密码
  114. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  115. */
  116. function listenSendRouterSsidAndPassword(isSetListener, funtion) {
  117. if (isSetListener) {
  118. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, funtion)
  119. } else {
  120. mOnFire.un(funtion)
  121. }
  122. }
  123. /**
  124. * 发送自定义数据
  125. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  126. */
  127. function notifySendCustomData(options) {
  128. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, options);
  129. }
  130. /**
  131. * 发送自定义数据
  132. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  133. */
  134. function listenSendCustomData(isSetListener, funtion) {
  135. if (isSetListener) {
  136. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, funtion)
  137. } else {
  138. mOnFire.un(funtion)
  139. }
  140. }
  141. /****************************** 对外 ***************************************/
  142. module.exports = {
  143. XMQTT_SYSTEM,
  144. XBLUFI_TYPE,
  145. OnFireEvent,
  146. notifyDeviceMsgEvent,
  147. listenDeviceMsgEvent,
  148. notifyStartDiscoverBle,
  149. listenStartDiscoverBle,
  150. notifyConnectBle,
  151. listenConnectBle,
  152. notifyInitBleEsp32,
  153. listenInitBleEsp32,
  154. notifySendRouterSsidAndPassword,
  155. listenSendRouterSsidAndPassword,
  156. notifySendCustomData,
  157. listenSendCustomData,
  158. initXBlufi,
  159. };