12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- --SAFETRIM
- -- function _init(self, args)
- local self, args = ...
- -- The config is read from config.json but can be overridden by explicitly
- -- setting the following args. Setting to "nil" deletes the config arg.
- --
- -- ssid, spwd Credentials for the WiFi
- -- server, port, secret Provisioning server:port and signature secret
- -- leave If true then the Wifi is left connected
- -- espip, gw, nm, nsserver These need set if you are not using DHCP
- local wifi, file, json, tmr = wifi, file, sjson, tmr
- local log, sta, config = self.log, wifi.sta, nil
- print ("\nStarting Provision Checks")
- log("Starting Heap:", node.heap())
- if file.open(self.prefix .. "config.json", "r") then
- local s; s, config = pcall(json.decode, file.read())
- if not s then print("Invalid configuration:", config) end
- file.close()
- end
- if type(config) ~= "table" then config = {} end
- for k,v in pairs(args or {}) do config[k] = (v ~= "nil" and v) end
- config.id = node.chipid()
- config.a = "HI"
- self.config = config
- self.secret = config.secret
- config.secret = nil
- log("Config is:",json.encode(self.config))
- log("Mode is", wifi.setmode(wifi.STATION, false), config.ssid, config.spwd)
- log("Config status is", sta.config(
- { ssid = config.ssid, pwd = config.spwd, auto = false, save = false } ))
- if config.espip then
- log( "Static IP setup:", sta.setip(
- { ip = config.espip, gateway = config.gw, netmask = config.nm }))
- end
- sta.connect(1)
- package.loaded[self.modname] = nil
- self.modname=nil
- self.timer:alarm( 500, tmr.ALARM_AUTO, self:_doTick())
- -- end
|