diff --git a/src/api/apiWifi.ts b/src/api/apiWifi.ts
index 43e955f..e857a22 100644
--- a/src/api/apiWifi.ts
+++ b/src/api/apiWifi.ts
@@ -10,6 +10,8 @@ export enum WifiCmd {
WIFI_API_JSON_GET_MODE = 6,
WIFI_API_JSON_SET_MODE = 7,
WIFI_API_JSON_AP_SET_CRED = 8,
+ WIFI_API_JSON_STA_GET_STATIC_INFO = 9,
+ WIFI_API_JSON_STA_SET_STATIC_CONF = 10,
}
export enum WifiMode {
@@ -83,6 +85,8 @@ export interface WifiInfo extends ApiJsonMsg {
ip: string;
mac: string;
netmask: string;
+ dns_main: string;
+ dns_backup: string;
wifiLogo?: string;
}
@@ -146,3 +150,37 @@ export function wifi_ap_set_credential(ssid: string, password: string) {
}
sendJsonMsg(msg);
}
+
+export interface IWifiStaStaticInfo {
+ static_ip_en: number;
+ static_dns_en: number;
+ ip: string;
+ gateway: string;
+ netmask: string;
+ dns_main: string;
+ dns_backup: string;
+}
+export function wifi_sta_get_static_info() {
+ const msg: ApiJsonMsg = {
+ module: WtModuleID.WIFI,
+ cmd: WifiCmd.WIFI_API_JSON_STA_GET_STATIC_INFO,
+ }
+ sendJsonMsg(msg);
+}
+
+export function wifi_sta_set_static_conf(static_info: IWifiStaStaticInfo) {
+ const msg: IWifiStaStaticInfo & ApiJsonMsg = {
+ module: WtModuleID.WIFI,
+ cmd: WifiCmd.WIFI_API_JSON_STA_SET_STATIC_CONF,
+ static_dns_en: static_info.static_dns_en,
+ static_ip_en: static_info.static_ip_en,
+ ip: static_info.ip,
+ gateway: static_info.gateway,
+ netmask: static_info.netmask,
+ dns_main: static_info.dns_main,
+ dns_backup: static_info.dns_backup,
+ }
+ sendJsonMsg(msg);
+}
+
+
diff --git a/src/views/Wifi.vue b/src/views/Wifi.vue
index 582d05a..1ceb0b1 100644
--- a/src/views/Wifi.vue
+++ b/src/views/Wifi.vue
@@ -63,7 +63,7 @@
热点+终端模式并存会影响稳定性。且保持热点开启会增加功耗。
智能模式:
- 成功连接Wi-Fi,10秒后自动关闭热点;断开连接,5秒后自动打开热点
+ 成功连接Wi-Fi,30秒后自动关闭热点;断开连接,5秒后自动打开热点
热点+终端共存模式:
@@ -77,7 +77,7 @@
-
+
-
+
信号强度
- {{ wifiStaApInfo.rssi }}
+ {{ wifiStaApInfo.rssi }}
-
+
Wi-Fi名(SSID)
- {{ wifiStaApInfo.ssid }}
+ {{ wifiStaApInfo.ssid }}
@@ -129,21 +129,19 @@
-
-
-
- IP(内网地址)
-
-
- {{ wifiStaApInfo.ip }}
-
MAC
- {{ wifiStaApInfo.mac }}
+ {{ wifiStaApInfo.mac }}
+
+
+
+ IP(内网地址)
+
+ {{ wifiStaApInfo.ip }}
@@ -151,23 +149,111 @@
网关
- {{ wifiStaApInfo.gateway }}
+ {{ wifiStaApInfo.gateway }}
-
掩码
- {{ wifiStaApInfo.netmask }}
+ {{ wifiStaApInfo.netmask }}
+
+
+
+
+ 首选DNS
+
+
+ {{ wifiStaApInfo.dns_main }}
+
+
+
+
+ 备用DNS
+
+
+ {{ wifiStaApInfo.dns_backup }}
+
+
+
+
+
+ IP分配模式
+
+
+
+
+
+
+
+
+ IP(内网地址)
+
+
+
+
+
+
+ 网关
+
+
+
+
+
+
+
+ 掩码
+
+
+
+
+
+
+
+
+ DNS模式
+
+
+
+
+
+
+
+
+
+ 首选DNS
+
+
+
+
+
+
+
+ 备用DNS
+
+
+
+
+ 保存
+
({...defWifiInfo});
let wifiApInfo = reactive({...defWifiInfo});
+let wifiStaticInfo = reactive({
+ dns_backup: "0.0.0.0",
+ dns_main: "0.0.0.0",
+ gateway: "0.0.0.0",
+ ip: "0.0.0.0",
+ netmask: "0.0.0.0",
+ static_dns_en: 0,
+ static_ip_en: 0,
+});
let scanning = ref(false);
let scan_cb: any;
@@ -349,6 +464,7 @@ const onClientMsg = (msg: ApiJsonMsg) => {
if (connectBtnClicked) {
connectBtnClicked = 0;
globalNotifyRightSide(wifiStaApInfo.ssid + " 连接成功", "success");
+ wifi_sta_get_static_info();
}
break;
}
@@ -409,7 +525,6 @@ const onClientMsg = (msg: ApiJsonMsg) => {
wifiSta_On.value = false;
}
}
- console.log("@@@", wifiAp_On.value);
break;
}
case WifiCmd.WIFI_API_JSON_AP_SET_CRED: {
@@ -423,6 +538,15 @@ const onClientMsg = (msg: ApiJsonMsg) => {
break;
}
+ case WifiCmd.WIFI_API_JSON_STA_GET_STATIC_INFO: {
+ const staticInfo = msg as IWifiStaStaticInfo & ApiJsonMsg;
+ console.log("@@@", staticInfo);
+ Object.assign(wifiStaticInfo, staticInfo);
+ break;
+ }
+ case WifiCmd.WIFI_API_JSON_STA_SET_STATIC_CONF:
+ wifiMode_loading.value = false;
+ break;
default:
if (isDevMode()) {
console.log(msg);
@@ -445,6 +569,7 @@ const onClientCtrl = (msg: ControlMsg) => {
wifi_sta_get_ap_info();
wifi_ap_get_info();
wifi_get_mode();
+ wifi_sta_get_static_info();
}
};
@@ -476,6 +601,7 @@ function beforeWifiModeChange(ap_sta: "AP" | "STA" = "AP") {
wifiMode_loading.value = true;
wifi_set_mode(wifiSta_On.value ? WifiMode.WIFI_STA_STOP : WifiMode.WIFI_STA_START);
}
+ wifi_sta_get_ap_info();
return false;
}
@@ -493,6 +619,12 @@ function wifiApChangeCredential() {
wifi_ap_set_credential(wifiApInfo.ssid, wifiApInfo.password);
}
+function wifiStaSetStaticInfo() {
+ wifiMode_loading.value = true;
+ wifi_sta_set_static_conf(wifiStaticInfo);
+ wifi_sta_get_ap_info();
+}
+
onMounted(() => {
registerModule(WtModuleID.WIFI, {
ctrlCallback: onClientCtrl,
@@ -502,13 +634,13 @@ onMounted(() => {
wifi_sta_get_ap_info();
wifi_ap_get_info();
wifi_get_mode();
+ wifi_sta_get_static_info();
});
onUnmounted(() => {
unregisterModule(WtModuleID.WIFI);
});
-