дайте логи (выводятся на экран во время заливки), а то без дополнительной информации сложно будет вам помочьчот не могу залить init.lua
lua: cannot open init.lua
NodeMcu 0.9.2 build 20141120 powered by Lua 5.1.4
~/p/lua/luatool/luatool/ [master*] ./luatool.py -p /dev/tty.SLAB_USBtoUART -f init.lua -t init.lua
Downloader start
start writing...
print('init.lua ver 1.2 mymy')
All down.
~/p/lua/luatool/luatool/ [master*]
lua: cannot open init.lua
print('init.lua ver 1.2 mymy')
--wifi.setmode(wifi.STATION)
--print('set mode=STATION (mode=',wifi.getmode(),')')
--print('MAC=',wifi.sta.getmac())
--print('set wifi')
-- wifi config start
--wifi.sta.config("ssid","MasterPassword")
-- wifi config end
--gpio.mode(4,gpio.OUTPUT)
--gpio.write(4,gpio.HIGH)
file.open("server.lua","w+")
s=net.createServer(net.TCP)
s:listen(8888,function(c) c:on("receive",function(c,pl) print(pl) pcall(loadstring(pl)) end) end)
file.close()
Ну, благодаря вам, я собрался, наконец-то, переписать тупую запись с паузами на нормальную передачу с проверкой ответа от прошивки, так что вам спасибо!О хорошая новость.
Вот чудо платка выдавала 2.8 вольт и 3.3 v, за место (3.3 и 5 соответственно). При 2.8 вольт чип работает, но не записывает нечего во флеш и при открытии файла с 'W' ошибка.
Так что проблема была у меня. Сори что дергал.
~/p/lua/handyswith/ ./luatool.py -p /dev/tty.SLAB_USBtoUART
Downloader start
Set timeout 3
Set interCharTimeout 3
Stage 1. Deleting old file from flash memory
->file.open("main.lua", "w") -> ok
->file.close()
ERROR
send string : 'file.close()'
expected echo : 'file.close()'
but got answer : ' file.close()'
Traceback (most recent call last):
File "./luatool.py", line 139, in <module>
writeln("file.close()\r")
File "./luatool.py", line 57, in writeln
raise Exception('Error sending data to LuaMCU\r\n\r\n')
Exception: Error sending data to LuaMCU
~/p/lua/handyswith/ ./luatool.py -p /dev/tty.SLAB_USBtoUART
Downloader start
Set timeout 3
Set interCharTimeout 3
Stage 1. Deleting old file from flash memory
->file.open("main.lua", "w") -> ok
->file.close() -> ok
Stage 2. Creating file in flash memory and write first line->file.remove("main.lua") -> ok
->file.open("main.lua", "w+") -> ok
Stage 3. Start writing data to flash memory...->file.writeline([[print("lua script loaded by luatool 0.4")]]) -> ok
->file.writeline([[print('main.lua ver 1.1')]]) -> ok
->file.writeline([[-- web config]]) -> ok
->file.writeline([[ip="91.201.52.76"]]) -> ok
->file.writeline([[name="esp8266.ru"]]) -> ok
->file.writeline([[port=80]]) -> ok
->file.writeline([[-- web config]]) -> ok
->file.writeline([[function getHTTPreq()]]) -> ok
->file.writeline([[print('send GET to http server...')]]) -> ok
->file.writeline([[conn=net.createConnection(net.TCP, false)]]) -> ok
->file.writeline([[conn:on("receive", function(conn, payload) print('http server answer:'..payload) end)]]) -> ok
->file.writeline([[conn:connect(port,ip)]]) -> ok
->file.writeline([[conn:send("GET / HTTP/1.1\r\nHost: "]]) -> ok
->file.writeline([[..name.."\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")]]) -> ok
->file.writeline([[end]]) -> ok
->file.writeline([[tmr.alarm(1000, 1, function()]]) -> ok
->file.writeline([[if wifi.sta.getip()=="0.0.0.0" then]]) -> ok
->file.writeline([[print("connecting to AP...")]]) -> ok
->file.writeline([[else]]) -> ok
->file.writeline([[print('ip: ',wifi.sta.getip())]]) -> ok
->file.writeline([[getHTTPreq()]]) -> ok
->file.writeline([[tmr.stop()]]) -> ok
->file.writeline([[end]]) -> ok
Stage 4. Flush data and closing file->file.writeline([[end)]]) -> ok
->file.flush() -> ok
--->>> All down <<<---
->file.close() -> ok%[
Добавил time.sleep(0.3)Есть проблема в паузе.
В функции writeln после s.write(data) поставил time.sleep(1). И заработало.
ЗЫ Без ошибок записалось с паузой не менее 0.3 скорость порта 9600.
да, это неплохая идея. есть еще пара предложений, так что похоже, что в выходные я буду занятВиктор благодарствую.
У меня получаются команды всегда такого вида -f xxx.lua -t xxx.lua. В основном локальное имя файла равно имени на датчике. Думаю загружать с 1 параметром, а второй параметр требуется когда имя файла отличается.