diff --git a/WIFI_sniffer/cret_project/_zremote_cmd.txt b/WIFI_sniffer/cret_project/_zremote_cmd.txt
index 119cf64..987f171 100644
--- a/WIFI_sniffer/cret_project/_zremote_cmd.txt
+++ b/WIFI_sniffer/cret_project/_zremote_cmd.txt
@@ -24,9 +24,10 @@ ATTENTION: voir les tunnels tout à la fin !
# ouvrir et fermer (ALT+N+.) une session telnet sur le NodeMCU avec l'adresse zIP)
telnet -rN $zIP $zport
~.
-node.restart()
+--node.restart()
collectgarbage()
=node.heap()
+for k,v in pairs(_G) do print(k,v) end
# commandes lua pour ce projet
@@ -50,7 +51,7 @@ zsort_rssi() zshow()
dofile("wifi_ap_start.lua")
dofile("wifi_info.lua")
-node.restart()
+--node.restart()
for k,v in pairs(_G) do print(k,v) end
t=12
t=nil
@@ -61,7 +62,7 @@ print(pcall(function () print("2"..t) end))
# ici c'est maintenant ;-)
~.
./luatool.py --ip $zIP:$zport -f b.lua
-./luatool.py --ip $zIP:$zport --zrestart
+--./luatool.py --ip $zIP:$zport --zrestart
telnet -rN $zIP $zport
zsort_rssi() zshow()
print(ztrig_rssi)
@@ -119,7 +120,7 @@ export zIP="localhost"
export zport="2323"
telnet -rN $zIP $zport
~.
-node.restart()
+--node.restart()
=node.heap()
diff --git a/WIFI_sniffer/cret_project/b.lua b/WIFI_sniffer/cret_project/b.lua
index 65159ee..281d13a 100644
--- a/WIFI_sniffer/cret_project/b.lua
+++ b/WIFI_sniffer/cret_project/b.lua
@@ -1,9 +1,9 @@
-- Scripts pour tester le sniffer de smartphone qui essaient de se connecter sur des AP WIFI
-- source: https://nodemcu.readthedocs.io/en/dev/modules/wifi/#wifieventmonregister
-print("\n b.lua zf191030.1407 \n")
+print("\n b.lua zf191030.2052 \n")
-ztrig_rssi=-90
+ztrig_rssi=-70
--f= "set_time.lua" if file.exists(f) then dofile(f) end
diff --git a/WIFI_sniffer/cret_project/boot.lua b/WIFI_sniffer/cret_project/boot.lua
index 0bccab9..3ded0b5 100644
--- a/WIFI_sniffer/cret_project/boot.lua
+++ b/WIFI_sniffer/cret_project/boot.lua
@@ -1,10 +1,13 @@
-- Scripts à charger après le boot pour démarrer le core system
-print("\n boot.lua zf191029.2257 \n")
+print("\n boot.lua zf191030.2012 \n")
-
---f= "led_rgb.lua" if file.exists(f) then dofile(f) end
-f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end
---f= "web_ide2.lua" if file.exists(f) then dofile(f) end
---ff= "web_srv2.lua" if file.exists(f) then dofile(f) end
+function boot()
+ --f= "led_rgb.lua" if file.exists(f) then dofile(f) end
+ f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end
+ f= "wifi_init.lua" if file.exists(f) then dofile(f) end
+ --f= "web_ide2.lua" if file.exists(f) then dofile(f) end
+ --ff= "web_srv2.lua" if file.exists(f) then dofile(f) end
+end
+boot()
diff --git a/WIFI_sniffer/cret_project/boot2.lua b/WIFI_sniffer/cret_project/boot2.lua
index 9441109..2ccc65b 100644
--- a/WIFI_sniffer/cret_project/boot2.lua
+++ b/WIFI_sniffer/cret_project/boot2.lua
@@ -1,38 +1,54 @@
-- Scripts à charger après le boot pour démarrer son projet
-print("\n boot2.lua zf191029.2259 \n")
+print("\n boot2.lua zf191030.2038 \n")
-second_chance=nil
+function boot2()
+ second_chance=nil initz=nil boot=nil
+ f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end
+ if false then
+ tmr.create():alarm(1*1000, tmr.ALARM_AUTO, function()
+ xfois =2
+ blink_LED ()
+ end)
+ end
-f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end
-xfois =5 blink_LED ()
+ boot2_tmr=tmr.create()
+ boot2_tmr:alarm(1*1000, tmr.ALARM_AUTO , function()
+ if wifi.sta.getip() == nil then
+ print("Connecting to AP...")
+ xfois =2 blink_LED ()
+ else
+ boot2_tmr:unregister()
+ flash_led_xfois=nil blink_LED=nil ztmr_Flash_LED=nil
+ zTm_Off_LED=nil zTm_On_LED=nil nbfois=nil xfois=nil zLED=nil
+ boot2_tmr=nil secrets_wifi=nil wifi_init=nil
+ cli_ssid=nil cli_pwd=nil ap_ssid=nil ap_pwd=nil
+ f= "wifi_info.lua" if file.exists(f) then dofile(f) end
+ f= "secrets_project.lua" if file.exists(f) then dofile(f) end
+ f= "set_time.lua" if file.exists(f) then dofile(f) end
+ collectgarbage()
+ f= "b.lua" if file.exists(f) then dofile(f) end
-function heartbeat()
- boottimer1=tmr.create()
- boottimer1:alarm(1*1000, tmr.ALARM_AUTO, function()
- xfois =2
- blink_LED ()
+ f=nil
+
+ tmr.create():alarm(3*1000, tmr.ALARM_SINGLE, function()
+ print("BOOOOUM, y'a plus de boot2 !")
+ wifi_info=nil boot2=nil
+ end)
+
+ end
end)
end
-f= "secrets_project.lua" if file.exists(f) then dofile(f) end
-f= "set_time.lua" if file.exists(f) then dofile(f) end
+boot2()
-collectgarbage()
-f= "b.lua" if file.exists(f) then dofile(f) end
-f=nil
-
-tmr.create():alarm(3*1000, tmr.ALARM_SINGLE, function()
- flash_led_xfois=nil blink_LED=nil ztmr_Flash_LED=nil
- zTm_Off_LED=nil zTm_On_LED=nil nbfois=nil xfois=nil zLED=nil
+--[[
+tmr.create():alarm(1*1000, tmr.ALARM_AUTO, function()
+ print(node.heap())
end)
-
-heartbeat=nil
---heartbeat()
-
+]]
--[[
for k,v in pairs(_G) do print(k,v) end
]]
-
diff --git a/WIFI_sniffer/cret_project/in production/README.md b/WIFI_sniffer/cret_project/in production/README.md
new file mode 100644
index 0000000..86b7337
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/README.md
@@ -0,0 +1,93 @@
+# Remise au goût du jour le petit script luatool.py
+
+## Sources
+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.
+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 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.
+
+
+## Travail effectué
+* J'ai donc repris le code python et juste après l'initialisation du port série je cherche le caractère '>', ainsi je suis certain que le NodeMCU a bien redémarré.
+
+* 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)
+
+
+## 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
+```
+* A chaque utilisation de luatool.py, le NodeMCU, s'il est branché sur le port série, redémarre !
+* 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 ;-)
+
+
+## Goodies
+### Quelques commandes en WIFI ;-)
+**ATTENTION:** ces exemples de commandes sont pour MON adresse IP actuelle de mon NodeMCU ;-)
+
+Help du luatool.py
+```
+./luatool.py -h
+```
+
+Liste les fichiers qui se trouvent sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 -l
+```
+
+Télécharge le fichier *toto.lua* sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 -f toto.lua
+```
+
+Télécharge le fichier *toto.lua* sur le NodeMCU, mais le renomme en *tutu.lua* et affiche une *progression bar* de l'évolution du téléchargement
+```
+./luatool.py --ip 192.168.0.157 -f toto.lua -t tutu.lua
+```
+
+Vérifie que tout est bon sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 -l
+```
+
+Efface le fichier *toto.lua* sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 --delete toto.lua
+```
+
+Efface le fichier *tutu.lua* sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 --delete tutu.lua
+```
+
+Vérifie que tout est bon sur le NodeMCU
+```
+./luatool.py --ip 192.168.0.157 -l
+```
+
+
+zf191021.1619
diff --git a/WIFI_sniffer/cret_project/in production/_secrets_energy.lua_ b/WIFI_sniffer/cret_project/in production/_secrets_energy.lua_
new file mode 100644
index 0000000..06893c0
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/_secrets_energy.lua_
@@ -0,0 +1,19 @@
+-- Petit script pour configurer les choses secrètes que l'on n'aimerait
+-- pas être exportées sur Internet (github)
+-- donc on ne met PAS des secrets dans le code !
+-- faut le mettre ailleurs que dans le dépôt !
+-- il faut le renommer en 'secrets_energy.lua' et sera exécuté
+-- par 'boot.lua' au moment du boot
+
+function secrets()
+ print("\n secrets_energy.lua zf190916.1458 \n")
+
+ cli_ssid="xxx"
+ cli_pwd="xxx"
+
+ influxdb_url="http://xxx.yyy.zzz:8086/write?db=xxx&u=admin&p=xxx"
+ print("influxdb_url: "..influxdb_url)
+
+end
+secrets()
+secrets=nil
diff --git a/WIFI_sniffer/cret_project/in production/_zremote_cmd.txt b/WIFI_sniffer/cret_project/in production/_zremote_cmd.txt
new file mode 100644
index 0000000..987f171
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/_zremote_cmd.txt
@@ -0,0 +1,129 @@
+# Quelques commandes remote (luatool) à envoyer avec le plugin Atom-IDE-terminal de l'éditeur Atom
+# zf191030.0851
+
+# si luatool ne marche pas sur le MAC, il faut lire ceci:
+# https://docs.google.com/document/d/1q64uK3IMOgEDdKaIAttbYuFt4GuLQ06k3FLeyfCsWLg/edit#heading=h.bmefcu67uwj0
+
+# raccourcis clavier
+# CTRL+ALT+ENTER envoie au terminal la ligne de l'éditeur
+# SHIT+CTRL+` ouvre le terminal (attention, ne pas oublier de copier le *path* dans le *tree* et le changer)
+# ALT+CMD+F bascule entre le terminal et l'éditeur
+
+# définitions à faire AVANT !
+cd /Users/zuzu/Desktop/NodeMCU/NodeMCU_Lua/WIFI_sniffer/cret_project
+export luatool_tty="/dev/cu.wchusbserial1410"
+export zIP="192.168.0.137"
+export zport="23"
+
+cd '/Users/zuzu/Google Drive/FamilleZ Share/FamilleZ/Papa/LUA/NodeMCU ESP8266/NodeMCU_Lua/WIFI_sniffer/cret_project'
+export zIP="localhost"
+export zport="2323"
+ATTENTION: voir les tunnels tout à la fin !
+
+
+# ouvrir et fermer (ALT+N+.) une session telnet sur le NodeMCU avec l'adresse zIP)
+telnet -rN $zIP $zport
+~.
+--node.restart()
+collectgarbage()
+=node.heap()
+for k,v in pairs(_G) do print(k,v) end
+
+
+# commandes lua pour ce projet
+verbose=true
+verbose=false
+zsort_rssi() zshow()
+
+
+#commandes luatool pour ce projet
+./luatool.py --ip $zIP:$zport -l
+
+./luatool.py --ip $zIP:$zport -f b.lua
+./luatool.py --ip $zIP:$zport -f web_srv2.lua
+./luatool.py --ip $zIP:$zport -f z_index.html
+./luatool.py --ip $zIP:$zport -f z_page1.html
+./luatool.py --ip $zIP:$zport -f z_page2.html
+./luatool.py --ip $zIP:$zport -f z_page3.html
+./luatool.py --ip $zIP:$zport -f z_page4.html
+./luatool.py --ip $zIP:$zport -f wifi_ap_start.lua
+./luatool.py --ip $zIP:$zport -f boot2.lua
+
+dofile("wifi_ap_start.lua")
+dofile("wifi_info.lua")
+--node.restart()
+for k,v in pairs(_G) do print(k,v) end
+t=12
+t=nil
+print(pcall(function () print("2"..t) end))
+
+
+
+# ici c'est maintenant ;-)
+~.
+./luatool.py --ip $zIP:$zport -f b.lua
+--./luatool.py --ip $zIP:$zport --zrestart
+telnet -rN $zIP $zport
+zsort_rssi() zshow()
+print(ztrig_rssi)
+ztrig_rssi=-1000
+ztrig_rssi=-90
+
+
+
+# test de la gestion des erreurs
+~.
+./luatool.py --ip $zIP:$zport -f c.lua
+#./luatool.py --ip $zIP:$zport --zrestart
+telnet -rN $zIP $zport
+status, err = pcall(function () dofile("c.lua") end) if status==false then print("Error: ",err) end
+zerr=nil
+zerr=1
+ztmr_tst_err:unregister()
+
+
+
+~.
+./luatool.py --ip $zIP:$zport -f head.lua
+telnet -rN $zIP $zport
+dofile("head.lua")
+zhead("telnet_srv2.lua")
+
+
+./luatool.py --ip $zIP --zrestart
+
+
+# faire un cat d'un fichier sur le NodeMCU
+dofile("cat.lua")
+cat("boot2.lua")
+
+
+# commandes luatool
+./luatool.py -h
+./luatool.py --ip $zIP:$zport -i
+./luatool.py --ip $zIP:$zport -l
+./luatool.py --ip $zIP:$zport -f toto.lua -d
+./luatool.py --ip $zIP:$zport --delete toto.lua
+
+
+# création des tunnels ssh
+ATTENTION: dans un premier terminal !
+Pour le MsL
+ssh -t -L 2323:localhost:2323 ubuntu@www.zuzutest.ml ssh -N -L 2323:192.168.1.111:23 ubuntu@localhost -p 20221
+
+Pour le Crêt
+ssh -N -L 2323:192.168.0.137:23 admin@z.zufferey.com -p 1822
+ssh -N -L 2323:192.168.0.122:23 admin@z.zufferey.com -p 1822
+
+ATTENTION: dans un deuxième terminal !
+export zIP="localhost"
+export zport="2323"
+telnet -rN $zIP $zport
+~.
+--node.restart()
+=node.heap()
+
+
+
+
+.
diff --git a/WIFI_sniffer/cret_project/oldies/b .lua.191030.0859 b/WIFI_sniffer/cret_project/in production/b.lua
similarity index 81%
rename from WIFI_sniffer/cret_project/oldies/b .lua.191030.0859
rename to WIFI_sniffer/cret_project/in production/b.lua
index 413c81b..65159ee 100644
--- a/WIFI_sniffer/cret_project/oldies/b .lua.191030.0859
+++ b/WIFI_sniffer/cret_project/in production/b.lua
@@ -1,7 +1,7 @@
-- Scripts pour tester le sniffer de smartphone qui essaient de se connecter sur des AP WIFI
-- source: https://nodemcu.readthedocs.io/en/dev/modules/wifi/#wifieventmonregister
-print("\n b.lua zf191030.0856 \n")
+print("\n b.lua zf191030.1407 \n")
ztrig_rssi=-90
@@ -9,6 +9,7 @@ ztrig_rssi=-90
-- apzuzu6 38:2c:4a:4e:d3:d8
+--zadrs, zname, zrssi, ztime0, ztime1
zmac_adrs={}
zmac_adrs[#zmac_adrs+1]="b8:d7:af:a6:bd:86,S7 zf,0,0,0"
zmac_adrs[#zmac_adrs+1]="cc:c0:79:7d:f5:d5,S7 Melanie,0,0,0"
@@ -17,18 +18,7 @@ zmac_adrs[#zmac_adrs+1]="d8:30:62:5a:d6:3a,IMAC Maman,0,0,0"
zmac_adrs[#zmac_adrs+1]="88:e9:fe:6b:ec:1e,MAC Luc,0,0,0"
zmac_adrs[#zmac_adrs+1]="0c:2c:54:b3:c5:1a,HU Nicolas,0,0,0"
zmac_adrs[#zmac_adrs+1]="c0:a6:00:bf:4e:43,IPHONE Maeva,0,0,0"
---[[
-zmac_adrs[#zmac_adrs+1]="80:58:f8:44:09:ce, ,-30,0,0"
-zmac_adrs[#zmac_adrs+1]="02:07:49:35:67:10, ,-58,0,0"
-zmac_adrs[#zmac_adrs+1]="c0:ee:fb:4a:ff:28, ,-55,0,0"
-zmac_adrs[#zmac_adrs+1]="da:a1:19:ed:93:84, ,-59,0,0"
-zmac_adrs[#zmac_adrs+1]="02:c5:a0:96:05:bd, ,-32,0,0"
-zmac_adrs[#zmac_adrs+1]="da:a1:19:a6:a0:93, ,-56,0,0"
-zmac_adrs[#zmac_adrs+1]="46:79:22:70:f5:b8, ,-59,0,0"
-zmac_adrs[#zmac_adrs+1]="86:27:18:64:f8:c0, ,-57,0,0"
-zmac_adrs[#zmac_adrs+1]="da:a1:19:89:2c:80, ,-59,0,0"
-zmac_adrs[#zmac_adrs+1]="da:a1:19:01:85:98, ,-47,0,0"
-]]
+
function zshow()
for i=1, #zmac_adrs do
@@ -70,43 +60,16 @@ function zsort_rssi()
end)
end
-
-
---[[
-zshow()
-zsort_rssi()
-
-zsplit(zmac_adrs[1])
-print(zmerge())
-
-print(find_adrs("88:e9:fe:6b:ec:1e"))
-print(find_adrs("da:a1:19:b6:6b:50"))
-
-print(find_adrs("88:e9:fe:6b:ec:1e"))
-zsplit(zmac_adrs[5])
-zrssi=-45 ztime0="10:19" ztime1="10:19"
-zmac_adrs[5]=zmerge()
-print(find_adrs("88:e9:fe:6b:ec:1e"))
-
-zmac_adrs=nil
-zmac_adrs={}
-
-]]
-
function zround(num, dec)
local mult = 10^(dec or 0)
return math.floor(num * mult + 0.5) / mult
end
-
-
---zadrs, zname, zrssi, ztime0, ztime1
-
function zsniff(T)
print("toto1950: "..T.RSSI)
if T.RSSI > ztrig_rssi then
print("\n\tMAC: ".. T.MAC.."\n\tRSSI: "..T.RSSI)
- ztime()
+-- n'existe plus zf191030.1406 ztime()
z_adrs_mac_index=find_adrs(T.MAC)
print("toto: -"..z_adrs_mac_index.."-")
if z_adrs_mac_index == 0 then
diff --git a/WIFI_sniffer/cret_project/in production/boot.lua b/WIFI_sniffer/cret_project/in production/boot.lua
new file mode 100644
index 0000000..0bccab9
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/boot.lua
@@ -0,0 +1,10 @@
+-- Scripts à charger après le boot pour démarrer le core system
+
+print("\n boot.lua zf191029.2257 \n")
+
+
+--f= "led_rgb.lua" if file.exists(f) then dofile(f) end
+f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end
+--f= "web_ide2.lua" if file.exists(f) then dofile(f) end
+--ff= "web_srv2.lua" if file.exists(f) then dofile(f) end
+
diff --git a/WIFI_sniffer/cret_project/in production/boot2.lua b/WIFI_sniffer/cret_project/in production/boot2.lua
new file mode 100644
index 0000000..9441109
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/boot2.lua
@@ -0,0 +1,38 @@
+-- Scripts à charger après le boot pour démarrer son projet
+
+print("\n boot2.lua zf191029.2259 \n")
+
+second_chance=nil
+
+f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end
+xfois =5 blink_LED ()
+
+function heartbeat()
+ boottimer1=tmr.create()
+ boottimer1:alarm(1*1000, tmr.ALARM_AUTO, function()
+ xfois =2
+ blink_LED ()
+ end)
+end
+
+f= "secrets_project.lua" if file.exists(f) then dofile(f) end
+f= "set_time.lua" if file.exists(f) then dofile(f) end
+
+collectgarbage()
+f= "b.lua" if file.exists(f) then dofile(f) end
+
+f=nil
+
+tmr.create():alarm(3*1000, tmr.ALARM_SINGLE, function()
+ flash_led_xfois=nil blink_LED=nil ztmr_Flash_LED=nil
+ zTm_Off_LED=nil zTm_On_LED=nil nbfois=nil xfois=nil zLED=nil
+end)
+
+heartbeat=nil
+--heartbeat()
+
+
+--[[
+for k,v in pairs(_G) do print(k,v) end
+]]
+
diff --git a/WIFI_sniffer/cret_project/in production/c.lua b/WIFI_sniffer/cret_project/in production/c.lua
new file mode 100644
index 0000000..eb2f832
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/c.lua
@@ -0,0 +1,37 @@
+-- Scripts pour tester l'affichage des erreurs quand on se trouve ne remote telnet
+-- source: https://www.lua.org/pil/8.4.html
+-- source: https://riptutorial.com/lua/example/16000/using-pcall
+
+--[[
+Usage:
+après l'avoir lancé on peut faire varier le contenu de la variable zerr pour cérer des erreurs répétitives
+
+Commandes à envoyer via un terminal:
+~.
+./luatool.py --ip $zIP:$zport -f c.lua
+#./luatool.py --ip $zIP:$zport --zrestart
+telnet -rN $zIP $zport
+status, err = pcall(function () dofile("c.lua") end) if status==false then print("Error: ",err) end
+zerr=nil
+zerr=1
+ztmr_tst_err:unregister()
+]]
+
+print("\n c.lua zf191030.1231 \n")
+
+zerr=1
+ztmr_tst_err = tmr.create()
+
+-- le code à tester DOIT être encapsulé dans une fonction
+function zfoo()
+ print("toto: "..zerr)
+end
+
+-- timer pour générer des erreurs répétitives
+ztmr_tst_err:alarm(3*1000, tmr.ALARM_AUTO, function()
+ -- test du code
+ local status, err = pcall(function () zfoo() end) if status==false then print("Error: ",err) end
+end)
+
+
+--
diff --git a/WIFI_sniffer/cret_project/in production/cat.lua b/WIFI_sniffer/cret_project/in production/cat.lua
new file mode 100644
index 0000000..856a52d
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/cat.lua
@@ -0,0 +1,18 @@
+-- fonction cat() pour afficher le contenu d'un fichier dans la flash
+print("\n cat.lua zf192026.0858 \n")
+
+function cat(zfile)
+ print("\n"..zfile.."\n-------------------------------")
+
+ zfilei = file.open(zfile, "r")
+ i=1
+ zline=file.readline()
+ repeat
+-- print(i..": "..string.sub(zline,1,string.len(zline)-1))
+ print(string.sub(zline,1,string.len(zline)-1))
+ i=i+1 zline=file.readline()
+ until zline== nil
+ file.close(zfilei)
+
+ print("-------------------------------")
+end
diff --git a/WIFI_sniffer/cret_project/in production/dir.lua b/WIFI_sniffer/cret_project/in production/dir.lua
new file mode 100644
index 0000000..8bf9414
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/dir.lua
@@ -0,0 +1,15 @@
+-- fonction dir() pour afficher les fichiers dans la flash
+print("\n dir.lua zf180826.1019 \n")
+
+function dir()
+ print("\n-------------------------------")
+ l=file.list() i=0
+ for k,v in pairs(l) do
+ i=i+v
+ print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes")
+ end
+ print("-------------------------------")
+ print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n')
+end
+
+dir()
diff --git a/WIFI_sniffer/cret_project/in production/flash_led_xfois.lua b/WIFI_sniffer/cret_project/in production/flash_led_xfois.lua
new file mode 100644
index 0000000..964530e
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/flash_led_xfois.lua
@@ -0,0 +1,40 @@
+-- programme pour faire clignoter x fois une LED avec un rapport on/off
+
+function flash_led_xfois()
+ print("\n flash_led_xfois.lua zf191029.2111 \n")
+
+ --zLED=0 --NodeMCU
+ zLED=4 --EPS-M3
+ zTm_On_LED = 50 --> en ms
+ zTm_Off_LED = 100 --> en ms
+ nbfois = 0
+ gpio.write(zLED, gpio.HIGH)
+ gpio.mode(zLED, gpio.OUTPUT)
+ ztmr_Flash_LED = tmr.create()
+
+ function blink_LED ()
+ if nbfois >= xfois then
+ -- print(nbfois)
+ nbfois = 0
+ else
+ if gpio.read(zLED)==gpio.HIGH then
+ gpio.write(zLED, gpio.LOW)
+-- tmr.alarm(ztmr_Flash_LED, zTm_Off_LED, tmr.ALARM_SINGLE, blink_LED)
+ ztmr_Flash_LED:alarm(zTm_Off_LED, tmr.ALARM_SINGLE, blink_LED)
+ else
+ gpio.write(zLED, gpio.HIGH)
+ nbfois = nbfois+1
+-- tmr.alarm(ztmr_Flash_LED, zTm_On_LED, tmr.ALARM_SINGLE, blink_LED)
+ ztmr_Flash_LED:alarm(zTm_On_LED, tmr.ALARM_SINGLE, blink_LED)
+ end
+ end
+ end
+
+end
+
+flash_led_xfois()
+
+--[[
+xfois =2
+blink_LED ()
+]]
\ No newline at end of file
diff --git a/WIFI_sniffer/cret_project/in production/head.lua b/WIFI_sniffer/cret_project/in production/head.lua
new file mode 100644
index 0000000..0478b8c
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/head.lua
@@ -0,0 +1,19 @@
+-- fonction cat() pour afficher les 10 premières lignes d'un fichier dans la flash
+print("\n head.lua zf192028.1516 \n")
+
+function zhead(zfile)
+ print("\n"..zfile.."\n-------------------------------")
+
+ zfilei = file.open(zfile, "r")
+ i=1
+ zline=file.readline()
+ repeat
+-- print(i..": "..string.sub(zline,1,string.len(zline)-1))
+ print(string.sub(zline,1,string.len(zline)-1))
+ i=i+1 zline=file.readline()
+ if i>10 then break end
+ until zline==nil
+ file.close(zfilei)
+
+ print("-------------------------------")
+end
diff --git a/WIFI_sniffer/cret_project/in production/initz.lua b/WIFI_sniffer/cret_project/in production/initz.lua
new file mode 100644
index 0000000..c5aa649
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/initz.lua
@@ -0,0 +1,63 @@
+--Script de bootstrap, test au moment du boot qui a été la cause de boot.
+-- Si la cause est un power on ou une connexion depuis l'IDE, alors
+-- le script repair.lua pendant xx secondes avant de continuer
+--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason
+
+print("\n init.lua zf190917.0001 \n")
+
+zswitch=3 --switch flash
+gpio.mode(zswitch, gpio.INT, gpio.PULLUP)
+
+function hvbouton()
+ gpio.trig(zswitch, "none")
+ initalarme:unregister() initalarme2:unregister()
+ f= "boot.lua" if file.exists(f) then dofile(f) end
+ f= "boot2.lua" if file.exists(f) then dofile(f) end
+end
+
+gpio.trig(zswitch, "both", hvbouton)
+
+function second_chance()
+ print("seconde chance...")
+ f= "repair.lua" if file.exists(f) then dofile(f) end
+ initalarme=tmr.create()
+ initalarme:alarm(4*1000, tmr.ALARM_SINGLE, function()
+ f= "boot.lua" if file.exists(f) then dofile(f) end
+ end)
+ initalarme2=tmr.create()
+ initalarme2:alarm(30*1000, tmr.ALARM_SINGLE, function()
+ gpio.trig(zswitch)
+ hvbouton=nil
+ zswitch=nil
+ reset_reason=nil
+ f= "boot2.lua" if file.exists(f) then dofile(f) end
+ end)
+end
+
+_, reset_reason = node.bootreason()
+print("reset_reason:",reset_reason)
+if reset_reason == 0 then
+ print("power on")
+ second_chance()
+elseif reset_reason == 4 then
+ print("node.restart")
+ gpio.trig(zswitch)
+ hvbouton=nil
+ second_chance=nil
+ zswitch=nil
+ reset_reason=nil
+ f= "boot.lua" if file.exists(f) then dofile(f) end
+ f= "boot2.lua" if file.exists(f) then dofile(f) end
+elseif reset_reason == 5 then
+ print("dsleep wake up")
+ f= "boot.lua" if file.exists(f) then dofile(f) end
+ f= "boot2.lua" if file.exists(f) then dofile(f) end
+elseif reset_reason == 6 then
+ print("external reset")
+ second_chance()
+else
+ print("autre raison")
+ second_chance()
+end
+
+
diff --git a/WIFI_sniffer/cret_project/in production/luatool.py b/WIFI_sniffer/cret_project/in production/luatool.py
new file mode 100755
index 0000000..9781932
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/luatool.py
@@ -0,0 +1,398 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+version = "0.6.5 zf191021.1558"
+
+print("luatool.py ver " + version)
+
+#Améliorations
+# Pour voir les améliorations il faut 'chercher' les zzz
+
+
+#
+# ESP8266 luatool
+# Author e-mail: 4ref0nt@gmail.com
+# Site: http://esp8266.ru
+# Contributions from: https://github.com/sej7278
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+# Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import sys
+import serial
+from time import sleep
+import socket
+import argparse
+from os.path import basename
+
+
+tqdm_installed = True
+try:
+ from tqdm import tqdm
+except ImportError, e:
+ if e.message == 'No module named tqdm':
+ tqdm_installed = False
+ else:
+ raise
+
+
+
+class TransportError(Exception):
+ """Custom exception to represent errors with a transport
+ """
+ def __init__(self, message):
+ self.message = message
+
+ def __str__(self):
+ return self.message
+
+class AbstractTransport:
+ def __init__(self):
+ raise NotImplementedError('abstract transports cannot be instantiated.')
+
+ def close(self):
+ raise NotImplementedError('Function not implemented')
+
+ def read(self, length):
+ raise NotImplementedError('Function not implemented')
+
+ def writeln(self, data, check=1):
+ raise NotImplementedError('Function not implemented')
+
+ def writer(self, data):
+ self.writeln("file.writeline([==[" + data + "]==])\r")
+
+ def performcheck(self, expected):
+ line = ''
+ char = ''
+ i = -1
+ while char != chr(62): # '>'
+ char = self.read(1)
+ if char == '':
+ raise Exception('No proper answer from MCU')
+ if char == chr(13) or char == chr(10): # LF or CR
+ if line != '':
+ line = line.strip()
+ # zzz191021 Affiche ce que l'on a reçu du NodeMCU
+ if args.verbose:
+ print("\n\nzread0957: {" + line + "\n}\n")
+
+ if line+'\r' == expected and not args.bar:
+ sys.stdout.write(" -> ok")
+ elif line+'\r' != expected:
+ if line[:4] == "lua:":
+ sys.stdout.write("\r\n\r\nLua ERROR: %s" % line)
+ raise Exception('ERROR from Lua interpreter\r\n\r\n')
+ else:
+ expected = expected.split("\r")[0]
+ sys.stdout.write("\r\n\r\nERROR")
+ sys.stdout.write("\r\n send string : '%s'" % expected)
+ sys.stdout.write("\r\n expected echo : '%s'" % expected)
+ sys.stdout.write("\r\n but got answer : '%s'" % line)
+ sys.stdout.write("\r\n\r\n")
+ raise Exception('Error sending data to MCU\r\n\r\n')
+ line = ''
+ else:
+ line += char
+ if char == chr(62) and expected[i] == char:
+ char = ''
+ i += 1
+
+
+class SerialTransport(AbstractTransport):
+ def __init__(self, port, baud, delay):
+ self.port = port
+ self.baud = baud
+ self.serial = None
+ self.delay = delay
+
+ try:
+ self.serial = serial.Serial(port, baud)
+ except serial.SerialException as e:
+ raise TransportError(e.strerror)
+
+ self.serial.timeout = 3
+ self.serial.interCharTimeout = 3
+
+ # zzz191021 juste après l'ouverture du port série, on attend le caractère '>'
+ line = ''
+ char = ''
+ i = -1
+ while char != chr(62): # '>'
+ char = self.read(1)
+ if char == '':
+ raise Exception('No proper answer from MCU')
+ line += char
+ i += 1
+ if args.verbose:
+ print("line: ." + line + ".")
+
+
+ def writeln(self, data, check=1):
+ # zzz191020 on fait une petite pause avant l'envoi de chaque ligne
+ sleep(self.delay)
+ if self.serial.inWaiting() > 0:
+ self.serial.flushInput()
+ if len(data) > 0 and not args.bar:
+ sys.stdout.write("\r\n->")
+ sys.stdout.write(data.split("\r")[0])
+ self.serial.write(data)
+ # zzz191021 Affiche ce que l'on a envoyé au NodeMCU
+ if args.verbose:
+ print("\n\nzwrite0952: {" + data + "\n}\n")
+ if check > 0:
+ self.performcheck(data)
+ elif not args.bar:
+ sys.stdout.write(" -> send without check")
+
+ def read(self, length):
+ return self.serial.read(length)
+
+ def close(self):
+ self.serial.flush()
+ self.serial.close()
+
+
+class TcpSocketTransport(AbstractTransport):
+ def __init__(self, host, port):
+ self.host = host
+ self.port = port
+ self.socket = None
+
+ try:
+ self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ except socket.error as e:
+ raise TransportError(e.strerror)
+
+ try:
+ self.socket.connect((host, port))
+ except socket.error as e:
+ raise TransportError(e.strerror)
+ # read intro from telnet server (see telnet_srv.lua)
+ self.socket.recv(50)
+
+ def writeln(self, data, check=1):
+ if len(data) > 0 and not args.bar:
+ sys.stdout.write("\r\n->")
+ sys.stdout.write(data.split("\r")[0])
+ self.socket.sendall(data)
+ if check > 0:
+ self.performcheck(data)
+ elif not args.bar:
+ sys.stdout.write(" -> send without check")
+
+ def read(self, length):
+ return self.socket.recv(length)
+
+ def close(self):
+ self.socket.close()
+
+
+def decidetransport(cliargs):
+ if cliargs.ip:
+ data = cliargs.ip.split(':')
+ host = data[0]
+ if len(data) == 2:
+ port = int(data[1])
+ else:
+ port = 23
+ return TcpSocketTransport(host, port)
+ else:
+ return SerialTransport(cliargs.port, cliargs.baud, cliargs.delay)
+
+
+if __name__ == '__main__':
+ # parse arguments or use defaults
+ parser = argparse.ArgumentParser(description='ESP8266 Lua script uploader.')
+ 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 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)
+
+ if args.bar and not tqdm_installed:
+ sys.stdout.write("You must install the tqdm library to use the bar feature\n")
+ sys.stdout.write("To install, at the prompt type: \"pip install tqdm\"\n")
+ sys.exit(0)
+
+
+ if args.list:
+ # 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)
+ if char == '' or char == chr(62): # '' or '>'
+ break
+ sys.stdout.write(char)
+ sys.exit(0)
+
+ if args.id:
+ transport.writeln("=node.chipid()\r", 0)
+ id=""
+ while True:
+ char = transport.read(1)
+ if char == '' or char == chr(62):
+ break
+ if char.isdigit():
+ id += char
+ 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 = []
+ fn = ""
+ while True:
+ char = transport.read(1)
+ if char == '' or char == chr(62):
+ break
+ if char not in ['\r', '\n']:
+ fn += char
+ else:
+ if fn:
+ file_list.append(fn.strip())
+ fn = ''
+ for fn in file_list[1:]: # first line is the list command sent to device
+ if args.verbose:
+ sys.stderr.write("Delete file {} from device.\r\n".format(fn))
+ transport.writeln("file.remove(\"" + fn + "\")\r")
+ sys.exit(0)
+
+ if args.delete:
+ transport.writeln("file.remove(\"" + args.delete + "\")\r")
+ sys.exit(0)
+
+ 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:
+ try:
+ f = open(args.src, "rt")
+ except:
+ import os
+ base_dir = os.path.dirname(os.path.realpath(__file__))
+ f = open(os.path.join(base_dir, args.src), "rt")
+ os.chdir(base_dir)
+ except:
+ sys.stderr.write("Could not open input file \"%s\"\n" % args.src)
+ sys.exit(1)
+
+ # Verify the selected file will not exceed the size of the serial buffer.
+ # The size of the buffer is 256. This script does not accept files with
+ # lines longer than 230 characters to have some room for command overhead.
+ num_lines = 0
+ for ln in f:
+ if len(ln) > 230:
+ sys.stderr.write("File \"%s\" contains a line with more than 240 "
+ "characters. This exceeds the size of the serial buffer.\n"
+ % args.src)
+ f.close()
+ sys.exit(1)
+ num_lines += 1
+
+ # Go back to the beginning of the file after verifying it has the correct
+ # line length
+ f.seek(0)
+
+ # set serial timeout
+ if args.verbose:
+ sys.stderr.write("Upload starting\r\n")
+
+ # remove existing file on device
+ if args.append==False:
+ if args.verbose:
+ sys.stderr.write("Stage 1. Deleting old file from flash memory")
+ transport.writeln("file.open(\"" + args.dest + "\", \"w\")\r")
+ transport.writeln("file.close()\r")
+ transport.writeln("file.remove(\"" + args.dest + "\")\r")
+ else:
+ if args.verbose:
+ sys.stderr.write("[SKIPPED] Stage 1. Deleting old file from flash memory [SKIPPED]")
+
+
+ # read source file line by line and write to device
+ if args.verbose:
+ sys.stderr.write("\r\nStage 2. Creating file in flash memory and write first line")
+ if args.append:
+ transport.writeln("file.open(\"" + args.dest + "\", \"a+\")\r")
+ else:
+ transport.writeln("file.open(\"" + args.dest + "\", \"w+\")\r")
+ line = f.readline()
+ if args.verbose:
+ sys.stderr.write("\r\nStage 3. Start writing data to flash memory...")
+ if args.bar:
+ for i in tqdm(range(0, num_lines)):
+ transport.writer(line.strip())
+ line = f.readline()
+ else:
+ while line != '':
+ transport.writer(line.strip())
+ line = f.readline()
+
+ # close both files
+ f.close()
+ if args.verbose:
+ sys.stderr.write("\r\nStage 4. Flush data and closing file")
+ transport.writeln("file.flush()\r")
+ transport.writeln("file.close()\r")
+
+ # compile?
+ if args.compile:
+ if args.verbose:
+ sys.stderr.write("\r\nStage 5. Compiling")
+ transport.writeln("node.compile(\"" + args.dest + "\")\r")
+ transport.writeln("file.remove(\"" + args.dest + "\")\r")
+
+ # restart or dofile
+ if args.restart:
+ transport.writeln("node.restart()\r")
+
+ if args.dofile: # never exec if restart=1
+ transport.writeln("dofile(\"" + args.dest + "\")\r", 0)
+
+ if args.echo:
+ if args.verbose:
+ sys.stderr.write("\r\nEchoing MCU output, press Ctrl-C to exit")
+ while True:
+ sys.stdout.write(transport.read(1))
+
+ # close serial port
+ transport.close()
+
+ # flush screen
+ sys.stdout.flush()
+ sys.stderr.flush()
+ if not args.bar:
+ sys.stderr.write("\r\n--->>> All done <<<---\r\n")
diff --git a/WIFI_sniffer/cret_project/in production/set_time.lua b/WIFI_sniffer/cret_project/in production/set_time.lua
new file mode 100644
index 0000000..748cc95
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/set_time.lua
@@ -0,0 +1,29 @@
+-- Scripts pour régler l'horloge quand on est connecté en WIFI
+-- Permet aussi de 'compresser' le unix time afin de prendre moins de place dans les strings
+
+print("\n set_time.lua zf190217.1426 \n")
+
+--source: https://www.freeformatter.com/epoch-timestamp-to-date-converter.html
+
+ztime2019 = 1546300800 -- Unix time pour le 1.1.2019
+
+function set_time()
+ sntp.sync(nil, nil, nil, 1)
+end
+
+function ztime_compress(ztime_long)
+ return ztime_long - ztime2019
+end
+
+function ztime_uncompress(ztime_short)
+ return ztime_short + ztime2019
+end
+
+function ztime_format(ztime)
+ tm = rtctime.epoch2cal(ztime + 3600)
+ return(string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"]))
+end
+
+set_time()
+print(ztime_format(rtctime.get()))
+
diff --git a/WIFI_sniffer/cret_project/in production/telnet_srv2.lua b/WIFI_sniffer/cret_project/in production/telnet_srv2.lua
new file mode 100644
index 0000000..19920f2
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/telnet_srv2.lua
@@ -0,0 +1,93 @@
+-- Serveur telnet pour connexion en remote WIFI, NOUVELLE VERSION !
+-- source: https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/telnet/telnet.lua
+
+print("\n telnet_srv2.lua zf191020.1932 \n")
+
+local node, table, tmr, wifi, uwrite, tostring =
+ node, table, tmr, wifi, uart.write, tostring
+
+local function telnet_listener(socket)
+ local insert, remove, concat, heap, gc =
+ table.insert, table.remove, table.concat, node.heap, collectgarbage
+ local fifo1, fifo1l, fifo2, fifo2l = {}, 0, {}, 0
+ local s -- s is a copy of the TCP socket if and only if sending is in progress
+ local wdclr, cnt = tmr.wdclr, 0
+ local function debug(fmt, ...)
+ if (...) then fmt = fmt:format(...) end
+ uwrite(0, "\r\nDBG: ",fmt,"\r\n" )
+ cnt = cnt + 1
+ if cnt % 10 then wdclr() end
+ end
+
+ local function flushGarbage()
+ if heap() < 13440 then gc() end
+ end
+
+ local function sendLine()
+ if not s then return end
+
+ if fifo2l + fifo1l == 0 then -- both FIFOs empty, so clear down s
+ s = nil
+ return
+ end
+ flushGarbage()
+ if #fifo2 < 4 then -- Flush FIFO1 into FIFO2
+ insert(fifo2,concat(fifo1))
+ fifo2l, fifo1, fifo1l = fifo2l + fifo1l, {}, 0
+ end
+ local rec = remove(fifo2,1) .. (remove(fifo2,1) or '') ..
+ (remove(fifo2,1) or '') .. (remove(fifo2,1) or '')
+ fifo2l = fifo2l - #rec
+ flushGarbage()
+ s:send(rec)
+ end
+
+ local F1_SIZE = 256
+
+ local function queueLine(str)
+ while #str > 0 do -- this is because str might be longer than the packet size!
+ local k, l = F1_SIZE - fifo1l, #str
+ local chunk
+ if #fifo1 >= 32 or (k < l and k < 16) then
+ insert(fifo2, concat(fifo1))
+ fifo2l, fifo1, fifo1l, k = fifo2l + fifo1l, {}, 0, F1_SIZE
+ end
+ if l > k+16 then -- also tolerate a size overrun of 16 bytes to avoid a split
+ chunk, str = str:sub(1,k), str:sub(k+1)
+ else
+ chunk, str = str, ''
+ end
+ insert(fifo1, chunk)
+ fifo1l = fifo1l + #chunk
+ end
+ if not s and socket then
+ s = socket
+ sendLine()
+ else
+ flushGarbage()
+ end
+ end
+
+ local function receiveLine(s, line)
+ node.input(line)
+ end
+
+ local function disconnect(s)
+ fifo1, fifo1l, fifo2, fifo2l, s = {}, 0, {}, 0, nil
+ node.output(nil)
+ end
+
+ --zzz
+ local function zconnection(s)
+ print("Welcome to NodeMCU world.")
+ end
+
+ socket:on("connection", zconnection)
+ socket:on("receive", receiveLine)
+ socket:on("disconnection", disconnect)
+ socket:on("sent", sendLine)
+ node.output(queueLine, 0)
+end
+
+net.createServer(net.TCP, 180):listen(23, telnet_listener)
+print("Telnet server running...\nUsage: telnet -rN ip\n")
diff --git a/WIFI_sniffer/cret_project/in production/upload_s.sh b/WIFI_sniffer/cret_project/in production/upload_s.sh
new file mode 100755
index 0000000..fc07ca1
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/upload_s.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+# Petit script pour télécharger facilement tout le binz via le port série
+#zf191030.1335
+
+# 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 !
+
+luatool_tty="/dev/cu.wchusbserial1410"
+
+echo ""
+read -p "ATTENTION, cela va effacer tout le NodeMCU !"
+read -p "Etes-vous vraiment certain ?"
+
+chmod +x luatool.py
+
+./luatool.py --port $luatool_tty -w
+./luatool.py --port $luatool_tty -l
+read -p "Est-ce bien vide ?"
+
+./luatool.py --port $luatool_tty --bar --delay 0.06 -f telnet_srv2.lua
+./luatool.py --port $luatool_tty --bar --delay 0.06 -f b.lua
+./luatool.py --port $luatool_tty --bar --delay 0.03 -f web_srv2.lua
+./luatool.py --port $luatool_tty --bar --delay 0.03 -f head.lua
+./luatool.py --port $luatool_tty --bar --delay 0.03 -f flash_led_xfois.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_init.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_info.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_start.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_conf.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_ap_stop.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_ap_start.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f set_time.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f secrets_wifi.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f secrets_project.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f dir.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f cat.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f c.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot2.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot.lua
+
+./luatool.py --port $luatool_tty -l
+read -p "Pas eu d'erreur, on part à fond avec le init.lua ?"
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f initz.lua -t init.lua
+./luatool.py --port $luatool_tty -l
+echo -e "\nC'est tout bon ;-)"
diff --git a/WIFI_sniffer/cret_project/in production/upload_t.sh b/WIFI_sniffer/cret_project/in production/upload_t.sh
new file mode 100755
index 0000000..f379ded
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/upload_t.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Petit script pour télécharger facilement tout le binz
+#zf191028.1459
+
+# 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 !
+
+luatool_tty="/dev/cu.wchusbserial1410"
+
+echo ""
+read -p "ATTENTION, cela va effacer tout le NodeMCU !"
+read -p "Etes-vous vraiment certain ?"
+
+chmod +x luatool.py
+
+./luatool.py --port $luatool_tty -w
+./luatool.py --port $luatool_tty -l
+read -p "Est-ce bien vide ?"
+
+./luatool.py --port $luatool_tty --bar --delay 0.06 -f telnet_srv2.lua
+./luatool.py --port $luatool_tty --bar --delay 0.03 -f head.lua
+./luatool.py --port $luatool_tty --bar --delay 0.03 -f flash_led_xfois.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_info.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_start.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_conf.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_ap_stop.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f secrets_energy.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f dir.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f cat.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot2.lua
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot.lua
+
+./luatool.py --port $luatool_tty -l
+read -p "Pas eu d'erreur, on part à fond avec le init.lua ?"
+./luatool.py --port $luatool_tty --bar --delay 0.001 -f initz.lua -t init.lua
+echo -e "\nC'est tout bon ;-)"
diff --git a/WIFI_sniffer/cret_project/in production/web_srv2.lua b/WIFI_sniffer/cret_project/in production/web_srv2.lua
new file mode 100644
index 0000000..2389b01
--- /dev/null
+++ b/WIFI_sniffer/cret_project/in production/web_srv2.lua
@@ -0,0 +1,78 @@
+-- petit script de serveur WEB avec Active Server Page ZYX
+
+print("\n web_srv2.lua zf190728.1021 \n")
+
+ztemp=12
+
+-- envoie sur le port ouvert mais depuis l'environnement global !
+function zout(zstring)
+ zzclient:send(zstring) -- envoie le résultat du code lua inline
+end
+
+-- envoie un fichier HTML sur le port. ATTENTION: longueur de la ligne maximale de 1'024 bytes !
+function send_file(zclient, zfilename)
+ print("start send html...")
+ zclient:send("HTTP/1.1 200 OK\n")
+ zclient:send("Content-Type: text/html\n\n")
+ zzclient = zclient -- export le port sur l'environnement global !
+ if zfilename == "" then zfilename = "z_index.html" end
+ file_web = file.open(zfilename, "r")
+ if file_web then
+ repeat
+ local line = file_web:read('\n')
+ if line then
+ if string.find(line, "<%%") then
+-- print("start lua...")
+ flag_lua_code = true -- bascule sur le code lua inline
+ lua_code = ""
+ elseif string.find(line, "%%>") then
+-- print("stop lua...")
+ flag_lua_code = false -- revient sur le code HTML
+-- print("Et voici le code lua inline:\n"..lua_code)
+ loadstring(lua_code)() --on exécute ici le code lua inline !
+ elseif flag_lua_code then
+-- print(line)
+ lua_code = lua_code..line -- récupère le code lua inline
+ else
+ zclient:send(line) -- envoie le code HTML
+ end
+ end
+ until not line
+ file_web:close() file_web = nil
+ else
+ zclient:send("
| MAC | Name | RSSI | Time | +
|---|---|---|---|
| " .. k .. " | \n") + zout("\t" .. tostring(zmac_adrs[k]["zname"]) .. " | \n") + zout("\t" .. tostring(zmac_adrs[k]["zrssi"]) .. " | \n") + zout("\t" .. tostring(zmac_adrs[k]["ztime"]) .. " | \n") + zout("