|
@@ -0,0 +1,77 @@
|
|
|
|
+module.exports = {
|
|
|
|
+ compareList: compareList,
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function compareList(deviceList, changeCallback, addBlueCallback, autoConnected, deviceListSelect) {
|
|
|
|
+ if (deviceList.length > 0) {
|
|
|
|
+ const {
|
|
|
|
+ BtHelper
|
|
|
|
+ } = require('../../devices/bt_helper.js');
|
|
|
|
+ if (BtHelper.getInstance().getCallBackConnect() == null) {
|
|
|
|
+ var compareList = BtHelper.getInstance().getCompareList();
|
|
|
|
+ var dissmissDevice = BtHelper.getInstance().getDissmissDevice();
|
|
|
|
+
|
|
|
|
+ ///去掉未连接的离线的
|
|
|
|
+ for (var i = 0; i < dissmissDevice.length; i++) {
|
|
|
|
+ for (var j = 0; j < compareList.length; j++) {
|
|
|
|
+ if (compareList[j].deviceId == dissmissDevice[i].deviceId) {
|
|
|
|
+ compareList.splice(j, 1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (compareList.length > 0) {
|
|
|
|
+ ///对比在线的蓝牙设备
|
|
|
|
+ var isChanged = false;
|
|
|
|
+ for (var i = 0; i < deviceList.length; i++) {
|
|
|
|
+ var tempItem = deviceList[i];
|
|
|
|
+ if (tempItem.connectType != 3) {
|
|
|
|
+ var has = false;
|
|
|
|
+ for (var j = 0; j < compareList.length; j++) {
|
|
|
|
+ // "state":"online" "offline" MW-SR1(4G_WIFI)
|
|
|
|
+ if (tempItem.deviceId === compareList[j].deviceId) {
|
|
|
|
+ has = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (has) {
|
|
|
|
+ if (tempItem.state != "online") {
|
|
|
|
+ isChanged = true;
|
|
|
|
+ tempItem.state = "online";
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (tempItem.state != "offline") {
|
|
|
|
+ isChanged = true;
|
|
|
|
+ tempItem.state = "offline";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (isChanged) {
|
|
|
|
+ changeCallback(deviceList);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ///没有连接则连接第一个在线的蓝牙
|
|
|
|
+ if (!autoConnected && deviceListSelect == null) {
|
|
|
|
+ var list = getCurrentPages()[0].getDeviceList();
|
|
|
|
+ for (var i = 0; i < list.length; i++) {
|
|
|
|
+ var item = list[i];
|
|
|
|
+ if (item.connectType == 1 && item.state == "online") {
|
|
|
|
+ item.name = item.devName;
|
|
|
|
+ BtHelper.getInstance().connect(item, function (data) {
|
|
|
|
+ if (data) {
|
|
|
|
+ addBlueCallback(item);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ BtHelper.getInstance().startScan(null, null, null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+};
|