Prechádzať zdrojové kódy

update: 完善wlan.getMac函数,清除wlan库部分编译警告

Wendal Chen 2 rokov pred
rodič
commit
1093093763

+ 14 - 5
components/wlan/luat_lib_wlan.c

@@ -237,15 +237,24 @@ static int l_wlan_smartconfig(lua_State *L) {
 
 /*
 获取mac
-@api wlan.getMac()
-@return string MAC地址,十六进制字符串形式 "AABBCCDDEEFF"
+@api wlan.getMac(tp, hexstr)
+@int 设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即0,默认值也是0
+@bool 是否转HEX字符, 默认是true,即输出hex字符串
+@return string MAC地址,十六进制字符串形式 "AABBCCDDEEFF" 或原始数据
+
+log.info("wlan mac", wlan.getMac())
 */
 static int l_wlan_get_mac(lua_State* L){
     char tmp[6] = {0};
     char tmpbuff[16] = {0};
     luat_wlan_get_mac(luaL_optinteger(L, 1, 0), tmp);
-    sprintf_(tmpbuff, "%02X%02X%02X%02X%02X%02X", tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5]);
-    lua_pushstring(L, tmpbuff);
+    if (lua_isboolean(L, 2) && !lua_toboolean(L, 2)) {
+        lua_pushlstring(L, tmp, 6);
+    }
+    else {
+        sprintf_(tmpbuff, "%02X%02X%02X%02X%02X%02X", tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5]);
+        lua_pushstring(L, tmpbuff);
+    }
     return 1;
 }
 
@@ -254,7 +263,7 @@ static int l_wlan_get_mac(lua_State* L){
 设置mac
 @api wlan.setMac(tp, mac)
 @int 设置何种mac地址,对ESP32系列来说,只能设置STA的地址,即0
-@string 待设置的MAC地址
+@string 待设置的MAC地址,长度6字节
 @return bool 成功返回true,否则返回false
 @usage
 -- 设置MAC地址, 2023-03-01之后编译的固件可用

+ 2 - 2
components/wlan/luat_wlan.h

@@ -59,7 +59,7 @@ int luat_wlan_ready(void);
 int luat_wlan_connect(luat_wlan_conninfo_t* info);
 int luat_wlan_disconnect(void);
 int luat_wlan_scan(void);
-int luat_wlan_scan_get_result(luat_wlan_scan_result_t *results, int ap_limit);
+int luat_wlan_scan_get_result(luat_wlan_scan_result_t *results, size_t ap_limit);
 
 // 配网相关
 // --- smartconfig 配网
@@ -79,7 +79,7 @@ int luat_wlan_get_mac(int id, char* mac);
 int luat_wlan_set_mac(int id, const char* mac);
 int luat_wlan_get_ip(int type, char* data);
 const char* luat_wlan_get_hostname(int id);
-int luat_wlan_set_hostname(int id, char* hostname);
+int luat_wlan_set_hostname(int id, const char* hostname);
 
 // 设置和获取省电模式
 int luat_wlan_set_ps(int mode);