2017年10月05日

未公開のfa.control機能

なんだか怪しい機能を見つけました。ただ、使い方がわかってるのはevaのみです。

fa.control("eva")
→eva.cgiと同等の出力を得る。serialと組み合わせると便利そう。
 osライブラリが生きていればもっと色々できたのだが...

fa.control("confset")
fa.control("confget")
→なんらかの設定をしたりしそうな関数だが不明。
 confsetは1を、confgetは-1を返す。

fa.control("cmd48")
→見るからにCMD48(READ_EXTR_SINGLE)を発行しそうな関数。
 実行すると512個の配列が帰る。オプションで指定すれば行けそう。

fa.control("cmd49")
→見るからにCMD49(WRITE_EXTR_SINGLE)を発行しそうな関数。
posted by gpsnmeajp at 21:34| Comment(0) | TrackBack(0) | メール投稿

FlashAir W-04の新FWのserial関数(UART通信機能)の使い方

FlashAir W-04の新ファームウェアに追加されたserial関数(UART通信機能)の使い方の解析ができました。
なお、関係ないですがprint文が1回あたり300msほど掛かるようになっています。
リアルタイムに出力が見える反面、かなり遅いです。

初期化

fa.serial("init")

戻り値は常にnil
115200bpsに初期化される。

2018/06/30追記
ファームウェアバージョンW4.00.03においては、ボーレートの変更ができるようになっている

fa.serial("init",9600)

300bps〜921600bpsまで確認した。1bps単位で通信できる模様?
9600bpsや31250bpsでも動作する模様。

開放?

fa.serial("deinit")

未初期化状態に戻る?
戻り値は常にnil


送信

fa.serial("write","Hello World")
fa.serial("write","Hello World",11) --送信バイト数指定?
fa.serial("write",0xAA)

--2018/06/30追記。テーブルも行ける
dat = {0x0D,0x0A}
fa.serial("write",dat)

戻り値は常にnil

受信

x = fa.serial("read")

バッファにデータが有ると、1Byteを数値として返す
データがない時はnil
端子が開放されていると255を返すことがある

バッファの長さは14Byte

速度: 115200bps (W4.00.03では変更可)
8bit 1stop

Tx: D0
Rx: CMD


サンプル

fa.serial("init")
print(fa.serial("write","Hello World"))
s=""
for i=0,16 do
x = fa.serial("read")
if(x ~= nil)then
s = s .. string.format("%c",x)
end
end
print(s)
print("OK")
posted by gpsnmeajp at 18:56| Comment(0) | TrackBack(0) | メール投稿

FlashAirのserial(telnet版)

なんか送信だけはできそうなメッセージが出た。

> serial
serial
> serial write
serial write
serial write -x(hex)/-s(string) data
hex data should be like "02 AF 0E"
> serial read
serial read
posted by gpsnmeajp at 17:58| Comment(0) | TrackBack(0) | メール投稿

FTLEのDebug機能は新ファームウェアでは動作しません

FWアップデートによりDebugライブラリが削除されたため、
FTLEのDebug機能は新FWではもはや動作しません
これはFlashAir側の仕様変更であり、FTLE側での対処はできません。
Debug機能をお使いになりたい場合はアップデートをお控えください。

FWアップデート後は、代替としてbreakpoint()を利用してください。
posted by gpsnmeajp at 17:46| Comment(0) | TrackBack(0) | メール投稿

FlashAir W-04新ファームの検証速報1

メール投稿のテストも兼ねて、速報的に記事を書いてゆく。
現時点で見つけた機能
・FW更新ともに、隠し領域のファイルがすべて修復されるようになっている。
・debug, coroutine, osライブラリが削除された。残念。
・serial関数が増えている。TELNETにも存在。(探査結果は以下に示す)
・WSD_BUF_ERR_OVERFLO問題は未解決(W04では3KBを超えるrequestは全く受信できない)
・fa.udp({mode="stop"})でのフリーズ(?)は変わらず
・fa.serialはメッセージがダンマリなので、@ayasehiroさん並みの気合探索が必要そう
・Luaのprint文の応答がリアルタイムになっている(Chrome側の仕様変更?)


探査結果

assert = function: 961808
tostring = function: 9619E8
require = function: 9995B0
next = function: 961542
rawset = function: 9613BE
math = table: 99B584
ipairs = function: 9615D2
fa = table: 98E78C
_G = table: 98E970
setmetatable = function: 9612B2
select = function: 961844
io = table: 998DC8
dofile = function: 9617B4
xpcall = function: 961980
mod = function: 96075C
error = function: 961226
print = function: 961004
pairs = function: 96157A
getmetatable = function: 96127A
arg = table: 99A5A4
rawequal = function: 961318
string = table: 998E94
SOCK_DGRAM = 2
bit32 = table: 99B1F8
loadstring = function: 9616F2
load = function: 9616F2
SOCK_STREAM = 1
unpack = function: 95F626
DISCARD_BUFFER = 0
collectgarbage = function: 9613FA
package = table: 998770
module = function: 99956C
rawlen = function: 96134C
table = table: 99A3D4
type = function: 9614A4
tonumber = function: 9610A2
pcall = function: 961932
lfs = table: 998BE4
cjson = table: 990310
loadfile = function: 961606
sleep = function: 9607AE
_VERSION = Lua 5.2
rawget = function: 96138A
dump = function: 960710
-------
Bridge
GetSecretCode
sysclk
stack
ping
Connect
Establish
control
ftp
ConnectedSTA
i2c
serial
Scan
task
rename
hash
reboot
request
spi
websocket
getStatus
search
ClrSecretCode
GetScanInfo
SetCert
HTTPGetFile
MailSend
sharedmemory
remove
ip
Disconnect
SetSecretCode
SetCurrentTime
SetRmHeader
StartWPS
ReadResponse
pio
ReadStatusReg
udp
SetChannel
WlanLink
strconvert


Console [level:1(enduser)]
help show help
version show version
mod Modify Memory
dump Dump Memory
ip Address Setting
ping ping
reboot reboot system
fat file system
wlan Wireless LAN control
sd SD Card Access
userpg start user program
wsd wsd
lua LUA
update fwupdate
websocket WebSocket Client (TWSC)
i2c i2c test
serial serial

Console [level:1048(factory)]
help show help
version show version
mod Modify Memory
dump Dump Memory
stat show status
ip Address Setting
ping ping
reboot reboot system
print console output
fat file system
wlan Wireless LAN control
sd SD Card Access
factory Read/Write Factory Information (0xD0000)
current factorycurrent
userpg start user program
wsd wsd
lua LUA
update fwupdate
websocket WebSocket Client (TWSC)
i2c i2c test
serial serial

Console [level:1048(Developer)]
help show help
version show version
mod Modify Memory
fdump Memory dump to file
dump Dump Memory
stat show status
ip Address Setting
ping ping
reboot reboot system
setup TELEC command
send TELEC command
stop TELEC command
show TELEC command
deauth deauth command
print console output
sleep sleep setting
fat file system
wlan Wireless LAN control
dhcpd DHCP server
dhcpc DHCP client
nbios NetBios service
wps Wi-Fi Protected Setup
sd SD Card Access
http HTTP Client
httpd HTTP Daemon
tz HTTP Daemon Time Zone [-48..56]
rfic set RF-IC serial data rfic
iperf Measuring performance
sysclk change System clk
ps ps [on/off]
pw pw
pio pio
posted by gpsnmeajp at 17:39| Comment(0) | TrackBack(0) | メール投稿