|
@@ -1,6 +1,7 @@
|
|
|
// pages/setWifi/setWifi.js
|
|
|
const { BtHelper } = require("../../devices/bt_helper");
|
|
|
-
|
|
|
+import EventManager from '../../utils/event_bus'
|
|
|
+import { EnumCmdEvent, CmdEvent } from '../../devices/cmd_key_event';
|
|
|
Page({
|
|
|
data: {
|
|
|
wifiName: '',
|
|
@@ -10,22 +11,32 @@ Page({
|
|
|
|
|
|
getConnectedWifi: function () {
|
|
|
const that = this;
|
|
|
- wx.getConnectedWifi({
|
|
|
- success: function (res) {
|
|
|
- const wifiName = res.wifi.SSID;
|
|
|
- that.setData({
|
|
|
- wifiName: wifiName
|
|
|
+
|
|
|
+ wx.startWifi({
|
|
|
+ success(res) {
|
|
|
+ console.log(res.errMsg)
|
|
|
+
|
|
|
+ wx.getConnectedWifi({
|
|
|
+ success: function (res) {
|
|
|
+ const wifiName = res.wifi.SSID;
|
|
|
+ that.setData({
|
|
|
+ wifiName: wifiName
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail: function (err) {
|
|
|
+ console.error('获取Wi-Fi信息失败', err);
|
|
|
+ // wx.showToast({
|
|
|
+ // title: '获取Wi-Fi信息失败',
|
|
|
+ // icon: 'none'
|
|
|
+ // });
|
|
|
+
|
|
|
+ }
|
|
|
});
|
|
|
- },
|
|
|
- fail: function (err) {
|
|
|
- console.error('获取Wi-Fi信息失败', err);
|
|
|
- // wx.showToast({
|
|
|
- // title: '获取Wi-Fi信息失败',
|
|
|
- // icon: 'none'
|
|
|
- // });
|
|
|
|
|
|
}
|
|
|
- });
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
|
|
|
onWifiNameInput: function (e) {
|
|
@@ -42,9 +53,16 @@ Page({
|
|
|
// string转换为List<int>
|
|
|
string2ListInt(text) {
|
|
|
let code = Array.from(text).map(char => char.charCodeAt(0));
|
|
|
- console.log("string转换为List<int>", code)
|
|
|
+ console.log("string转换为List<int>", text, code)
|
|
|
return code
|
|
|
},
|
|
|
+ _int2Hex(num) {
|
|
|
+ let value = num ?? 0;
|
|
|
+ let hexStr = value.toString(16).toUpperCase();
|
|
|
+ hexStr = hexStr.padStart(2, '0');
|
|
|
+ let hexNum = parseInt(hexStr, 16);
|
|
|
+ return hexNum;
|
|
|
+ },
|
|
|
sendWiFiInfo(wifiName, pwd) {
|
|
|
// [0x22, (wifiList.length + pwdList.length + 6), 0x33, (wifiList.length), (wifiList), 0x44, (pwdList)];
|
|
|
|
|
@@ -63,14 +81,15 @@ Page({
|
|
|
|
|
|
// 数字*3 +
|
|
|
let pwdList = this.string2ListInt(pwd);
|
|
|
+ console.log("wifiList", wifiList, "pwdList", pwdList)
|
|
|
|
|
|
// 16进制
|
|
|
result.push(0x22);
|
|
|
- result.push(this.int2Hex(wifiList.length + pwdList.length + 6));
|
|
|
+ result.push(this._int2Hex(wifiList.length + pwdList.length + 6));
|
|
|
|
|
|
// 账号
|
|
|
result.push(0x33);
|
|
|
- result.push(this.int2Hex(wifiList.length));
|
|
|
+ result.push(this._int2Hex(wifiList.length));
|
|
|
|
|
|
let p = result[3] + 4;
|
|
|
let j = 0;
|
|
@@ -80,17 +99,17 @@ Page({
|
|
|
|
|
|
// 密码
|
|
|
result.splice(p, 0, 0x44);
|
|
|
- result.splice(++p, 0, this.int2Hex(pwdList.length));
|
|
|
+ result.splice(++p, 0, this._int2Hex(pwdList.length));
|
|
|
p++;
|
|
|
j = 0;
|
|
|
- // for (let i = p; i < p + pwdList.length; i++) {
|
|
|
- // result.splice(i, 0, pwdList[j++]);
|
|
|
- // }
|
|
|
- result.push(...pwdList)
|
|
|
+ for (let i = p; i < p + pwdList.length; i++) {
|
|
|
+ result.splice(i, 0, pwdList[j++]);
|
|
|
+ }
|
|
|
+ // result.push(...pwdList)
|
|
|
|
|
|
console.log("发送wifi账号密码:", result.toString());
|
|
|
// _ble.send({ cmd: result });
|
|
|
- BtHelper.getInstance().send(result)
|
|
|
+ BtHelper.getInstance().otaSetWifi(result)
|
|
|
},
|
|
|
|
|
|
onConfirm: function () {
|
|
@@ -109,58 +128,18 @@ Page({
|
|
|
let _this = this;
|
|
|
EventManager.addNotification(CmdEvent.eventName, function (event) {
|
|
|
let name = event.cmdEvent;
|
|
|
- console.log("OTA页0:", event)
|
|
|
+ console.log("设置wifi0:", event)
|
|
|
let kind = event.heiJiaoKind;
|
|
|
-
|
|
|
- switch (name) {
|
|
|
- case EnumCmdEvent.otaCmd:
|
|
|
- let otaCmd = event.otaCmd;
|
|
|
- console.log("OTA页:", otaCmd, kind)
|
|
|
-
|
|
|
- if (otaCmd === 1 && kind == 1) {
|
|
|
- wx.hideLoading();
|
|
|
- // 设备收到开启OTA的回复,发送url
|
|
|
- _this.sendUrlData()
|
|
|
- } else if (otaCmd === 2 && kind == 1) {
|
|
|
- wx.hideLoading();
|
|
|
- // 去设置wifi界面
|
|
|
- _this.goToWifi()
|
|
|
- }
|
|
|
- else if (otaCmd === 0 && kind == 1) {
|
|
|
- // 设备回收到url,OTA结束了
|
|
|
- // _this.sendOtaCmd(0)
|
|
|
- wx.hideLoading()
|
|
|
- wx.showModal({
|
|
|
- title: '等待设备升级中',
|
|
|
- showCancel: false
|
|
|
- })
|
|
|
- } else if (kind == 0) {
|
|
|
- wx.hideLoading()
|
|
|
- wx.showModal({
|
|
|
- title: 'WIFI连接失败了',
|
|
|
- showCancel: false
|
|
|
- })
|
|
|
- }
|
|
|
- break;
|
|
|
- case EnumCmdEvent.otaUrl:
|
|
|
- let otaUrl = event.otaUrl;
|
|
|
- if (otaUrl === 1) {
|
|
|
- // 开始发送url
|
|
|
- BtHelper.getInstance().otaUrl(_this.string2ListInt(_this.data.otaData.url))
|
|
|
- } else {
|
|
|
- wx.hideLoading()
|
|
|
- // wifi失败
|
|
|
- wx.showModal({
|
|
|
- title: 'OTA升级失败了',
|
|
|
- showCancel: false
|
|
|
- })
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
+ console.log("设置wifi:", name, otaCmd, kind)
|
|
|
+ let toast = "设置wifi:" + name + " value," + otaCmd + "kind ," + kind
|
|
|
+ wx.showToast({
|
|
|
+ title: toast,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
}, _this)
|
|
|
},
|
|
|
onLoad: function (options) {
|
|
|
- let param = options.param;
|
|
|
+ let param = options.param ?? "{}";
|
|
|
let url = JSON.parse(param).url ?? "";
|
|
|
this.data._otaUrl = url;
|
|
|
this.getConnectedWifi();
|