0

编辑:我要做的基本上是在softap运行TCP服务器之后配置站。

即使在我之前正确配置它之后,当我调用它时,我也会收到一个恐慌错误wifi.stawifi.sta.config(station_cfg)

当我做:

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)

让我烦恼的是为什么它之前似乎没有被“声明”,但它适用于第一个功能......我认为是wifi。像_G一样是全球性的。变量。

如果我在没有我的 init.lua 的情况下在 ESP 上的 ESPlorer 命令行上单独调用这些函数,它也可以工作。

我还尝试了调试固件,我看到的唯一奇怪的东西是每 4 秒左右调用一次的 wifi_event_monitor_handle_event_cb

谢谢大家,任何帮助都非常感谢,因为我现在被困了大约一个星期。

4

1 回答 1

0

像许多其他脚本语言一样,lua 没有声明,只有赋值。wifi您应该在第一次和第二次调用期间检查什么是's value。似乎一开始您将其用作表格,而在第二个函数中您尝试将其用作station_cfg.ssid = _G.wifi.

或者原因是全局变量不是“喜欢_G”的,它们存储在_G.

于 2018-04-17T21:27:16.120 回答