diff --git a/IDE_remote/SocketIDE/luatool/README.md b/IDE_remote/SocketIDE/luatool/README.md index e931649..69dfa46 100644 --- a/IDE_remote/SocketIDE/luatool/README.md +++ b/IDE_remote/SocketIDE/luatool/README.md @@ -6,30 +6,44 @@ https://github.com/4refr0nt/luatool ## Description Le petit script python *luatool.py* permet d'automatiser le téléchargement de -scripts *.lua* sur un NodeMCU branché sur le port USB. +scripts *.lua* sur un NodeMCU branché sur le port USB.
+Mais il permet aussi et surtout de le faire via WIFI. Pour cela il faut que le petit serveur *telnet* tourne sur le NodeMCU ! ## Problématiques -La version actuelle datant de 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU, il a y un problème de délai au moment de l'initialisation. +La version actuelle datant de juillet 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU. Il a y un problème au moment de l'initialisation de la connexion série. -## Corrections +## Travail effectué * J'ai donc repris le code python et mis un petit délai de 0.5 secondes juste après l'initialisation du port série. -* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03. Les téléchargement sont donc 10x plus rapides +* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03 sec. Les téléchargements sont donc 10x plus rapides * J'ai aussi mis un nouveau telnet serveur qui tient compte des tailles maximales des paquets TCP +* J'ai aussi bien amélioré le script luatool.py (voir le code source) -## Utilisation -Maintenant c'est très facile de télécharger tout un projet dans un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire: + +## Installation +Maintenant c'est très facile de télécharger tout un projet sur un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire: ``` ./upload.sh ``` -S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai ! +* S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !
+* Il est préférable de télécharger en premier les *gros* fichiers .lua ! + + +## Test via WIFI en telnet +Après avoir installé tout le *binz* sur le NodeMCU avec le script *upload.sh*, on peut utiliser *luatool.py* via le WIFI.
+On peut le tester avec le petit script: +``` +./test_toto-sh +``` + +* Si cela fonctionne, la LED devrait arrêter de clignoter ;-) -zf191020.1836 +zf191020.2055 diff --git a/IDE_remote/SocketIDE/luatool/luatool.py b/IDE_remote/SocketIDE/luatool/luatool.py index 6927c49..6cd1e40 100755 --- a/IDE_remote/SocketIDE/luatool/luatool.py +++ b/IDE_remote/SocketIDE/luatool/luatool.py @@ -1,6 +1,6 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- -version = "0.6.5 zf191020.1932" +version = "0.6.5 zf191020.2041" print("luatool.py ver " + version) @@ -195,24 +195,24 @@ def decidetransport(cliargs): if __name__ == '__main__': # parse arguments or use defaults parser = argparse.ArgumentParser(description='ESP8266 Lua script uploader.') - parser.add_argument('-p', '--port', default='/dev/ttyUSB0', help='Device name, default /dev/ttyUSB0') -# parser.add_argument('-b', '--baud', default=9600, help='Baudrate, default 9600') - parser.add_argument('-b', '--baud', default=115200, help='Baudrate, default 115200') - parser.add_argument('-f', '--src', default='main.lua', help='Source file on computer, default main.lua') - parser.add_argument('-t', '--dest', default=None, help='Destination file on MCU, default to source file name') - parser.add_argument('-c', '--compile', action='store_true', help='Compile lua to lc after upload') - parser.add_argument('-r', '--restart', action='store_true', help='Restart MCU after upload') - parser.add_argument('-d', '--dofile', action='store_true', help='Run the Lua script after upload') - parser.add_argument('-v', '--verbose', action='store_true', help="Show progress messages.") - parser.add_argument('-a', '--append', action='store_true', help='Append source file to destination file.') - parser.add_argument('-l', '--list', action='store_true', help='List files on device') - parser.add_argument('-w', '--wipe', action='store_true', help='Delete all lua/lc files on device.') - parser.add_argument('-i', '--id', action='store_true', help='Query the modules chip id.') - parser.add_argument('-e', '--echo', action='store_true', help='Echo output of MCU until script is terminated.') parser.add_argument('--bar', action='store_true', help='Show a progress bar for uploads instead of printing each line') parser.add_argument('--delay', default=0.03, help='Delay in seconds between each write, default 0.03 sec.', type=float) parser.add_argument('--delete', default=None, help='Delete a lua/lc file from device.') - parser.add_argument('--ip', default=None, help='Connect to a telnet server on the device (--ip IP[:port])') + parser.add_argument('--ip', default=None, help='Connect via telnet server (--ip IP[:port])') + parser.add_argument('--zrestart', action='store_true', help='Restart the NodeMCU.') + parser.add_argument('-a', '--append', action='store_true', help='Append source file to destination file.') + parser.add_argument('-b', '--baud', default=115200, help='Baudrate, default 115200') + parser.add_argument('-c', '--compile', action='store_true', help='Compile lua to lc after upload') + parser.add_argument('-d', '--dofile', action='store_true', help='Run the Lua script after upload') + parser.add_argument('-e', '--echo', action='store_true', help='Echo output of MCU until script is terminated.') + parser.add_argument('-f', '--src', default='main.lua', help='Source file on computer, default main.lua') + parser.add_argument('-i', '--id', action='store_true', help='Query the modules chip id.') + parser.add_argument('-l', '--list', action='store_true', help='List files on device') + parser.add_argument('-p', '--port', default='/dev/ttyUSB0', help='Device name, default /dev/ttyUSB0') + parser.add_argument('-r', '--restart', action='store_true', help='Restart MCU after upload') + parser.add_argument('-t', '--dest', default=None, help='Destination file on MCU, default to source file name') + parser.add_argument('-v', '--verbose', action='store_true', help="Show progress messages.") + parser.add_argument('-w', '--wipe', action='store_true', help='Delete all lua/lc files on device.') args = parser.parse_args() transport = decidetransport(args) @@ -224,7 +224,7 @@ if __name__ == '__main__': if args.list: - #zzz191020 Amélioré la sortie du listing des fichiers + # zzz191020 Amélioré la sortie du listing des fichiers transport.writeln("print('\\n-----');local l = file.list();for k,v in pairs(l) do print(k..', size:'..v)end;print('-----\\n')\r", 0) while True: char = transport.read(1) @@ -245,6 +245,11 @@ if __name__ == '__main__': print("\n"+id) sys.exit(0) + # zzz191020 Ajouté la fonction restart seule + if args.zrestart: + transport.writeln("node.restart()\r") + sys.exit(0) + if args.wipe: transport.writeln("local l = file.list();for k,v in pairs(l) do print(k)end\r", 0) file_list = [] @@ -271,6 +276,8 @@ if __name__ == '__main__': if args.dest is None: args.dest = basename(args.src) + ### zzz191020 Affiche le fichier à envoyer + print("File: " + args.src) # open source file for reading try: diff --git a/IDE_remote/SocketIDE/luatool/upload.sh b/IDE_remote/SocketIDE/luatool/upload.sh index 8b5267c..7132391 100755 --- a/IDE_remote/SocketIDE/luatool/upload.sh +++ b/IDE_remote/SocketIDE/luatool/upload.sh @@ -1,23 +1,29 @@ #!/bin/bash # Petit script pour télécharger facilement tout le binz -#zf191020.1957 +#zf191020.2053 # S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai ! +# Il est préférable de télécharger en premier les *gros* fichiers .lua ! + +#ATTENTION: cela efface tout le NodeMCU ! + +read -p "ATTENTION, cela va effacer tout le NodeMCU !" +read -p "Etes-vous vraiment certain ?" chmod +x luatool.py -./luatool.py --port /dev/cu.wchusbserial1410 -l +./luatool.py --port /dev/cu.wchusbserial1410 --zrestart +sleep 0.5 ./luatool.py --port /dev/cu.wchusbserial1410 -w ./luatool.py --port /dev/cu.wchusbserial1410 -l -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src boot.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src boot2.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.03 --src flash_led_xfois.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src initz.lua --dest init.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src secrets_energy.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_ap_stop.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_cli_conf.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_cli_start.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_info.lua -./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.06 --src telnet_srv2.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.06 --src telnet_srv2.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src boot.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src boot2.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.03 --src flash_led_xfois.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src secrets_energy.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_ap_stop.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_cli_conf.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_cli_start.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_info.lua +./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src initz.lua --dest init.lua ./luatool.py --port /dev/cu.wchusbserial1410 -l - -#./luatool.py --port /dev/cu.wchusbserial1410 -r +./luatool.py --port /dev/cu.wchusbserial1410 --zrestart