feat:增加配网后将配网信息上报服务器的步骤

This commit is contained in:
liyi 2025-07-01 10:28:43 +08:00
parent 2cd828e7cf
commit be37ae28be
3 changed files with 348 additions and 345 deletions

50
api.js
View File

@ -199,7 +199,6 @@ export function updateElecSettingRequest(data) {
} }
//冷水表-刷新水表数据 //冷水表-刷新水表数据
export function coldWaterRefreshWaterInfoRequest(data) { export function coldWaterRefreshWaterInfoRequest(data) {
return request({ return request({
@ -321,7 +320,6 @@ export function getIcCardListRequest(data) {
} }
/** /**
* 指纹-添加(永久/限时/单次/循环) * 指纹-添加(永久/限时/单次/循环)
* *
@ -636,7 +634,6 @@ export function getPalmVeinListRequest(data) {
} }
/** /**
* 遥控-添加(永久/限时/循环) * 遥控-添加(永久/限时/循环)
* *
@ -793,3 +790,50 @@ export function getUserLockListRequest(data) {
}) })
} }
/**
* 获取网关配置
* @returns {Promise<unknown>}
*/
export function getGatewayConfig(data) {
return request({
url: '/v1/gateway/getGatewayConfig',
method: 'POST',
data
})
}
/**
* 获取设备配网信息
* @param data.deviceType 设备类型1-wifi网关 2-wifi锁
* @param data.deviceMac 网关/锁MAC地址
* @returns {Promise<unknown>}
*/
export function getDeviceNetworkInfo(data) {
return request({
url: '/v1//deviceNetwork/getNetworkInfo',
method: 'POST',
data
})
}
/**
* 更新设备配网信息
* @param data.deviceType 设备类型1-wifi网关 2-wifi锁
* @param data.deviceMac 网关/锁MAC地址
* @param data.wifiName wifi名称
* @param data.networkMac 网络mac地址
* @param data.secretKey secretKey
* @param data.peerId 设备peerId
* @returns {Promise<unknown>}
*/
export function updateDeviceNetworkInfo(data) {
return request({
url: '/v1//deviceNetwork/setting',
method: 'POST',
data
})
}

View File

@ -4,6 +4,7 @@ import {
} from "../format.js"; } from "../format.js";
import {cmdIds, Result} from "../constant.js"; import {cmdIds, Result} from "../constant.js";
import {searchAndConnectDevice, writeBLECharacteristicValue} from "../uni/basic.js"; import {searchAndConnectDevice, writeBLECharacteristicValue} from "../uni/basic.js";
import {getGatewayConfig} from "../api.js";
/** /**
* 开始搜索wifi * 开始搜索wifi
@ -72,6 +73,14 @@ export async function connectWiFi(params) {
return new Result(Result.codes.NotMoreData, null, `参数信息不完整: ${missingField}`); return new Result(Result.codes.NotMoreData, null, `参数信息不完整: ${missingField}`);
} }
// 获取网关配置
const config = await getGatewayConfig();
if (config.code !== Result.Success.code) {
return new Result(Result.codes.Fail, null, `获取网关配置失败: ${config.message}`);
}
console.log(config)
let { let {
ssid, ssid,
password, password,
@ -91,7 +100,7 @@ export async function connectWiFi(params) {
const uid = this.accountInfo.uid.toString() const uid = this.accountInfo.uid.toString()
// 设置执行账号 // 设置执行账号
const result = await this.login(params.uid) const result = await this.login(uid)
if (result.code !== Result.Success.code) { if (result.code !== Result.Success.code) {
return result return result
} }

View File

@ -403,55 +403,5 @@ export async function getLockList(params) {
} }
/**
* 搜索wifi列表
* @param params
* @returns {Promise<void>}
*/
export async function searchWifiList(params) {
// 需要校验的参数
const baseRequiredFields = [
'uid',
];
const missingField = checkRequiredFields(params, baseRequiredFields);
if (missingField) {
return new Result(Result.NotMoreData, null, `参数信息不完整: ${missingField}`);
}
// 确认设备连接正常
if (!params.connected) {
const searchResult = await searchAndConnectDevice(this.lockInfo.bluetooth.bluetoothDeviceName)
if (searchResult.code !== Result.Success.code) {
return searchResult
}
this.updateLockInfo(searchResult.data)
}
const {uid} = params
const length = 2 + 20
const headArray = this.createPackageHeader(3, length)
const contentArray = new Uint8Array(length)
contentArray[0] = cmdIds.getWifiList / 256
contentArray[1] = cmdIds.getWifiList % 256
for (let i = 0; i < uid.length; i++) {
contentArray[i + 2] = uid.charCodeAt(i)
}
console.log('加密前:', Array.from(contentArray))
const cebArray = sm4.encrypt(contentArray, this.lockInfo.bluetooth.privateKey, {
mode: 'ecb',
output: 'array'
})
const packageArray = createPackageEnd(headArray, cebArray)
await writeBLECharacteristicValue(this.lockInfo.deviceId,
this.lockInfo.serviceId,
this.lockInfo.writeCharacteristicId,
packageArray)
return this.getWriteResult(this.searchWifiList, params)
}