为什么即使在wifi.setmode(wifi.STATIONAP)之后wifi.sta为零?

时间:2018-04-17 01:48:34

标签: lua esp8266 nodemcu esplorer

  

编辑:我尝试做的事情主要是在之后配置电台   softap正在运行TCP服务器。

wifi.sta nil 恐慌错误,即使我之前正确配置wifi.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 启动服务器,然后调用以下函数:

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)

它在注释行上给出了 PANIC 错误。我只是尝试重新配置 STATION模块,然后告诉它连接,以便我可以验证连接。

我正在使用:

if (object.present? && object.deleted_at.nil?)

我的错误为什么它似乎没有"宣布"之前,但它适用于第一个函数 ...我认为 wifi。是全球性的,如 _G。变量。

如果我在不使用init.lua的ESP上的ESPlorer命令行上单独调用函数,它也可以工作。

我也尝试过调试固件,我看到弹出的唯一奇怪的事情是 wifi_event_monitor_handle_event_cb ,每4秒左右调用一次。

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

1 个答案:

答案 0 :(得分:0)

与许多其他脚本语言一样,lua没有声明,只有赋值。 您应该在第一次和第二次调用期间检查gocv.NewMat()的值是多少。看起来,您首先将它用作表格,而在第二个函数中,您尝试将其用作wifi中的字符串。

或者原因是全局变量不像“station_cfg.ssid = _G.wifi”,它们存储在_G中。