xBlufi.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  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_CONNECT_NEAR_ROUTER_LISTS: '5',
  17. TYPE_GET_DEVICE_LISTS_START: ' 41', //发现设备列表回调开始
  18. TYPE_GET_DEVICE_LISTS_STOP: '42', //停止发现设备列表回调
  19. };
  20. let OnFireEvent = {
  21. EVENT_START_DISCONORY: '0', //蓝牙状态事件 发现设备
  22. EVENT_CONNECT_DISCONNECT: '1', //通知连接或断开蓝牙
  23. EVENT_NOFITY_INIT_ESP32: '3', //通知获取蓝牙设备的服务uuid列表等初始化工作
  24. ENENT_ALL: '6',
  25. EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD: '50', //通知发送路由器的ssid和password
  26. EVENT_NOFITY_SEND_CUSTON_DATA: '51', //通知发送自定义数据
  27. EVENT_NOFITY_SEND_GET_ROUTER_SSID:"52",//获取周围的SSID
  28. }
  29. /**
  30. * 初始化
  31. * @param type 参考 XMQTT_SYSTEM
  32. */
  33. function initXBlufi(type) {
  34. switch (type) {
  35. case XMQTT_SYSTEM.Alis:
  36. break;
  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. console.log('notifyConnectBle 蓝牙准备连接的deviceId --------------')
  77. mOnFire.fire(OnFireEvent.EVENT_CONNECT_DISCONNECT, options);
  78. }
  79. /**
  80. * 开始或停止连接的蓝牙设备
  81. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  82. */
  83. function listenConnectBle(isSetListener, funtion) {
  84. if (isSetListener) {
  85. mOnFire.on(OnFireEvent.EVENT_CONNECT_DISCONNECT, funtion)
  86. } else {
  87. mOnFire.un(funtion)
  88. }
  89. }
  90. /**
  91. * 通知初始化获取设备的服务列表等信息
  92. * @param options 连接参数 {"deviceId":"设备的设备id"}
  93. */
  94. function notifyInitBleEsp32(options) {
  95. mOnFire.fire(OnFireEvent.EVENT_NOFITY_INIT_ESP32, options);
  96. }
  97. /**
  98. * 通知初始化获取设备的服务列表等信息
  99. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  100. */
  101. function listenInitBleEsp32(isSetListener, funtion) {
  102. if (isSetListener) {
  103. mOnFire.on(OnFireEvent.EVENT_NOFITY_INIT_ESP32, funtion)
  104. } else {
  105. mOnFire.un(funtion)
  106. }
  107. }
  108. /**
  109. * 获取模组周围的SSID
  110. * @param options NULL
  111. */
  112. function notifySendGetNearRouterSsid() {
  113. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_GET_ROUTER_SSID, null);
  114. }
  115. /**
  116. * 获取模组周围的SSID
  117. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  118. */
  119. function listenSendGetNearRouterSsid(isSetListener, funtion) {
  120. if (isSetListener) {
  121. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_GET_ROUTER_SSID, funtion)
  122. } else {
  123. mOnFire.un(funtion)
  124. }
  125. }
  126. /**
  127. * 发送要连接的路由器的ssid和密码
  128. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","ssid":"路由器名字","password":"密码"}
  129. */
  130. function notifySendRouterSsidAndPassword(options) {
  131. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, options);
  132. }
  133. /**
  134. * 发送要连接的路由器的ssid和密码
  135. * @param options 连接参数 {"isStart":true} 是否开始发现设备
  136. */
  137. function listenSendRouterSsidAndPassword(isSetListener, funtion) {
  138. if (isSetListener) {
  139. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, funtion)
  140. } else {
  141. mOnFire.un(funtion)
  142. }
  143. }
  144. /**
  145. * 发送自定义数据
  146. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  147. */
  148. function notifySendCustomData(options) {
  149. mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, options);
  150. }
  151. /**
  152. * 发送自定义数据
  153. * @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
  154. */
  155. function listenSendCustomData(isSetListener, funtion) {
  156. if (isSetListener) {
  157. mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, funtion)
  158. } else {
  159. mOnFire.un(funtion)
  160. }
  161. }
  162. /****************************** 对外 ***************************************/
  163. module.exports = {
  164. XMQTT_SYSTEM,
  165. XBLUFI_TYPE,
  166. OnFireEvent,
  167. notifyDeviceMsgEvent,
  168. listenDeviceMsgEvent,
  169. notifyStartDiscoverBle,
  170. listenStartDiscoverBle,
  171. notifyConnectBle,
  172. listenConnectBle,
  173. notifyInitBleEsp32,
  174. listenInitBleEsp32,
  175. notifySendRouterSsidAndPassword,
  176. listenSendRouterSsidAndPassword,
  177. notifySendCustomData,
  178. listenSendCustomData,
  179. notifySendGetNearRouterSsid,
  180. listenSendGetNearRouterSsid,
  181. initXBlufi,
  182. };