为什么 wifi.sta 即使在 wifi.setmode(wifi.STATIONAP) 之后也是零?
Why is wifi.sta nil even after wifi.setmode(wifi.STATIONAP)?
EDIT: what I'm trying to do is essentially configure the station after
the softap is running a TCP server.
我在调用 wifi.sta.config(station_cfg)
时收到 panic error for wifi.sta
nil 即使在我配置之后它之前正确。
当我这样做时:
function connectHib()
wifi.setmode(wifi.STATIONAP)
[AP config here]
station_cfg={}
station_cfg.ssid = ""
station_cfg.pwd = ""
station_cfg.save = false
station_cfg.auto = false
wifi.sta.config(station_cfg)
end
它工作正常,但是当我调用它时,然后用 srv=net.createServer(net.TCP)
启动服务器,然后调用以下函数:
function validateSTA()
station_cfg={}
station_cfg.ssid = _G.wifi
station_cfg.pwd = _G.senha
station_cfg.save = false
station_cfg.auto = false
wifi.sta.config(station_cfg) -- this creates an error
wifi.sta.connect()
end
它在注释行中给我一个 PANIC 错误。我只是尝试重新配置 STATION 模块 然后告诉它连接以便我可以验证连接。
我正在使用:
NodeMCU custom build by frightanic.com
branch: master
commit: 67027c0d05f7e8d1b97104e05a3715f6ebc8d07f
SSL: false
modules: adc,file,gpio,net,node,pwm,sjson,tmr,uart,wifi
build created on 2018-04-16 13:55
powered by Lua 5.1.4 on SDK 2.2.1(cfd48f3)
让我烦恼的是为什么以前"declared"好像没有,但它适用于第一个函数...我认为 wifi. 是全局的,就像 _G. 变量。
如果我在没有 init.lua 的情况下在 ESP 上的 ESPlorer 命令行上单独调用函数,它也有效。
我也尝试了调试固件,我看到弹出的唯一奇怪的东西是每 4 秒左右调用一次的 wifi_event_monitor_handle_event_cb。
谢谢大家,感谢您的帮助,因为我现在被困了大约一个星期。
与许多其他脚本语言一样,lua 没有声明,只有赋值。
您应该在第一次和第二次调用期间检查 wifi
的值。似乎一开始您将它用作 table,而在第二个函数中您尝试将它用作 station_cfg.ssid = _G.wifi
中的字符串。
或原因是全局变量不是"like _G
",它们存储在_G
。
EDIT: what I'm trying to do is essentially configure the station after the softap is running a TCP server.
我在调用 wifi.sta.config(station_cfg)
时收到 panic error for wifi.sta
nil 即使在我配置之后它之前正确。
当我这样做时:
function connectHib()
wifi.setmode(wifi.STATIONAP)
[AP config here]
station_cfg={}
station_cfg.ssid = ""
station_cfg.pwd = ""
station_cfg.save = false
station_cfg.auto = false
wifi.sta.config(station_cfg)
end
它工作正常,但是当我调用它时,然后用 srv=net.createServer(net.TCP)
启动服务器,然后调用以下函数:
function validateSTA()
station_cfg={}
station_cfg.ssid = _G.wifi
station_cfg.pwd = _G.senha
station_cfg.save = false
station_cfg.auto = false
wifi.sta.config(station_cfg) -- this creates an error
wifi.sta.connect()
end
它在注释行中给我一个 PANIC 错误。我只是尝试重新配置 STATION 模块 然后告诉它连接以便我可以验证连接。
我正在使用:
NodeMCU custom build by frightanic.com
branch: master
commit: 67027c0d05f7e8d1b97104e05a3715f6ebc8d07f
SSL: false
modules: adc,file,gpio,net,node,pwm,sjson,tmr,uart,wifi
build created on 2018-04-16 13:55
powered by Lua 5.1.4 on SDK 2.2.1(cfd48f3)
让我烦恼的是为什么以前"declared"好像没有,但它适用于第一个函数...我认为 wifi. 是全局的,就像 _G. 变量。
如果我在没有 init.lua 的情况下在 ESP 上的 ESPlorer 命令行上单独调用函数,它也有效。
我也尝试了调试固件,我看到弹出的唯一奇怪的东西是每 4 秒左右调用一次的 wifi_event_monitor_handle_event_cb。
谢谢大家,感谢您的帮助,因为我现在被困了大约一个星期。
与许多其他脚本语言一样,lua 没有声明,只有赋值。
您应该在第一次和第二次调用期间检查 wifi
的值。似乎一开始您将它用作 table,而在第二个函数中您尝试将它用作 station_cfg.ssid = _G.wifi
中的字符串。
或原因是全局变量不是"like _G
",它们存储在_G
。