---
Scraped from http://www.lua.org/about.html
What is Lua?
Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
---
FlashAir 3.0 supports some of LUA but it does have limitations due to the size of its memory.
Flashair 3.0 doesn't support coroutine, OS library, math or the debug.
This is flashair developers text on LUA: https://flashair-developers.com/en/documents/api/lua/
Functions that Flashair supports: https://flashair-developers.com/en/docum...reference/
After another user here had issues locating the IP address of their DHCP enabled card, I whipped up a small script, albeit a little late, to write the IP information to a text file.
Feel free to steal it if you are having issues trying to locate the card's IP. Script grabs a list of SSIDs of the wifi routers it discovered, useful to tell if your card even sees your wifi router, and the IP info of the card then writes it to a text file on the FlashAir.
Copy the script below to the root of the FlashAir card (I named it wifistatus.lua) and add this line to your CONFIG:
LUA_RUN_SCRIPT=/wifistatus.lua
This script will run at boot up.
If you put the card into your SD card reader and wait about 15 to 30 seconds, you can open the ssid.txt file that this script creates and find what IP the card was given. The chances of your card getting a different IP after that are slim and the card should have the same IP after you return it to your CPAP. If you can connect to your card through webdav you can open the file from there and find the IP as well.
Here is the script:
--[[
This script will scan for wifi networks and lists all SSID it finds
Will also attempt to log the IP, subnetmask and gateway of the card
]]--
ssidfile = "ssid.txt"
local function waitWlanConnect()
while 1 do
local res = fa.ReadStatusReg()
local a = string.sub(res, 13, 16)
a = tonumber(a, 16)
if (bit32.extract(a, 15) == 1) then
print("connect")
break
end
if (bit32.extract(a, 0) == 1) then
print("mode Bridge")
break
end
if (bit32.extract(a, 12) == 1) then
print("mode AP")
break
end
sleep(2000)
end
end
local function writeInfo(_oFile)
local sfile = io.open(_oFile, "w")
count = fa.Scan()
ip, mask, gw = fa.ip()
sfile:write("IP: "..ip.."\r\n")
sfile:write("mask: "..mask.."\r\n")
sfile:write("gw: "..gw.."\r\n")
sfile:write("SSID list:".."\r\n")
for i=0, (count-1), 1 do
ssid, other = fa.GetScanInfo(i)
sfile:write(i..": "..ssid.."\r\n")
end
sfile:close()
end
-- Main script
waitWlanConnect()
writeInfo(ssidfile)
collectgarbage()
This is what the script writes to the ssid.txt file:
IP: 192.168.0.40
mask: 255.255.255.0
gw: 192.168.0.1
SSID list:
0: xxxxxx
1: xfinitywifi
2: X
I wanted to learn Binary so I enrolled in Binary 101. I seemed to have missed the first four courses.
Stick it to the man, Download OSCAR and take back control of your data!
Thanks Ian. Like I didn't have enough Honey-Do projects to tackle.