浇花器
This commit is contained in:
parent
87aa307761
commit
3a672a3795
|
|
@ -118,7 +118,7 @@ function string2buffer(str) {
|
|||
}
|
||||
af += s;
|
||||
var n1 = parseInt('110' + af.substring(0, 5), 2);
|
||||
var n2 = parseInt('110' + af.slice(-12), 2);
|
||||
var n2 = parseInt('110' + af.substring(5), 2);
|
||||
if (n1 > 127) n1 -= 256;
|
||||
if (n2 > 127) n2 -= 256;
|
||||
bytes.push(n1);
|
||||
|
|
@ -417,36 +417,44 @@ function send_ota_data(deviceId, serviceId, characteristicId, data) {
|
|||
});
|
||||
});
|
||||
}
|
||||
|
||||
let send_num =0
|
||||
function send_ota_data_num(deviceId, serviceId, characteristicId, data, num) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
uni.writeBLECharacteristicValue({
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
characteristicId: characteristicId,
|
||||
value: data,
|
||||
// writeType:'writeNoResponse',
|
||||
// value: buffer,
|
||||
success: function (res) {
|
||||
// console.log("送数据成功")
|
||||
// let obj = {
|
||||
// 'type': mDeviceEvent
|
||||
// .XBLUFI_TYPE
|
||||
// .TYPE_RECIEVE_MY_DATA,
|
||||
// 'result': true,
|
||||
// 'data': num
|
||||
// };
|
||||
// mDeviceEvent
|
||||
// .notifyDeviceMsgEvent(
|
||||
// obj
|
||||
// );
|
||||
resolve(res)
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log("送数据失败")
|
||||
reject(res)
|
||||
}
|
||||
});
|
||||
// console.log("送数12据")
|
||||
if(send_num++%5==0)
|
||||
{
|
||||
uni.writeBLECharacteristicValue({
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
characteristicId: characteristicId,
|
||||
value: data,
|
||||
writeType:'write',
|
||||
success: function (res) {
|
||||
resolve(res)
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log("送数据失败")
|
||||
reject(FALSE)
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
uni.writeBLECharacteristicValue({
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
characteristicId: characteristicId,
|
||||
value: data,
|
||||
writeType:'writeNoResponse',
|
||||
success: function (res) {
|
||||
resolve(res)
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log("送数据失败")
|
||||
reject(FALSE)
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -649,6 +657,94 @@ function write_cmd_program(deviceId, serviceId, characteristicId, data) {
|
|||
// var requestTask =
|
||||
}
|
||||
|
||||
function write_cmd_program_dd(deviceId, serviceId, characteristicId, data) {
|
||||
var address = 0;
|
||||
var len = 0;
|
||||
var buf = 0;
|
||||
var dv = 0;
|
||||
let result;
|
||||
console.log("更新122")
|
||||
const mtu = 212;
|
||||
uni.setBLEMTU({
|
||||
deviceId: self
|
||||
.data
|
||||
.deviceId,
|
||||
mtu,
|
||||
success: (
|
||||
res
|
||||
) => {
|
||||
console
|
||||
.log(
|
||||
"setBLEMTU success>>",
|
||||
res
|
||||
)
|
||||
},
|
||||
fail: (
|
||||
res
|
||||
) => {
|
||||
console
|
||||
.log(
|
||||
"setBLEMTU fail>>",
|
||||
res
|
||||
)
|
||||
},
|
||||
});
|
||||
|
||||
var value1 = util.write_ota_erase(CMD_IAP_ERASE, 4, 0, 0);
|
||||
var typedArray1 = new Uint8Array(value1);
|
||||
console.log("送擦除数据", result)
|
||||
send_ota_data(deviceId, serviceId, characteristicId, typedArray1.buffer);
|
||||
setTimeout(function () {
|
||||
uni.request({
|
||||
url: 'https://www.zenghi.com/gj/三代钉钉.bin', //仅为示例,并非真实接口地址。
|
||||
//url: 'https://www.zenghi.com/gj/BLE钉钉.bin', //仅为示例,并非真实接口地址。
|
||||
// url: 'https://www.zenghi.com/gj/电子秤.bin', //仅为示例,并非真实接口地址。
|
||||
responseType: 'arraybuffer',
|
||||
success: (res) => {
|
||||
dv = new DataView(res.data);
|
||||
var bufferLength = dv.byteLength;
|
||||
var sum = 0;
|
||||
for (var i = 0; i < bufferLength; i++) {
|
||||
sum += dv.getUint8(i)
|
||||
}
|
||||
result = dv
|
||||
console.log(result);
|
||||
console.log("content-length", bufferLength);
|
||||
console.log("sum", sum);
|
||||
len = bufferLength
|
||||
var p_data = 0;
|
||||
var p_ii = 0;
|
||||
while (address <= len) {
|
||||
var offst = 176;
|
||||
if (address + 176 > len) {
|
||||
offst = len - address;
|
||||
}
|
||||
var value = util.write_ota_program(CMD_IAP_PROM, offst, address, result);
|
||||
var typedArray = new Uint8Array(value);
|
||||
send_ota_data_num(deviceId, serviceId, characteristicId, typedArray.buffer, (address /
|
||||
len));
|
||||
address = address + 176;
|
||||
|
||||
}
|
||||
|
||||
// return new Promise
|
||||
var value2 = util.write_ota_sum(CMD_IAP_SUM, bufferLength, sum);
|
||||
var typedArray2 = new Uint8Array(value2);
|
||||
console.log("送结束数据", value2)
|
||||
send_ota_data_num(deviceId, serviceId, characteristicId, typedArray2.buffer, 100);
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log("获取失败");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
, "1000");
|
||||
|
||||
// var requestTask =
|
||||
}
|
||||
|
||||
|
||||
function write_cmd_program_zy(deviceId, serviceId, characteristicId, data) {
|
||||
var address = 0;
|
||||
var len = 0;
|
||||
|
|
@ -824,7 +920,6 @@ function write_cmd_program_yk(deviceId, serviceId, characteristicId, data) {
|
|||
}
|
||||
|
||||
|
||||
|
||||
function write_cmd_program_fg(web, deviceId, serviceId, characteristicId, data) {
|
||||
var address = 0;
|
||||
var len = 0;
|
||||
|
|
@ -893,7 +988,7 @@ function write_cmd_program_fg(web, deviceId, serviceId, characteristicId, data)
|
|||
len))
|
||||
|
||||
address = address + 176;
|
||||
console.log("送数据", qq)
|
||||
// console.log("送数据", qq)
|
||||
}
|
||||
|
||||
// return new Promise
|
||||
|
|
@ -912,104 +1007,8 @@ function write_cmd_program_fg(web, deviceId, serviceId, characteristicId, data)
|
|||
|
||||
// var requestTask =
|
||||
}
|
||||
// 模拟一个异步操作,比如网络请求
|
||||
function fetchData() {
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
resolve('Data fetched!');
|
||||
}, 20); // 模拟网络延迟 2 秒
|
||||
});
|
||||
}
|
||||
// 模拟一个异步操作,比如网络请求
|
||||
function fetchData2() {
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
resolve('Data fetched!');
|
||||
}, 2000); // 模拟网络延迟 2 秒
|
||||
});
|
||||
}
|
||||
async function main(res, my_sum, deviceId, serviceId, characteristicId) {
|
||||
var address = 0;
|
||||
var len = 0;
|
||||
var buf = 0;
|
||||
var dv = 0;
|
||||
let result;
|
||||
dv = new DataView(res.data);
|
||||
var bufferLength = dv.byteLength;
|
||||
var sum = 0;
|
||||
for (var i = 0; i < bufferLength; i++) {
|
||||
sum += dv.getUint8(i)
|
||||
}
|
||||
const data1 = await fetchData2();
|
||||
result = dv
|
||||
console.log(result);
|
||||
console.log("content-length", bufferLength);
|
||||
console.log("sum", sum);
|
||||
len = bufferLength
|
||||
if (sum != my_sum && my_sum != 100) {
|
||||
console.log("不相等my_sum", my_sum);
|
||||
return;
|
||||
}
|
||||
var p_data = 0;
|
||||
var p_ii = 0;
|
||||
while (address <= len) {
|
||||
var offst = 176;
|
||||
if (address + 176 > len) {
|
||||
offst = len - address;
|
||||
}
|
||||
var value = util.write_ota_program(CMD_IAP_PROM, offst, address, result);
|
||||
var typedArray = new Uint8Array(value);
|
||||
// console.log("12121")
|
||||
const data = await fetchData();
|
||||
|
||||
var qq = await send_ota_data_num(deviceId, serviceId, characteristicId, typedArray.buffer, (address /
|
||||
len))
|
||||
if (qq == false) {
|
||||
console.log("返回", sum);
|
||||
return
|
||||
}
|
||||
address = address + 176;
|
||||
// //console.log("送数据", qq)
|
||||
}
|
||||
const data = await fetchData();
|
||||
// return new Promise
|
||||
var value2 = util.write_ota_sum(CMD_IAP_SUM, bufferLength, sum);
|
||||
var typedArray2 = new Uint8Array(value2);
|
||||
// console.log("送结束数据", value2)
|
||||
send_ota_data_num(deviceId, serviceId, characteristicId, typedArray2.buffer, 100);
|
||||
}
|
||||
function write_cmd_program_sum(web, sum, deviceId, serviceId, characteristicId, data) {
|
||||
var address = 0;
|
||||
var len = 0;
|
||||
var buf = 0;
|
||||
var dv = 0;
|
||||
let result;
|
||||
console.log("更新122")
|
||||
const mtu = 230;
|
||||
var value1 = util.write_ota_erase(CMD_IAP_ERASE, 4, 0, 0);
|
||||
var typedArray1 = new Uint8Array(value1);
|
||||
console.log("翻盖柜", typedArray1)
|
||||
console.log("翻盖柜", deviceId)
|
||||
console.log("翻盖柜", serviceId)
|
||||
console.log("翻盖柜", characteristicId)
|
||||
send_ota_data(deviceId, serviceId, characteristicId, typedArray1.buffer);
|
||||
// return;
|
||||
setTimeout(function () {
|
||||
uni.request({
|
||||
url: web, //仅为示例,并非真实接口地址。
|
||||
//url: 'https://www.zenghi.com/gj/BLE钉钉.bin', //仅为示例,并非真实接口地址。
|
||||
// url: 'https://www.zenghi.com/gj/电子秤.bin', //仅为示例,并非真实接口地址。
|
||||
responseType: 'arraybuffer',
|
||||
success: (res) => {
|
||||
main(res, sum, deviceId, serviceId, characteristicId)
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log("获取失败");
|
||||
}
|
||||
})
|
||||
}
|
||||
, 3000);
|
||||
}
|
||||
|
||||
|
||||
function writeCutomsData(deviceId, serviceId, characteristicId, data) {
|
||||
// var obj = {},
|
||||
|
|
@ -1037,7 +1036,11 @@ function writeCutomsData(deviceId, serviceId, characteristicId, data) {
|
|||
console.log("data", data)
|
||||
// if (data.indexOf("update") != -1 && data.indexOf("all_update") == -1) {
|
||||
// console.log("送数update据成功")
|
||||
// write_cmd_program(deviceId, serviceId, characteristicId, data)
|
||||
// // write_cmd_program(deviceId, serviceId, characteristicId, data)
|
||||
// }
|
||||
// else if (data.indexOf("updddate") != -1 && data.indexOf("all_update") == -1) {
|
||||
// console.log("送数update据成功")
|
||||
// write_cmd_program_dd(deviceId, serviceId, characteristicId, data)
|
||||
// }
|
||||
// else if (data.indexOf("upzydsm") != -1 ) {
|
||||
// console.log("送数upzydsm据成功")
|
||||
|
|
@ -1047,20 +1050,15 @@ function writeCutomsData(deviceId, serviceId, characteristicId, data) {
|
|||
// console.log("送数upykdate据成功")
|
||||
// write_cmd_program_yk(deviceId, serviceId, characteristicId, data)
|
||||
// }
|
||||
// else if (data.indexOf("fgdate") != -1 ) {
|
||||
// write_cmd_program_fg('https://fg.zenghi.com/gj/翻盖柜.bin',deviceId, serviceId, characteristicId, data)
|
||||
// }
|
||||
// else
|
||||
if (data.sum == 100) {
|
||||
write_cmd_program_fg(data.http,deviceId, serviceId, characteristicId, data)
|
||||
}
|
||||
|
||||
// else if (data.indexOf("ble_go7p") != -1 ) {
|
||||
// console.log("送数update据成功")
|
||||
// write_cmd_program7p(deviceId, serviceId, characteristicId, data)
|
||||
// }
|
||||
if(data.sum != undefined){
|
||||
if(data.http != undefined){
|
||||
console.log('升级');
|
||||
write_cmd_program_sum(data.http, data.sum, deviceId, serviceId, characteristicId, data)
|
||||
}
|
||||
}
|
||||
else {
|
||||
var buffer = string2buffer(data)
|
||||
uni.writeBLECharacteristicValue({
|
||||
|
|
@ -1073,7 +1071,6 @@ function writeCutomsData(deviceId, serviceId, characteristicId, data) {
|
|||
console.log("送数据成功")
|
||||
},
|
||||
fail: function (res) { //console.log(257);
|
||||
console.log("送数据成功",res)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -1201,7 +1198,6 @@ function init() {
|
|||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
});
|
||||
console.log("初始化!!!!!!!!!!!!")
|
||||
mDeviceEvent.listenStartDiscoverBle(true, function (options) {
|
||||
if (options.isStart) {
|
||||
//第一步检查蓝牙适配器是否可用
|
||||
|
|
@ -1210,147 +1206,123 @@ function init() {
|
|||
}); //第二步关闭适配器,重新来搜索
|
||||
|
||||
uni.closeBluetoothAdapter({
|
||||
complete: function (res)
|
||||
{
|
||||
console.log("这里蓝牙数据")
|
||||
wx.openBluetoothAdapter({
|
||||
complete: function (res) {
|
||||
uni.openBluetoothAdapter({
|
||||
success: function (res) {
|
||||
uni.getBluetoothAdapterState({
|
||||
success: function (res) {
|
||||
console.log("这里蓝牙数据222")
|
||||
{
|
||||
let devicesList = [];
|
||||
let countsTimes = 0;
|
||||
uni.onBluetoothDeviceFound(function (devices) {
|
||||
//剔除重复设备,兼容不同设备API的不同返回值
|
||||
var isnotexist = true;
|
||||
|
||||
// console.log('devices',devices);
|
||||
if (devices.deviceId) {
|
||||
if (devices.advertisData) {
|
||||
devices.advertisData = buf2hex(devices.advertisData);
|
||||
} else {
|
||||
devices.advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devicesList.length; i++) {
|
||||
if (devices.deviceId === devicesList[i].deviceId) {
|
||||
uni.stopBluetoothDevicesDiscovery({
|
||||
success: function (res) {
|
||||
let devicesList = [];
|
||||
let countsTimes = 0;
|
||||
uni.onBluetoothDeviceFound(function (devices) {
|
||||
//剔除重复设备,兼容不同设备API的不同返回值
|
||||
var isnotexist = true;
|
||||
|
||||
// console.log('devices',devices);
|
||||
if (devices.deviceId) {
|
||||
if (devices.advertisData) {
|
||||
devices.advertisData = buf2hex(devices.advertisData);
|
||||
} else {
|
||||
devices.advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devicesList.length; i++) {
|
||||
if (devices.deviceId === devicesList[i].deviceId) {
|
||||
isnotexist = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices);
|
||||
}
|
||||
} else if (devices.devices) {
|
||||
// console.log(devices.devices[0])
|
||||
if (devices.devices[0].name != '开发板'
|
||||
&& devices.devices[0].name != '无线钉钉'
|
||||
&& devices.devices[0].name != '无线工具'
|
||||
// && devices.devices[0].indexOf('TOOL') == -1
|
||||
&& devices.devices[0].name.indexOf('WATE') == -1
|
||||
&& devices.devices[0].name.indexOf('SMSJ') == -1
|
||||
// && devices.devices[0].name.indexOf('BBLE') == -1
|
||||
// && devices.devices[0].name.indexOf('FXLE') == -1
|
||||
// && devices.devices[0].name.indexOf('CCYK') == -1
|
||||
) {
|
||||
// console.log("跳过")
|
||||
isnotexist = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices);
|
||||
}
|
||||
} else if (devices.devices) {
|
||||
// console.log(devices.devices[0],'4512544')
|
||||
// if (devices.devices[0].name != '开发板'
|
||||
// && devices.devices[0].name != 'SMART_R2XS'
|
||||
// && devices.devices[0].name != 'SMART_R2XS'
|
||||
// )
|
||||
if (devices.devices[0].name.indexOf("WATER") != -1 || devices.devices[0].name.indexOf("SMSJ:") != -1){
|
||||
// if ( devices.devices[0].name.indexOf("gjkg") != -1 ){
|
||||
// console.log("跳过",devices.devices[0].name)
|
||||
// isnotexist = false;
|
||||
isnotexist = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
isnotexist = false;
|
||||
}
|
||||
// isnotexist = true;
|
||||
|
||||
if (devices.devices[0].advertisData) {
|
||||
devices.devices[0].advertisData = buf2hex(devices.devices[0].advertisData);
|
||||
} else {
|
||||
devices.devices[0].advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devicesList.length; i++) {
|
||||
if (devices.devices[0].deviceId == devicesList[i].deviceId) {
|
||||
isnotexist = false;
|
||||
if (devices.devices[0].advertisData) {
|
||||
devices.devices[0].advertisData = buf2hex(devices.devices[0].advertisData);
|
||||
} else {
|
||||
devices.devices[0].advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devicesList.length; i++) {
|
||||
if (devices.devices[0].deviceId == devicesList[i].deviceId) {
|
||||
isnotexist = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices.devices[0]);
|
||||
}
|
||||
} else if (devices[0]) {
|
||||
if (devices[0].advertisData) {
|
||||
devices[0].advertisData = buf2hex(devices[0].advertisData);
|
||||
} else {
|
||||
devices[0].advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devices_list.length; i++) {
|
||||
if (devices[0].deviceId == devicesList[i].deviceId) {
|
||||
isnotexist = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices.devices[0]);
|
||||
console.log("devicesList",devicesList);
|
||||
// let obj = {
|
||||
// 'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS,
|
||||
// 'result': true,
|
||||
// 'data': devicesList
|
||||
// };
|
||||
// mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
}
|
||||
} else if (devices[0]) {
|
||||
if (devices[0].advertisData) {
|
||||
devices[0].advertisData = buf2hex(devices[0].advertisData);
|
||||
} else {
|
||||
devices[0].advertisData = '';
|
||||
}
|
||||
|
||||
for (var i = 0; i < devices_list.length; i++) {
|
||||
if (devices[0].deviceId == devicesList[i].deviceId) {
|
||||
isnotexist = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isnotexist) {
|
||||
devicesList.push(devices[0]);
|
||||
console.log("devicesList",devicesList);
|
||||
// let obj = {
|
||||
// 'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS,
|
||||
// 'result': true,
|
||||
// 'data': devicesList
|
||||
// };
|
||||
// mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
}
|
||||
}
|
||||
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS,
|
||||
'result': true,
|
||||
'data': devicesList
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
});
|
||||
|
||||
uni.startBluetoothDevicesDiscovery({
|
||||
allowDuplicatesKey: true,
|
||||
success: function (res) {
|
||||
console.log(res,'true');
|
||||
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS,
|
||||
'result': true,
|
||||
'data': res
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj); //开始扫码,清空列表
|
||||
|
||||
devicesList.length = 0;
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log(res,'false');
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
'result': false,
|
||||
'data': res
|
||||
'data': devicesList
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
// uni.stopBluetoothDevicesDiscovery({
|
||||
// success: function (res)
|
||||
// fail: function (res) {
|
||||
// let obj = {
|
||||
// 'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
// 'result': false,
|
||||
// 'data': res
|
||||
// };
|
||||
// mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
// }
|
||||
// });
|
||||
});
|
||||
uni.startBluetoothDevicesDiscovery({
|
||||
allowDuplicatesKey: true,
|
||||
success: function (res) {
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
'result': true,
|
||||
'data': res
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj); //开始扫码,清空列表
|
||||
|
||||
devicesList.length = 0;
|
||||
},
|
||||
fail: function (res) {
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
'result': false,
|
||||
'data': res
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
}
|
||||
});
|
||||
},
|
||||
fail: function (res) {
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START,
|
||||
'result': false,
|
||||
'data': res
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
}
|
||||
});
|
||||
},
|
||||
fail: function (res) {
|
||||
let obj = {
|
||||
|
|
@ -1396,12 +1368,10 @@ function init() {
|
|||
}
|
||||
});
|
||||
mDeviceEvent.listenConnectBle(true, function (options) {
|
||||
console.log("我要连接?", options.isStart,options);
|
||||
if (options.isStart){
|
||||
uni.createBLEConnection({
|
||||
deviceId: options.deviceId,
|
||||
success: (res) =>{
|
||||
// console.log(res,'100');
|
||||
console.log("我要连接?", options.isStart);
|
||||
if (options.isStart) uni.createBLEConnection({
|
||||
deviceId: options.deviceId,
|
||||
success: function (res) {
|
||||
self.data.deviceId = options.deviceId;
|
||||
mDeviceEvent.notifyDeviceMsgEvent({
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_CONNECTED,
|
||||
|
|
@ -1409,11 +1379,10 @@ function init() {
|
|||
'data': {
|
||||
deviceId: options.deviceId,
|
||||
name: options.name
|
||||
},
|
||||
}
|
||||
});
|
||||
},
|
||||
fail: (res) =>{
|
||||
// console.log(res,'1112');
|
||||
fail: function (res) {
|
||||
self.data.deviceId = null;
|
||||
mDeviceEvent.notifyDeviceMsgEvent({
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_CONNECTED,
|
||||
|
|
@ -1422,7 +1391,6 @@ function init() {
|
|||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
else uni.closeBLEConnection({
|
||||
deviceId: options.deviceId,
|
||||
success: function (res) {
|
||||
|
|
@ -1483,20 +1451,46 @@ function init() {
|
|||
let deviceId = options.deviceId;
|
||||
self.data.deviceId = options.deviceId;
|
||||
mac_id = options.deviceId;
|
||||
|
||||
setTimeout(() => {
|
||||
console.log(deviceId,'deviceIddeviceId');
|
||||
var mtu = 212
|
||||
uni.setBLEMTU({
|
||||
deviceId: self
|
||||
.data
|
||||
.deviceId,
|
||||
mtu,
|
||||
success: (
|
||||
res
|
||||
) => {
|
||||
console
|
||||
.log(
|
||||
"setBLEMTU success>>",
|
||||
res
|
||||
)
|
||||
},
|
||||
fail: (
|
||||
res
|
||||
) => {
|
||||
console
|
||||
.log(
|
||||
"setBLEMTU fail>>",
|
||||
res
|
||||
)
|
||||
},
|
||||
});
|
||||
|
||||
uni.getBLEDeviceServices({
|
||||
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
|
||||
deviceId: deviceId,
|
||||
success: function(res) {
|
||||
console.log("服务发现456", res)
|
||||
var services = res.services;
|
||||
|
||||
if (services.length > 0) {
|
||||
for (var i = 0; i < services.length; i++) {
|
||||
if (services[i].uuid === self.data.service_uuid) {
|
||||
var serviceId = services[i].uuid;
|
||||
uni.getBLEDeviceCharacteristics({
|
||||
|
||||
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
|
|
@ -1511,14 +1505,7 @@ setTimeout(() => {
|
|||
if (uuid == self.data.characteristic_write_uuid) {
|
||||
self.data.serviceId = serviceId;
|
||||
self.data.uuid = uuid;
|
||||
console.log("uuid", uuid)
|
||||
let obj = {
|
||||
'type': mDeviceEvent.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT,
|
||||
'result': true,
|
||||
'data': res
|
||||
};
|
||||
mDeviceEvent.notifyDeviceMsgEvent(obj);
|
||||
console.log('服务发现1111111');
|
||||
console.log("uuid", uuid)
|
||||
uni.notifyBLECharacteristicValueChange({
|
||||
state: true,
|
||||
// 启用 notify 功能
|
||||
|
|
@ -1528,29 +1515,7 @@ setTimeout(() => {
|
|||
success: function(res) {
|
||||
console.log("成功", res)
|
||||
writeCutomsData(self.data.deviceId, self.data.service_uuid, self.data.characteristic_write_uuid, "get_fw");
|
||||
|
||||
setTimeout(() => {
|
||||
const mtu = 212;
|
||||
uni.setBLEMTU({
|
||||
deviceId: self.data.deviceId,
|
||||
mtu,
|
||||
success: (
|
||||
res
|
||||
) => {
|
||||
console
|
||||
.log(
|
||||
"set1212BLEMTU success>>",
|
||||
res
|
||||
)
|
||||
},
|
||||
fail: (
|
||||
res
|
||||
) => {
|
||||
},
|
||||
});
|
||||
}, 1000);
|
||||
|
||||
console.log("fail getBLEDeviceServices:" + JSON.stringify(res));
|
||||
uni.onBLECharacteristicValueChange(function(res) {
|
||||
var my_str = Utf8ArrayToStr(res.value)
|
||||
if(my_str.indexOf("wifi_ok") != -1)
|
||||
|
|
@ -1645,7 +1610,7 @@ setTimeout(() => {
|
|||
}
|
||||
});
|
||||
|
||||
},700);
|
||||
}, 2000);
|
||||
});
|
||||
mDeviceEvent.listenSendRouterSsidAndPassword(true, function(options) {
|
||||
self.data.password = options.password;
|
||||
|
|
|
|||
|
|
@ -78,14 +78,14 @@
|
|||
<view class="name">
|
||||
<text>工作时长:</text>
|
||||
<view class="">
|
||||
<input type="text" v-model="miao"/>
|
||||
<input type="number" v-model="miao"/>
|
||||
秒
|
||||
</view>
|
||||
</view>
|
||||
<view class="name" style="border: 0;">
|
||||
<text>间隔时间:</text>
|
||||
<view class="">
|
||||
<input type="text" v-model="tian"/>
|
||||
<input type="number" v-model="tian"/>
|
||||
天
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -514,6 +514,7 @@
|
|||
// 获取时间部分并分割
|
||||
const timeParts = parts[1].split(",")
|
||||
// 解析为对象
|
||||
console.log(timeParts,'timePartstimePartstimeParts');
|
||||
this.csbobj = {
|
||||
hour: parseInt(timeParts[0]), // 小时
|
||||
minute: parseInt(timeParts[1]), // 分钟
|
||||
|
|
@ -521,8 +522,8 @@
|
|||
day: parseInt(timeParts[3]) // 天数
|
||||
}
|
||||
console.log(this.csbobj);
|
||||
this.shi = this.csbobj.hour
|
||||
this.fen = this.csbobj.minute
|
||||
this.shi = this.csbobj.hour < 10 ? '0' + this.csbobj.hour : this.csbobj.hour
|
||||
this.fen = this.csbobj.minute < 10 ? '0' + this.csbobj.minute : this.csbobj.minute
|
||||
this.miao = this.csbobj.second
|
||||
this.tian = this.csbobj.day
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
</view>
|
||||
|
||||
<!-- 点击搜索 -->
|
||||
<view class="btnss" @click="handleSearch" :class="{ 'searching': !flag }">
|
||||
<view class="btnss" @click="handleSearch">
|
||||
重新搜索
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -353,7 +353,7 @@
|
|||
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
|
||||
if (!options.result) {
|
||||
uni.showToast({
|
||||
title: '蓝牙未开启',
|
||||
title: '蓝牙初始化失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
|
|
@ -373,14 +373,6 @@
|
|||
},
|
||||
// 处理搜索按钮点击
|
||||
handleSearch() {
|
||||
if (!this.flag) {
|
||||
uni.showToast({
|
||||
title: '请等待蓝牙搜索完成后再操作',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
return
|
||||
}
|
||||
this.btnss()
|
||||
},
|
||||
}
|
||||
|
|
@ -448,11 +440,6 @@
|
|||
transform: translateX(-50%);
|
||||
bottom: 106rpx;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&.searching {
|
||||
background: #E5E5E5;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
|
||||
.list {
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
<view class="wifi" style="margin-top: 24rpx;display: block;" @click="gjconfirm" >
|
||||
<view class="" style="display: flex;justify-content: space-between;align-items: center;">
|
||||
<view class="">固件更新</view>
|
||||
<view class="flex" style="color: red;font-size: 20rpx;" v-if=" ver != null && ver != version">
|
||||
<text style="display: inline-block;width: 10rpx;height: 10rpx;border-radius: 50%;background-color: red;margin-right: 10rpx;"></text>可更新
|
||||
<view class="flex" style="color: red;font-size: 26rpx;" v-if=" ver != null && ver != version">
|
||||
<text style="display: inline-block;width: 10rpx;height: 10rpx;border-radius: 50%;background-color: red;margin-right: 10rpx;"></text>点击更新
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="font-size: 24rpx;display: flex;justify-content: space-between;">
|
||||
|
|
@ -251,21 +251,14 @@
|
|||
clearInterval(this.intervalId); // 进度达到 100% 时清除定时器
|
||||
console.log("加载完成");
|
||||
}
|
||||
}, 30); // 每 30 毫秒更新一次进度
|
||||
}, 1); // 每 1 毫秒更新一次进度
|
||||
},
|
||||
// 选择固件版本
|
||||
gjconfirm(e) {
|
||||
// console.log('更新',this.file);
|
||||
// var data = {
|
||||
// sum: 100,
|
||||
// http: this.file
|
||||
// }
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: data
|
||||
// })
|
||||
// this.shengjiflag = true
|
||||
// this.startProgress()
|
||||
if(this.ver != null && this.ver != this.version){
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11sleep' + this.xinpin
|
||||
})
|
||||
if(this.file == '' || this.file == null){
|
||||
uni.showToast({
|
||||
title: '暂无新版本',
|
||||
|
|
@ -276,10 +269,12 @@
|
|||
console.log('更新');
|
||||
var data = {
|
||||
sum: 100,
|
||||
http: this.file
|
||||
}
|
||||
http:this.file
|
||||
}
|
||||
// https://www.zenghi.com/gj/water_flower.bin
|
||||
console.log(data,'5555555555555555555555555');
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: data
|
||||
customData:data
|
||||
})
|
||||
this.shengjiflag = true
|
||||
this.startProgress()
|
||||
|
|
@ -323,6 +318,14 @@
|
|||
case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED:
|
||||
if (!options.result) {
|
||||
console.log('duankai');
|
||||
uni.showToast({
|
||||
title: '蓝牙已断开',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
uni.reLaunch({
|
||||
url:'/pages/index/index'
|
||||
})
|
||||
}
|
||||
break;
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
|
||||
|
|
@ -339,7 +342,7 @@
|
|||
}
|
||||
break
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
|
||||
console.log("选择固件升级收信息:", options.data, options.data.length);
|
||||
// console.log("选择固件升级收信息:", options.data, options.data.length);
|
||||
if (typeof options.data === 'string') {
|
||||
if (options.data.indexOf("prom:") !== -1) {
|
||||
console.log('固件升级中')
|
||||
|
|
@ -349,10 +352,10 @@
|
|||
indexOld.indexOf("prom:") + 5,
|
||||
indexOld.indexOf("@")
|
||||
)
|
||||
this.progress = Number(load_num);
|
||||
this.progress = Number(load_num);
|
||||
console.log("load_num", load_num);
|
||||
console.log("升级进度:", this.progress)
|
||||
if (this.progress === 6000) {
|
||||
if (this.progress == 6000) {
|
||||
console.log('固件成功')
|
||||
this.progress = 100
|
||||
uni.showToast({
|
||||
|
|
@ -366,9 +369,9 @@
|
|||
uni.reLaunch({
|
||||
url:'/pages/index/index'
|
||||
})
|
||||
},2000)
|
||||
},1000)
|
||||
}
|
||||
if (this.progress === 9000) {
|
||||
if (this.progress == 9000) {
|
||||
console.log('固件升级失败')
|
||||
this.progress = 99
|
||||
uni.showToast({
|
||||
|
|
|
|||
|
|
@ -19,17 +19,6 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="" v-else>
|
||||
<!-- 选择设备 -->
|
||||
<!-- <view class="selectbox">
|
||||
<view class="selectname" @click="btnksxz">
|
||||
切换设备 <image v-if="!xuanzeflag" src="https://api.ccttiot.com/smartmeter/img/static/uwHOBxvbJjkhx1uDiQHI" mode=""></image>
|
||||
<image v-else class="rotated-image" src="https://api.ccttiot.com/smartmeter/img/static/uwHOBxvbJjkhx1uDiQHI" mode=""></image>
|
||||
</view>
|
||||
|
||||
<view class="selectshezhi" style="display: flex;">
|
||||
<image @click="btnsz" src="https://api.ccttiot.com/smartmeter/img/static/uvCJ8ro0MpfGZd53vypJ" mode=""></image>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="selectbox">
|
||||
<view class="shebeiname" >
|
||||
<view class="" @click="btnksxz">
|
||||
|
|
@ -47,9 +36,6 @@
|
|||
已连接
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="shebeiadd" @click="btnaddsb">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/udlX67UXzuRUZCuEtWDH" mode=""></image>
|
||||
</view> -->
|
||||
<view class="selectshezhi" style="display: flex;">
|
||||
<image @click="btnsz" src="https://api.ccttiot.com/smartmeter/img/static/uvCJ8ro0MpfGZd53vypJ" mode=""></image>
|
||||
</view>
|
||||
|
|
@ -64,19 +50,9 @@
|
|||
<view class="">MAC:{{user.mac == undefined ? '--' : user.mac}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="devicert">
|
||||
<view class="shoudong">
|
||||
<image @click="btnkq" v-if="kgflag"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/uIiHf1LAHhLyVZODV9Pc" mode="">
|
||||
</image>
|
||||
<image @click="btngb" v-else
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/upKZD5SgfKHZDCxcPSCl" mode="">
|
||||
</image> 手动浇水
|
||||
</view>
|
||||
<view class="shengyu">
|
||||
剩余:{{ sdminutes ? sdminutes + ':' : '' }}{{ sdseconds ? sdseconds : '--' }}
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="color: red;font-size: 26rpx;display: flex;align-items: center;" v-if=" ver != '' && ver.slice(3) != version" @click="btnsz">
|
||||
<text style="display: inline-block;width: 10rpx;height: 10rpx;border-radius: 50%;background-color: red;margin-right: 10rpx;"></text>可更新
|
||||
</view>
|
||||
</view>
|
||||
<view class="deviceweek" v-if="pre == 'WATER'" @click="btntime">
|
||||
<view class="weeklist">
|
||||
|
|
@ -114,10 +90,8 @@
|
|||
每天
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set1 && ver_data.p_set1[0] == xctimesj.slice(0,2) && ver_data.p_set1[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(1)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
|
|
@ -158,7 +132,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set2 && ver_data.p_set2[0] == xctimesj.slice(0,2) && ver_data.p_set2[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(2)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
|
|
@ -199,7 +173,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set3 && ver_data.p_set3[0] == xctimesj.slice(0,2) && ver_data.p_set3[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(3)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
|
|
@ -240,7 +214,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set4 && ver_data.p_set4[0] == xctimesj.slice(0,2) && ver_data.p_set4[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(4)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
|
|
@ -281,7 +255,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set5 && ver_data.p_set5[0] == xctimesj.slice(0,2) && ver_data.p_set5[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(5)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
|
|
@ -322,16 +296,40 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="img">
|
||||
<image v-if="ver_data.p_set6 && ver_data.p_set6[0] == xctimesj.slice(0,2) && ver_data.p_set6[1] == xctimesj.slice(-2)"
|
||||
<image v-if="shouldShowIcon(6)"
|
||||
src="https://api.ccttiot.com/smartmeter/img/static/u9iZpd6bW6bUsUay4uvH" mode="">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="display: flex;flex-wrap: wrap;justify-content: space-between;margin-top: 18rpx;" v-else>
|
||||
<view class="" style="display:flex;align-items: center;font-size: 24rpx;color: #50565A;"><image style="width:32rpx;height:32rpx;margin-right: 8rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uhyYG0TLfWi9XUhTQz7D" mode=""></image>抽水泵启动时间:{{csbobj.hour == undefined ? '--' : csbobj.hour + '时'}}{{csbobj.minute == undefined ? '' : csbobj.minute + '分'}}</view>
|
||||
<view class="" style="display:flex;align-items: center;font-size: 24rpx;color: #50565A;"><image style="width:32rpx;height:32rpx;margin-right: 8rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uuQaK98cmdQQnPWus27Z" mode=""></image>抽水泵工作时长/秒:{{csbobj.second == undefined ? '--' : csbobj.second + '秒'}}</view>
|
||||
<view class="" style="display:flex;align-items: center;font-size: 24rpx;color: #50565A;margin-top: 18rpx;"><image style="width:32rpx;height:32rpx;margin-right: 8rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uM6Yz4xVqFwzW6xlTRph" mode=""></image>抽水泵间隔时间/天:{{csbobj.day == undefined ? '--' : csbobj.day + '天'}}</view>
|
||||
<view class="" style="margin-top: 18rpx;display: flex;justify-content: space-between;" v-else>
|
||||
<view class="" style="font-size: 24rpx;color: #50565A;text-align: center;margin-top: 10rpx;">
|
||||
<view class="" style="display: flex;align-items: center;">
|
||||
<image style="width:32rpx;height:32rpx;margin-right: 8rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uhyYG0TLfWi9XUhTQz7D" mode=""></image>
|
||||
启动时间
|
||||
</view>
|
||||
<view class="" style="margin-top:10rpx;font-size: 36rpx;font-weight: 600;">
|
||||
{{csbobj.hour == undefined ? '--' : csbobj.hour + ':'}}{{csbobj.minute == undefined ? '' : csbobj.minute}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="font-size: 24rpx;color: #50565A;margin-top: 10rpx;text-align: center;">
|
||||
<view class="" style="display: flex;align-items: center;">
|
||||
<image style="width:32rpx;height:32rpx;margin-right: 8rpx;font-size: 36rpx;font-weight: 600;" src="https://api.ccttiot.com/smartmeter/img/static/uuQaK98cmdQQnPWus27Z" mode=""></image>
|
||||
工作时长
|
||||
</view>
|
||||
<view class="" style="margin-top:10rpx;font-size: 36rpx;font-weight: 600;">
|
||||
{{csbobj.second == undefined ? '--' : csbobj.second + '秒'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="font-size: 24rpx;color: #50565A;margin-top: 10rpx;text-align: center;">
|
||||
<view class="" style="display: flex;align-items: center;">
|
||||
<image style="width:32rpx;height:32rpx;margin-right: 8rpx;font-size: 36rpx;font-weight: 600;" src="https://api.ccttiot.com/smartmeter/img/static/uM6Yz4xVqFwzW6xlTRph" mode=""></image>
|
||||
间隔天数
|
||||
</view>
|
||||
<view class="" style="margin-top:10rpx;font-size: 36rpx;font-weight: 600;">
|
||||
{{csbobj.day == undefined ? '--' : csbobj.day + '天'}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 开关选择 -->
|
||||
|
|
@ -351,7 +349,6 @@
|
|||
{{devicetime == '' ? '--' : devicetime.slice(0,5)}} <u-icon name="arrow-right" color="#7FAD76" size="32"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="switchbox">
|
||||
<view class="switch_he" v-if="pre == 'WATER'">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u7NwkNOoQYYsvHVMkDlu" mode=""></image>
|
||||
|
|
@ -390,10 +387,8 @@
|
|||
<image style="width: 170rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uVYXvo4F6U6fJ5fP27BT" mode="aspectFill"></image>{{ sdminutes ? sdminutes + ':' : '' }}{{ sdseconds ? sdseconds : '' }}
|
||||
</view>
|
||||
<view class="dstime">
|
||||
手动浇水 <u-switch v-if="kgflag" v-model="jskeds" @change="btngb" inactive-color="#eee"
|
||||
active-color="#eee" size="40"></u-switch>
|
||||
<u-switch v-else v-model="jsked" @change="btnkq" active-color="#7FAD76"
|
||||
inactive-color="#7FAD76" size="40"></u-switch>
|
||||
手动浇水 <u-switch v-if="kgflag" v-model="jskeds" @change="btngb" inactive-color="#eee" active-color="#eee" size="40"></u-switch>
|
||||
<u-switch v-else v-model="jsked" @change="btnkq" active-color="#7FAD76" inactive-color="#7FAD76" size="40"></u-switch>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -414,8 +409,10 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" @click="btnbc" v-if="pre == 'WATER'" style="width: 100%;height: 80rpx;background-color: #7FAD76;color: #fff;text-align: center;font-size: 32rpx;line-height: 80rpx;margin-top: 30rpx;border-radius: 20rpx;">
|
||||
保存定时设置
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 切换设备 -->
|
||||
<view class="tabsb" v-if="xuanzeflag">
|
||||
<view class="selectbox">
|
||||
|
|
@ -541,7 +538,13 @@
|
|||
disconnectTimer: null,
|
||||
devicetime:'',
|
||||
imgpic:'',
|
||||
xinp:''
|
||||
xinp:'',
|
||||
version:'',
|
||||
|
||||
searchStartTime: 0, // 记录开始搜索的时间戳
|
||||
searchTimeout: 10000, // 10秒超时(单位:毫秒)
|
||||
searchTimer: null, // 搜索定时器
|
||||
isSearching: false // 是否正在搜索中
|
||||
}
|
||||
},
|
||||
// 分享到好友(会话)
|
||||
|
|
@ -581,6 +584,9 @@
|
|||
xBlufi.notifyStartDiscoverBle({
|
||||
'isStart': true
|
||||
})
|
||||
// setTimeout(()=>{
|
||||
// that.btnlj()
|
||||
// },1500)
|
||||
},
|
||||
onShow() {
|
||||
// 请求个人信息
|
||||
|
|
@ -602,6 +608,34 @@
|
|||
this.clearDisconnectTimer()
|
||||
},
|
||||
methods: {
|
||||
// 点击保存设置
|
||||
btnbc(){
|
||||
this.handleUserAction()
|
||||
if(this.vardataflag != 3){
|
||||
uni.showToast({
|
||||
title: '设备未连接',
|
||||
icon: 'none',
|
||||
duration:2000
|
||||
})
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: '保存成功',
|
||||
icon: 'success',
|
||||
duration:2000
|
||||
})
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11sleep' + this.xinp
|
||||
})
|
||||
}
|
||||
},
|
||||
getbanbens(){
|
||||
this.$u.get(`/app/model/${this.user.modelId}`).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.version = res.data.version.slice(1)
|
||||
console.log(this.version,'this.versionthis.versionthis.version');
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击进行设备录入
|
||||
btnluru(){
|
||||
this.datalist = ''
|
||||
|
|
@ -670,6 +704,7 @@
|
|||
this.deviceId = res.data[0].mac.match(/.{2}/g).reverse().join(':')
|
||||
this.user = res.data[0]
|
||||
this.shebid = res.data[0].deviceId
|
||||
this.getbanbens()
|
||||
let that = this
|
||||
}else{
|
||||
this.bjflag = true
|
||||
|
|
@ -702,6 +737,11 @@
|
|||
that.findDevice()
|
||||
}
|
||||
}
|
||||
setTimeout(()=>{
|
||||
if(this.vardataflag != 3){
|
||||
this.vardataflag = 1
|
||||
}
|
||||
},15000)
|
||||
}
|
||||
},
|
||||
// ios递归函数匹配
|
||||
|
|
@ -746,13 +786,11 @@
|
|||
uni.showLoading({
|
||||
title: '开启中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
this.yschecked = false
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11yudi'
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
this.yschecked = false
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11yudi'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
// 点击同步时间
|
||||
|
|
@ -767,7 +805,7 @@
|
|||
}else{
|
||||
this.devicetime = this.getCurrentTime();
|
||||
console.log(this.devicetime);
|
||||
if(this.pre == 'WATER'){ //单阀
|
||||
// if(this.pre == 'WATER'){ //单阀
|
||||
uni.showLoading({
|
||||
title: '设置中...'
|
||||
})
|
||||
|
|
@ -775,15 +813,20 @@
|
|||
customData: '11date' + this.devicetime + ';'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}else{ //抽水泵
|
||||
uni.showLoading({
|
||||
title: '设置中...'
|
||||
uni.showToast({
|
||||
title: '同步成功',
|
||||
icon: 'success',
|
||||
duration:2000
|
||||
})
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11hour' + this.devicetime + '@',
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
// }else{ //抽水泵
|
||||
// uni.showLoading({
|
||||
// title: '设置中...'
|
||||
// })
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: '11hour' + this.devicetime + '@',
|
||||
// })
|
||||
// uni.hideLoading()
|
||||
// }
|
||||
}
|
||||
},
|
||||
// 点击显示设置时间
|
||||
|
|
@ -809,30 +852,26 @@
|
|||
},
|
||||
// 点击设置当前时间
|
||||
confirmtime(e){
|
||||
if(this.pre == 'WATER'){ //单阀
|
||||
// if(this.pre == 'WATER'){ //单阀
|
||||
uni.showLoading({
|
||||
title: '设置中...'
|
||||
})
|
||||
console.log(e.hour,e.minute);
|
||||
// setTimeout(() => {
|
||||
this.devicetime = e.hour + ':' + e.minute
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11date' + e.hour + ':' + e.minute + ';'
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
}else{ //抽水泵
|
||||
uni.showLoading({
|
||||
title: '设置中...'
|
||||
this.devicetime = e.hour + ':' + e.minute
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11date' + e.hour + ':' + e.minute + ':' + '00' + ';'
|
||||
})
|
||||
console.log(e.hour,e.minute);
|
||||
// setTimeout(() => {
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11hour' + e.hour + '@' + e.minute + '@',
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
}
|
||||
uni.hideLoading()
|
||||
// }else{ //抽水泵
|
||||
// uni.showLoading({
|
||||
// title: '设置中...'
|
||||
// })
|
||||
// console.log(e.hour,e.minute);
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: '11hour' + e.hour + '@' + e.minute + '@',
|
||||
// })
|
||||
// uni.hideLoading()
|
||||
// }
|
||||
},
|
||||
// 雨水感应关闭
|
||||
btnyushuis() {
|
||||
|
|
@ -849,13 +888,11 @@
|
|||
uni.showLoading({
|
||||
title: '关闭中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
this.yschecked = true
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11unyudi'
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
this.yschecked = true
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11unyudi'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
// 点击儿童锁开启
|
||||
|
|
@ -873,13 +910,11 @@
|
|||
uni.showLoading({
|
||||
title: '开启中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
this.etchecked = false
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11lock'
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
this.etchecked = false
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11lock'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
// 点击儿童锁关闭
|
||||
|
|
@ -897,24 +932,27 @@
|
|||
uni.showLoading({
|
||||
title: '关闭中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
this.etchecked = true
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11unlock'
|
||||
})
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
this.etchecked = true
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: '11unlock'
|
||||
})
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
|
||||
// 点击添加设备
|
||||
btnaddsb() {
|
||||
//跳转后清空数据 重新进行连接
|
||||
this.vardataflag = 1
|
||||
this.ver_data = {}
|
||||
this.datalist = ''
|
||||
uni.navigateTo({
|
||||
url: '/page_user/lanya'
|
||||
this.$u.get(`/appVerify/profile`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.vardataflag = 1
|
||||
this.ver_data = {}
|
||||
this.datalist = ''
|
||||
uni.navigateTo({
|
||||
url: '/page_user/lanya'
|
||||
})
|
||||
}else if(res.code == 401){
|
||||
this.jmlogin()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
|
@ -942,7 +980,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
// 点击取消手动浇水
|
||||
btnqx() {
|
||||
this.handleUserAction()
|
||||
|
|
@ -966,14 +1003,12 @@
|
|||
uni.showLoading({
|
||||
title: '开启中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11time@" + this.jstime + '@'
|
||||
})
|
||||
uni.hideLoading()
|
||||
this.startTimer(this.jstime)
|
||||
this.sdjsflag = false
|
||||
// }, 1500)
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11time@" + this.jstime + '@'
|
||||
})
|
||||
uni.hideLoading()
|
||||
this.startTimer(this.jstime)
|
||||
this.sdjsflag = false
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1015,18 +1050,16 @@
|
|||
uni.showLoading({
|
||||
title: '关闭中...'
|
||||
})
|
||||
// setTimeout(() => {
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11close"
|
||||
})
|
||||
clearInterval(this.timer)
|
||||
this.sdminutes = ''
|
||||
this.sdseconds = ''
|
||||
this.kgflag = true
|
||||
this.jsked = true
|
||||
this.jskeds = false
|
||||
uni.hideLoading()
|
||||
// }, 1500)
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11close"
|
||||
})
|
||||
clearInterval(this.timer)
|
||||
this.sdminutes = ''
|
||||
this.sdseconds = ''
|
||||
this.kgflag = true
|
||||
this.jsked = true
|
||||
this.jskeds = false
|
||||
uni.hideLoading()
|
||||
}
|
||||
},
|
||||
// 开启手动浇水
|
||||
|
|
@ -1050,6 +1083,9 @@
|
|||
// 跳转到设置
|
||||
btnsz() {
|
||||
xBlufi.listenDeviceMsgEvent(false, this.funListenDeviceMsgEvent)
|
||||
if(this.csbobj.day){
|
||||
this.xctime = '111'
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: '/page_user/upload?deviceid=' + this.shebid + '&ver=' + this.ver + '&xctime=' + this.xctime + '&xipin=' + this.xinp + '&img=' + this.imgpic
|
||||
})
|
||||
|
|
@ -1107,6 +1143,8 @@
|
|||
this.imgpic = res.data.modelPicture
|
||||
this.deviceId = res.data.mac.match(/.{2}/g).reverse().join(':')
|
||||
this.user = res.data
|
||||
this.getbanbens()
|
||||
// this.btnlj()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
@ -1149,39 +1187,54 @@
|
|||
xBlufi.notifyInitBleEsp32({
|
||||
deviceId: this.deviceId
|
||||
})
|
||||
break
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT:
|
||||
if (options.result == true){
|
||||
console.log('服务发现成功:', options);
|
||||
this.datalist = '1'
|
||||
this.vardataflag = 3
|
||||
this.initDisconnectTimer()
|
||||
// 连接成功后立即发送一次获取数据命令
|
||||
console.log("连接成功后发送获取数据命令")
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11get"
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.vardataflag = 3
|
||||
this.initDisconnectTimer()
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11get"
|
||||
})
|
||||
},3000)
|
||||
}else{
|
||||
console.log('服务发现失败:', options.data);
|
||||
this.vardataflag = 1
|
||||
this.clearDisconnectTimer()
|
||||
this.clearDisconnectTimer()
|
||||
}
|
||||
break
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT:
|
||||
// if (options.result == true){
|
||||
// console.log('服务发现成功:', options);
|
||||
// this.datalist = '1'
|
||||
// this.vardataflag = 3
|
||||
// this.initDisconnectTimer()
|
||||
// // 连接成功后立即发送一次获取数据命令
|
||||
// console.log("连接成功后发送获取数据命令")
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: "11get"
|
||||
// })
|
||||
// }else{
|
||||
// console.log('服务发现失败:', options.data);
|
||||
// this.vardataflag = 1
|
||||
// this.clearDisconnectTimer()
|
||||
// }
|
||||
break
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
|
||||
console.log("收到设备数据:", options.data)
|
||||
if (options.data.indexOf("prom:") !== -1) {
|
||||
console.log('固件升级中')
|
||||
// console.log('固件升级中')
|
||||
var indexOld = options.data.substring(options.data.indexOf('prom:'))
|
||||
console.log("indexOld", indexOld);
|
||||
// console.log("indexOld", indexOld);
|
||||
var load_num = indexOld.substring(
|
||||
indexOld.indexOf("prom:") + 5,
|
||||
indexOld.indexOf("@")
|
||||
)
|
||||
this.progress = Number(load_num);
|
||||
console.log("load_num", load_num);
|
||||
// console.log("load_num", load_num);
|
||||
console.log("升级进度:", this.progress)
|
||||
if (this.progress === 6000) {
|
||||
console.log('固件成功')
|
||||
// console.log('固件成功')
|
||||
this.progress = 100
|
||||
uni.showToast({
|
||||
title: '固件升级成功',
|
||||
|
|
@ -1196,7 +1249,7 @@
|
|||
},2000)
|
||||
}
|
||||
if (this.progress === 9000) {
|
||||
console.log('固件升级失败')
|
||||
// console.log('固件升级失败')
|
||||
this.progress = 99
|
||||
uni.showToast({
|
||||
title: '固件升级失败',
|
||||
|
|
@ -1222,7 +1275,8 @@
|
|||
break
|
||||
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
|
||||
if (!options.result) {
|
||||
console.log('蓝牙未开启')
|
||||
this.vardataflag = 1
|
||||
console.log('蓝牙初始化失败')
|
||||
return
|
||||
}
|
||||
break
|
||||
|
|
@ -1233,7 +1287,7 @@
|
|||
const that = this
|
||||
that.intervalId = setInterval(() => {
|
||||
if (that.vardataflag == 3) {
|
||||
console.log("发送获取数据命令")
|
||||
// console.log("发送获取数据命令")
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11get"
|
||||
})
|
||||
|
|
@ -1251,35 +1305,51 @@
|
|||
// 处理抽水泵接收数据
|
||||
getcsbshuju(){
|
||||
const input = this.datalist
|
||||
// 去除末尾的分号并分割字符串
|
||||
const inputString = this.datalist;
|
||||
const hasAtSymbol = inputString.includes('@');
|
||||
let processedString;
|
||||
let currentDay = 0;
|
||||
if (hasAtSymbol) {
|
||||
const [ver, restOfString] = inputString.split('@');
|
||||
this.ver = ver || '';
|
||||
processedString = restOfString || '';
|
||||
// 解析当前天数
|
||||
const showMatch = processedString.match(/show:([^;]+)/);
|
||||
if (showMatch) {
|
||||
const showValues = showMatch[1].split(',');
|
||||
currentDay = parseInt(showValues[showValues.length - 1]) || 0;
|
||||
}
|
||||
} else {
|
||||
processedString = inputString;
|
||||
this.ver = '';
|
||||
}
|
||||
const version = this.ver;
|
||||
const parts = input.replace(";", "").split(":")
|
||||
// 获取时间部分并分割
|
||||
const timeParts = parts[1].split(",")
|
||||
// 解析为对象
|
||||
this.csbobj = {
|
||||
hour: parseInt(timeParts[0]), // 小时
|
||||
minute: parseInt(timeParts[1]), // 分钟
|
||||
hour: parseInt(timeParts[0]) < 10 ? '0' + parseInt(timeParts[0]) : parseInt(timeParts[0]), // 小时
|
||||
minute: parseInt(timeParts[1]) < 10 ? '0' + parseInt(timeParts[1]) : parseInt(timeParts[1]), // 分钟
|
||||
second: parseInt(timeParts[2]), // 秒
|
||||
day: parseInt(timeParts[3]) // 天数
|
||||
}
|
||||
this.devicetime = parseInt(timeParts[4]) + ':' + parseInt(timeParts[5])
|
||||
this.ver_data = this.csbobj
|
||||
console.log(this.csbobj);
|
||||
// console.log(this.csbobj);
|
||||
},
|
||||
// 处理从设备接收数据
|
||||
getchuli() {
|
||||
const inputString = this.datalist;
|
||||
console.log('接收到的数据:', inputString);
|
||||
|
||||
// console.log('接收到的数据:', inputString);
|
||||
// 检查是否有 @ 分隔符
|
||||
const hasAtSymbol = inputString.includes('@');
|
||||
let processedString;
|
||||
let currentDay = 0;
|
||||
|
||||
if (hasAtSymbol) {
|
||||
const [ver, restOfString] = inputString.split('@');
|
||||
this.ver = ver || '';
|
||||
processedString = restOfString || '';
|
||||
|
||||
// 解析当前天数
|
||||
const showMatch = processedString.match(/show:([^;]+)/);
|
||||
if (showMatch) {
|
||||
|
|
@ -1290,47 +1360,41 @@
|
|||
processedString = inputString;
|
||||
this.ver = '';
|
||||
}
|
||||
|
||||
console.log('处理后的字符串:', processedString);
|
||||
console.log(this.ver,'this.verthis.verthis.verthis.ver')
|
||||
|
||||
// console.log('处理后的字符串:', processedString);
|
||||
// console.log(this.ver,'this.verthis.verthis.ver');
|
||||
const version = this.ver;
|
||||
// 使用正则表达式提取数字部分
|
||||
const versionNumber = version.match(/\d+/); // 匹配连续的数字
|
||||
if (versionNumber) {
|
||||
const num = parseInt(versionNumber[0], 10); // 转换为整数
|
||||
if (num < 9 && !this.hasShownVersionAlert) {
|
||||
this.hasShownVersionAlert = true; // 设置标记为已显示
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: `您当前设备版本过低,可能无法正常使用,请点击右上角设置前去升级`,
|
||||
showCancel: false, // 不显示取消按钮
|
||||
confirmText: "确定", // 按钮文字
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
console.log("用户点击了确定");
|
||||
this.hasShownVersionAlert = false; // 重置标记,允许下次判断
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log(`版本号 ${num} 不小于 9`);
|
||||
}
|
||||
} else {
|
||||
console.log("没有找到版本号数字");
|
||||
}
|
||||
|
||||
// if (versionNumber) {
|
||||
// const num = parseInt(versionNumber[0], 10); // 转换为整数
|
||||
// if (num < 9 && !this.hasShownVersionAlert) {
|
||||
// this.hasShownVersionAlert = true; // 设置标记为已显示
|
||||
// uni.showModal({
|
||||
// title: "提示",
|
||||
// content: `您当前设备版本过低,可能无法正常使用,请点击右上角设置前去升级`,
|
||||
// showCancel: false, // 不显示取消按钮
|
||||
// confirmText: "确定", // 按钮文字
|
||||
// success: (res) => {
|
||||
// if (res.confirm) {
|
||||
// console.log("用户点击了确定");
|
||||
// this.hasShownVersionAlert = false; // 重置标记,允许下次判断
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// console.log(`版本号 ${num} 不小于 9`);
|
||||
// }
|
||||
// } else {
|
||||
// console.log("没有找到版本号数字");
|
||||
// }
|
||||
const pairs = processedString.split(';').filter(Boolean);
|
||||
console.log('分割后的数据对:', pairs);
|
||||
|
||||
// console.log('分割后的数据对:', pairs);
|
||||
const showObject = {};
|
||||
const pSetObjects = {};
|
||||
|
||||
// 初始化所有p_set为默认值
|
||||
for (let i = 1; i <= 6; i++) {
|
||||
pSetObjects[`p_set${i}`] = [0, 0, 0, 0, 0];
|
||||
}
|
||||
|
||||
// 解析字符串
|
||||
pairs.forEach(pair => {
|
||||
const [key, value] = pair.split(':');
|
||||
|
|
@ -1348,7 +1412,6 @@
|
|||
this.ver_data = pSetObjects;
|
||||
this.jstimeobj = pSetObjects;
|
||||
this.showobj = showObject;
|
||||
|
||||
// 设置开关状态
|
||||
this.yschecked = this.showobj.showArray[1] !== 1;
|
||||
this.etchecked = this.showobj.showArray[0] !== 1;
|
||||
|
|
@ -1360,13 +1423,11 @@
|
|||
const remainingMinutes = diffMinutes % 60;
|
||||
return { hours: diffHours, minutes: remainingMinutes };
|
||||
};
|
||||
|
||||
const formatTime = (seconds) => {
|
||||
const minutes = Math.floor(seconds / 60);
|
||||
const remainingSeconds = seconds % 60;
|
||||
return `${minutes}分${remainingSeconds}秒`;
|
||||
};
|
||||
|
||||
const getTimeFromArray = (timeArray) => {
|
||||
if (!timeArray || timeArray.length < 2) return null;
|
||||
const [hour, minute] = timeArray;
|
||||
|
|
@ -1374,24 +1435,19 @@
|
|||
date.setHours(hour, minute, 0, 0);
|
||||
return date;
|
||||
};
|
||||
|
||||
let nextTime = null;
|
||||
let nextTimeDiff = null;
|
||||
let nextWaterDuration = null;
|
||||
let prevTime = null;
|
||||
|
||||
for (const key in this.ver_data) {
|
||||
if (this.ver_data.hasOwnProperty(key) && this.ver_data[key][3] === 1) {
|
||||
const timeArray = this.ver_data[key];
|
||||
const timeDate = getTimeFromArray(timeArray);
|
||||
if (!timeDate) continue;
|
||||
|
||||
const diff = calculateTimeDifference(timeDate, new Date());
|
||||
const interval = timeArray[4] || 0;
|
||||
|
||||
// 检查是否应该在这一天浇水
|
||||
const shouldWaterToday = interval === 0 || (currentDay % interval === 0);
|
||||
|
||||
if (timeDate > new Date() && shouldWaterToday) {
|
||||
if (!nextTime || (diff.hours * 60 + diff.minutes < (nextTimeDiff?.hours || 0) * 60 + (nextTimeDiff?.minutes || 0))) {
|
||||
nextTimeDiff = diff;
|
||||
|
|
@ -1403,13 +1459,11 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 输出结果
|
||||
this.xctime = nextTime ? `${nextTimeDiff.hours}时${nextTimeDiff.minutes}分` : '无距离下次浇水时间';
|
||||
this.xctimesc = nextWaterDuration || '未知';
|
||||
this.sctimejs = prevTime ? prevTime.toTimeString().slice(0, 5) : '无上次浇水时间';
|
||||
this.xctimesj = nextTime ? nextTime.toTimeString().slice(0, 5) : '无下次浇水时间';
|
||||
|
||||
console.log('解析后的数据:', {
|
||||
ver_data: this.ver_data,
|
||||
showobj: this.showobj,
|
||||
|
|
@ -1418,16 +1472,19 @@
|
|||
prevTime: this.sctimejs
|
||||
});
|
||||
this.xinp = this.showobj.showArray[this.showobj.showArray.length - 1]
|
||||
console.log(this.showobj.showArray,this.showobj.showArray[6],this.showobj.showArray[this.showobj.showArray.length - 1],'02020202020');
|
||||
if(this.showobj.showArray[6] && this.showobj.showArray[7]){
|
||||
// if(this.showobj.showArray[6] != '' && this.showobj.showArray[7] != ''){
|
||||
// console.log('111111111111111111111111111111111111111111111111111111111111111');
|
||||
// 显式转为字符串
|
||||
const yiStr = String(this.showobj.showArray[6])
|
||||
const erStr = String(this.showobj.showArray[7])
|
||||
// console.log('22222222222222222222222222222222222222222222222222222',yiStr,erStr);
|
||||
// 判断字符串长度是否为1(而不是<10)
|
||||
let yi = yiStr.length === 1 ? '0' + yiStr : yiStr
|
||||
let er = erStr.length === 1 ? '0' + erStr : erStr
|
||||
// console.log('33333333333333333333333333333333333333333333333333',yi,er);
|
||||
this.devicetime = yi + ':' + er
|
||||
}
|
||||
// console.log(this.devicetime,'this.devicetimethis.devicetimethis.devicetimethis.devicetimethis.devicetimethis.devicetimethis.devicetimethis.devicetime');
|
||||
// }
|
||||
},
|
||||
// 初始化断开蓝牙定时器
|
||||
initDisconnectTimer() {
|
||||
|
|
@ -1438,12 +1495,10 @@
|
|||
}
|
||||
}, 600000)
|
||||
},
|
||||
|
||||
// 重置断开蓝牙定时器
|
||||
resetDisconnectTimer() {
|
||||
this.initDisconnectTimer()
|
||||
},
|
||||
|
||||
// 清除断开蓝牙定时器
|
||||
clearDisconnectTimer() {
|
||||
if(this.disconnectTimer) {
|
||||
|
|
@ -1451,7 +1506,6 @@
|
|||
this.disconnectTimer = null
|
||||
}
|
||||
},
|
||||
|
||||
// 断开蓝牙连接
|
||||
disconnectBluetooth() {
|
||||
if(this.deviceId) {
|
||||
|
|
@ -1475,14 +1529,12 @@
|
|||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 监听用户操作的方法
|
||||
handleUserAction() {
|
||||
if(this.vardataflag === 3) {
|
||||
this.resetDisconnectTimer()
|
||||
}
|
||||
},
|
||||
|
||||
// 获取时间显示
|
||||
getTimeDisplay(setKey) {
|
||||
const set = this.ver_data[setKey];
|
||||
|
|
@ -1491,12 +1543,48 @@
|
|||
}
|
||||
return '--:--';
|
||||
},
|
||||
|
||||
// 判断是否是当前时间
|
||||
isCurrentTime(setKey) {
|
||||
const set = this.ver_data[setKey];
|
||||
return set && set[0] == this.xctimesj.slice(0,2) && set[1] == this.xctimesj.slice(-2);
|
||||
}
|
||||
},
|
||||
// 计算时间差值(分钟)
|
||||
getTimeDifference(hour, minute) {
|
||||
if (!this.devicetime) return Infinity;
|
||||
const [currentHour, currentMinute] = this.devicetime.split(':').map(Number);
|
||||
const currentTotalMinutes = currentHour * 60 + currentMinute;
|
||||
const targetTotalMinutes = hour * 60 + minute;
|
||||
|
||||
// 计算时间差
|
||||
let diff = targetTotalMinutes - currentTotalMinutes;
|
||||
// 如果时间已过,加上24小时
|
||||
if (diff <= 0) {
|
||||
diff += 1440;
|
||||
}
|
||||
return diff;
|
||||
},
|
||||
|
||||
// 判断是否显示图标
|
||||
shouldShowIcon(pSetIndex) {
|
||||
const pSet = this.ver_data[`p_set${pSetIndex}`];
|
||||
// 如果定时未开启,不显示图标
|
||||
if (!pSet || pSet[3] !== 1) return false;
|
||||
|
||||
const currentDiff = this.getTimeDifference(pSet[0], pSet[1]);
|
||||
|
||||
// 检查是否是第一个最小时间差的定时设置
|
||||
for (let i = 1; i <= 6; i++) {
|
||||
const checkSet = this.ver_data[`p_set${i}`];
|
||||
if (checkSet && checkSet[3] === 1) {
|
||||
const checkDiff = this.getTimeDifference(checkSet[0], checkSet[1]);
|
||||
// 如果找到更小的时间差,或者相同时间差但索引更小,则不显示
|
||||
if (checkDiff < currentDiff || (checkDiff === currentDiff && i < pSetIndex)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user