This commit is contained in:
lyon 2023-01-25 14:14:05 +08:00
parent 9b82685e4d
commit 00af6c4380
4 changed files with 28 additions and 20 deletions

View File

@ -0,0 +1,8 @@
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('testssid', 'testpassword')
wlan.isconnected()
wlan.ifconfig()
wlan.close()

View File

@ -306,7 +306,7 @@ int pika_hal_WIFI_ioctl_merge_config(pika_hal_WIFI_config* dst,
_IOCTL_CONFIG_USE_DEFAULT_STR(bssid, "");
_IOCTL_CONFIG_USE_DEFAULT_STR(password, "");
_IOCTL_CONFIG_USE_DEFAULT_STR(ip, "");
_IOCTL_CONFIG_USE_DEFAULT_STR(netmask, "");
_IOCTL_CONFIG_USE_DEFAULT_STR(netmask, "255.255.255.0");
_IOCTL_CONFIG_USE_DEFAULT_STR(gateway, "");
_IOCTL_CONFIG_USE_DEFAULT_STR(dns, "");
return 0;

View File

@ -17,7 +17,7 @@ class WLAN:
def connect(self, ssid: str, key: str): ...
def connectWIthBssid(self, ssid: str, key: str, bssid: str): ...
def connectWithBssid(self, ssid: str, key: str, bssid: str): ...
def disconnect(self): ...

View File

@ -3,10 +3,10 @@
#include "PikaStdData_List.h"
#include "PikaStdData_Tuple.h"
#define assert_result(res) \
if (res != 0) { \
pika_platform_printf("assert_result failed: %d, at %s:%d:%s()\r\n", \
res, __FILE__, __LINE__, __FUNCTION__); \
#define check_res(res) \
if (res != 0) { \
pika_platform_printf("check_res failed: %d, at %s:%d:%s()\r\n", res, \
__FILE__, __LINE__, __FUNCTION__); \
}
void _network_WLAN___init__(PikaObj* self, int interface_id) {
@ -16,7 +16,7 @@ void _network_WLAN___init__(PikaObj* self, int interface_id) {
}
pika_hal_WIFI_config cfg = {0};
cfg.mode = interface_id;
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
obj_setPtr(self, "hal_wifi", hal_wifi);
}
@ -25,7 +25,7 @@ void _network_WLAN_active(PikaObj* self, int is_active) {
if (hal_wifi == NULL) {
return;
}
assert_result(
check_res(
pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_WIFI_SET_ACTIVE, &is_active));
return;
}
@ -36,7 +36,7 @@ int _network_WLAN_checkActive(PikaObj* self) {
return -1;
}
int is_active = 0;
assert_result(
check_res(
pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_WIFI_GET_ACTIVE, &is_active));
return is_active;
}
@ -56,7 +56,7 @@ void _network_WLAN_config(PikaObj* self, PikaDict* kwargs) {
if (pikaDict_isArgExist(kwargs, "channel")) {
cfg.channel = pikaDict_getInt(kwargs, "channel") + 1;
}
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
}
Arg* _network_WLAN_checkConfig(PikaObj* self, char* param) {
@ -84,12 +84,12 @@ void _network_WLAN_connect(PikaObj* self, char* ssid, char* key) {
pika_hal_WIFI_config cfg = {0};
strcpy(cfg.ssid, ssid);
strcpy(cfg.password, key);
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_ENABLE));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_ENABLE));
return;
}
void _network_WLAN_connectWIthBssid(PikaObj* self,
void _network_WLAN_connectWithBssid(PikaObj* self,
char* ssid,
char* key,
char* bssid) {
@ -101,8 +101,8 @@ void _network_WLAN_connectWIthBssid(PikaObj* self,
strcpy(cfg.ssid, ssid);
strcpy(cfg.password, key);
strcpy(cfg.bssid, bssid);
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_ENABLE));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_ENABLE));
}
void _network_WLAN_disconnect(PikaObj* self) {
@ -110,7 +110,7 @@ void _network_WLAN_disconnect(PikaObj* self) {
if (hal_wifi == NULL) {
return;
}
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_DISABLE));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_DISABLE));
}
int _network_WLAN_status(PikaObj* self) {
@ -119,7 +119,7 @@ int _network_WLAN_status(PikaObj* self) {
return -1;
}
PIKA_HAL_WIFI_STATUS status = 0;
assert_result(
check_res(
pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_WIFI_GET_STATUS, &status));
return status;
}
@ -173,7 +173,7 @@ void _network_WLAN_ifconfig(PikaObj* self,
strcpy(cfg.netmask, mask);
strcpy(cfg.gateway, gateway);
strcpy(cfg.dns, dns);
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_CONFIG, &cfg));
return;
}
@ -183,7 +183,7 @@ PikaObj* _network_WLAN_scan(PikaObj* self) {
return NULL;
}
pika_hal_WIFI_scan_result* result = NULL;
assert_result(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_WIFI_SCAN, &result));
check_res(pika_hal_ioctl(hal_wifi, PIKA_HAL_IOCTL_WIFI_SCAN, &result));
if (NULL == result) {
return NULL;
}
@ -224,5 +224,5 @@ void _network_WLAN_close(PikaObj* self) {
if (hal_wifi == NULL) {
return;
}
assert_result(pika_hal_close(hal_wifi));
check_res(pika_hal_close(hal_wifi));
}