xBlufi.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. ///Alis
  34. case XMQTT_SYSTEM.Alis:
  35. break;
  36. ///WeChat
  37. case XMQTT_SYSTEM.WeChat:
  38. $wxBlufiImpl.init();
  39. break;
  40. }
  41. }
  42. function notifyDeviceMsgEvent(options) {
  43. mOnFire.fire(OnFireEvent.ENENT_ALL, options);
  44. }
  45. function listenDeviceMsgEvent(isSetListener, funtion) {
  46. if (isSetListener) {
  47. mOnFire.on(OnFireEvent.ENENT_ALL, funtion)
  48. } else {
  49. mOnFire.un(funtion)
  50. }
  51. }
  52. /**
  53. * 开始或停止发现附近的蓝牙设备
  54. * @param options 连接参数 {"isStart":true , "filter":"名字过滤"} :是否开始发现设备
  55. */
  56. function notifyStartDiscoverBle(options) {
  57. mOnFire.fire(OnFireEvent.EVENT_START_DISCONORY, options);
  58. }
  59. /**
  60. * 开始或停止发现附近的蓝牙设备
  61. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  62. */
  63. function listenStartDiscoverBle(isSetListener, funtion) {
  64. if (isSetListener) {
  65. mOnFire.on(OnFireEvent.EVENT_START_DISCONORY, funtion)
  66. } else {
  67. mOnFire.un(funtion)
  68. }
  69. }
  70. /**
  71. * 连接或断开 蓝牙连接
  72. *
  73. * @param options 连接参数 {"connect":true,"deviceID":"设备id,蓝牙发现列表获取"}
  74. */
  75. function notifyConnectBle(options) {
  76. mOnFire.fire(OnFireEvent.EVENT_CONNECT_DISCONNECT, options);
  77. }
  78. /**
  79. * 开始或停止连接的蓝牙设备
  80. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  81. */
  82. function listenConnectBle(isSetListener, funtion) {
  83. if (isSetListener) {
  84. mOnFire.on(OnFireEvent.EVENT_CONNECT_DISCONNECT, funtion)
  85. } else {
  86. mOnFire.un(funtion)
  87. }
  88. }
  89. /**
  90. * 通知初始化获取设备的服务列表等信息
  91. * @param options 连接参数 {"deviceId":"设备的设备id"}
  92. */
  93. function notifyInitBleEsp32(options) {
  94. mOnFire.fire(OnFireEvent.EVENT_NOFITY_INIT_ESP32, options);
  95. }
  96. /**
  97. * 通知初始化获取设备的服务列表等信息
  98. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  99. */
  100. function listenInitBleEsp32(isSetListener, funtion) {
  101. if (isSetListener) {
  102. mOnFire.on(OnFireEvent.EVENT_NOFITY_INIT_ESP32, funtion)
  103. } else {
  104. mOnFire.un(funtion)
  105. }
  106. }
  107. /**
  108. * 发送要连接的路由器的ssid和密码
  109. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","ssid":"路由器名字","password":"密码"}
  110. */
  111. function notifySendRouterSsidAndPassword(options) {
  112. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, options);
  113. }
  114. /**
  115. * 发送要连接的路由器的ssid和密码
  116. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  117. */
  118. function listenSendRouterSsidAndPassword(isSetListener, funtion) {
  119. if (isSetListener) {
  120. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, funtion)
  121. } else {
  122. mOnFire.un(funtion)
  123. }
  124. }
  125. /**
  126. * 发送自定义数据
  127. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  128. */
  129. function notifySendCustomData(options) {
  130. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, options);
  131. }
  132. /**
  133. * 发送自定义数据
  134. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  135. */
  136. function listenSendCustomData(isSetListener, funtion) {
  137. if (isSetListener) {
  138. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, funtion)
  139. } else {
  140. mOnFire.un(funtion)
  141. }
  142. }
  143. /****************************** 对外 ***************************************/
  144. module.exports = {
  145. XMQTT_SYSTEM,
  146. XBLUFI_TYPE,
  147. OnFireEvent,
  148. notifyDeviceMsgEvent,
  149. listenDeviceMsgEvent,
  150. notifyStartDiscoverBle,
  151. listenStartDiscoverBle,
  152. notifyConnectBle,
  153. listenConnectBle,
  154. notifyInitBleEsp32,
  155. listenInitBleEsp32,
  156. notifySendRouterSsidAndPassword,
  157. listenSendRouterSsidAndPassword,
  158. notifySendCustomData,
  159. listenSendCustomData,
  160. initXBlufi,
  161. };