smartmeter-app/utils/blufi/xBlufi.js
2024-08-31 18:01:17 +08:00

216 lines
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var mOnFire = require("./other/onfire.js");
var $wxBlufiImpl = require("./xBlufi-wx-impl.js"); // 0表示阿里支付宝小程序 1表示微信小程序
let XMQTT_SYSTEM = {
Alis: 0,
WeChat: 1
};
let XBLUFI_TYPE = {
TYPE_STATUS_CONNECTED: '-2',
/// 设备连接状态回调
TYPE_CLOSE_CONNECTED: '-1',
///主动关闭连接
TYPE_CONNECTED: '0',
//主动连接
TYPE_GET_DEVICE_LISTS: '1',
//发现设备列表回调
TYPE_INIT_ESP32_RESULT: '2',
TYPE_RECIEVE_CUSTON_DATA: '3',
//接收到自定义数据
TYPE_CONNECT_ROUTER_RESULT: '4',
TYPE_RECIEVE_MY_DATA: '5',
TYPE_GET_DEVICE_LISTS_START: ' 41',
//发现设备列表回调开始
TYPE_GET_DEVICE_LISTS_STOP: '42' //停止发现设备列表回调
};
let OnFireEvent = {
EVENT_START_DISCONORY: '0',
//蓝牙状态事件 发现设备
EVENT_CONNECT_DISCONNECT: '1',
//通知连接或断开蓝牙
EVENT_NOFITY_INIT_ESP32: '3',
//通知获取蓝牙设备的服务uuid列表等初始化工作
ENENT_ALL: '6',
EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD: '50',
//通知发送路由器的ssid和password
EVENT_NOFITY_SEND_CUSTON_DATA: '51' //通知发送自定义数据
};
/**
* 初始化
* @param type 参考 XMQTT_SYSTEM
*/
let once = 0
function initXBlufi(type) {
switch (type) {
case XMQTT_SYSTEM.Alis:
break;
case XMQTT_SYSTEM.WeChat:
if(once==0)
{
once = 1;
$wxBlufiImpl.init();
}
break;
}
}
let my_path = ''
function set_path(type) {
my_path = type;
}
function get_path(type) {
return my_path;
}
function notifyDeviceMsgEvent(options) {
mOnFire.fire(OnFireEvent.ENENT_ALL, options);
}
function listenDeviceMsgEvent(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.ENENT_ALL, funtion);
} else {
mOnFire.un(funtion);
}
}
/**
* 开始或停止发现附近的蓝牙设备
* @param options 连接参数 {"isStart":true , "filter":"名字过滤"} :是否开始发现设备
*/
function notifyStartDiscoverBle(options) {
mOnFire.fire(OnFireEvent.EVENT_START_DISCONORY, options);
}
/**
* 开始或停止发现附近的蓝牙设备
* @param options 连接参数 {"isStart":true} 是否开始发现设备
*/
function listenStartDiscoverBle(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.EVENT_START_DISCONORY, funtion);
} else {
mOnFire.un(funtion);
}
}
/**
* 连接或断开 蓝牙连接
*
* @param options 连接参数 {"connect":true,"deviceID":"设备id蓝牙发现列表获取"}
*/
function notifyConnectBle(options) {
// console.log('notifyConnectBle 蓝牙准备连接的deviceId --------------');
mOnFire.fire(OnFireEvent.EVENT_CONNECT_DISCONNECT, options);
}
/**
* 开始或停止连接的蓝牙设备
* @param options 连接参数 {"isStart":true} 是否开始发现设备
*/
function listenConnectBle(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.EVENT_CONNECT_DISCONNECT, funtion);
} else {
mOnFire.un(funtion);
}
}
/**
* 通知初始化获取设备的服务列表等信息
* @param options 连接参数 {"deviceId":"设备的设备id"}
*/
function notifyInitBleEsp32(options) {
mOnFire.fire(OnFireEvent.EVENT_NOFITY_INIT_ESP32, options);
}
/**
* 通知初始化获取设备的服务列表等信息
* @param options 连接参数 {"isStart":true} 是否开始发现设备
*/
function listenInitBleEsp32(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.EVENT_NOFITY_INIT_ESP32, funtion);
} else {
mOnFire.un(funtion);
}
}
/**
* 发送要连接的路由器的ssid和密码
* @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","ssid":"路由器名字","password":"密码"}
*/
function notifySendRouterSsidAndPassword(options) {
mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, options);
}
/**
* 发送要连接的路由器的ssid和密码
* @param options 连接参数 {"isStart":true} 是否开始发现设备
*/
function listenSendRouterSsidAndPassword(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_ROUTER_SSID_PASSWORD, funtion);
} else {
mOnFire.un(funtion);
}
}
/**
* 发送自定义数据
* @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
*/
function notifySendCustomData(options) {
// console.log("设备数据",options)
mOnFire.fire(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, options);
}
/**
* 发送自定义数据
* @param options 连接参数 {"deviceId":"设备的设备id","serverId":"服务id","characterId":"通道","customData":"自定义数据""}
*/
function listenSendCustomData(isSetListener, funtion) {
if (isSetListener) {
mOnFire.on(OnFireEvent.EVENT_NOFITY_SEND_CUSTON_DATA, funtion);
} else {
mOnFire.un(funtion);
}
}
/****************************** 对外 ***************************************/
module.exports = {
XMQTT_SYSTEM,
XBLUFI_TYPE,
OnFireEvent,
notifyDeviceMsgEvent,
listenDeviceMsgEvent,
notifyStartDiscoverBle,
listenStartDiscoverBle,
notifyConnectBle,
listenConnectBle,
notifyInitBleEsp32,
listenInitBleEsp32,
notifySendRouterSsidAndPassword,
listenSendRouterSsidAndPassword,
notifySendCustomData,
listenSendCustomData,
initXBlufi,
set_path,
get_path
};