smartmeter-app/utils/blufi/xBlufi.js

211 lines
5.2 KiB
JavaScript
Raw Normal View History

2024-04-27 17:20:50 +08:00
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
*/
function initXBlufi(type) {
switch (type) {
case XMQTT_SYSTEM.Alis:
break;
case XMQTT_SYSTEM.WeChat:
$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
};