0

編集: 私がやろうとしているのは、基本的に、softap が TCP サーバーを実行した後にステーションを構成することです。

以前に適切に構成した後でも、呼び出すとnilであるというパニック エラーwifi.staが発生します。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

コメント行でパニックエラーが発生します。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 だけでした

みんなありがとう、私は今約1週間立ち往生しているので、どんな助けも感謝しています。

4

1 に答える 1

0

他の多くのスクリプト言語と同様に、lua には宣言がなく、割り当てのみがあります。wifi最初と 2 番目の呼び出しで の値を確認する必要があります。最初はテーブルとして使用しているようで、2番目の関数ではstation_cfg.ssid = _G.wifi.

または、その理由は、グローバル変数が「似_Gている」のではなく、に格納されているためです_G

于 2018-04-17T21:27:16.120 に答える