Ca marche pas encore complètement, la difficulté c'est que l'on reçoit le flux json par paquets de 1'460 bytes et que l'on peut avoir une key à cheval sur deux paquets

This commit is contained in:
Christian Zufferey
2019-03-04 23:06:14 +01:00
parent 26067f7214
commit 8b29eb98c2
3 changed files with 27 additions and 20 deletions

View File

@@ -28,10 +28,10 @@ end)
zcmpt=1
s:on("receive", function(sck, c)
print("zcmpt: ",zcmpt,string.len(c),string.sub(c,1,100))
print(node.heap())
print("len3: "..string.len(zjson))
print("zjson3: ",string.sub(zjson,1,100))
print("...zcmpt: ",zcmpt,string.len(c),string.sub(c,1,100))
-- print(node.heap())
-- print("len3: "..string.len(zjson))
-- print("zjson3: ",string.sub(zjson,1,100))
ztoto(c)
zcmpt=zcmpt+1
end)

View File

@@ -13,34 +13,35 @@ end
function zget_json_key()
print("coucou2",zjson_stat)
if zjson_stat==1 then
p1=0
p1=string.find(zjson, [["hourly_data":{]])
print("JSON header: "..p1)
if p1>0 then
if p1~=nil then
print("JSON header: ",p1)
zjson=string.sub(zjson,p1)
print(string.sub(zjson,1,100))
print("\n\nc'est parti...\n\n")
print("\n\ngo go go...\n\n")
zjson_stat=2
else
zjson=string.sub(zjson,string.len(zjson)-20)
end
end
if zjson_stat==2 then
print("len1: "..string.len(zjson))
zjson_key='"'..zh..'H00":{'
print("zjson_key: "..zjson_key)
p1=0 p1=string.find(zjson, zjson_key)
p1=string.find(zjson, zjson_key)
print("p1: ",p1)
if p1~=nil then
zjson=string.sub(zjson,p1)
print("zjson: ",string.sub(zjson,1,100))
p1,p2=string.find(zjson, '"CONDITION_KEY":"')
print(p1,p2)
p3=string.find(zjson, '","',p2)
print(p3)
ztutu=string.sub(zjson,p2,p3)
print(ztutu)
print("len2: "..string.len(zjson))
if p1~=nil then
p3=string.find(zjson, '","',p2)
print(p3)
if p3~=nil then
ztutu=string.sub(zjson,p2,p3)
print(ztutu)
print("len2: "..string.len(zjson))
end
end
end
end
end
@@ -59,10 +60,16 @@ function ztoto(c1)
else
zjson=zjson..c1
end
print("zh: ",zh,"len(zjson)",string.len(zjson))
print("zh: ",zh,"len(zjson): ",string.len(zjson))
while zh<=zhmax and string.len(zjson)>500 do
zget_json_key()
zh=zh+1
if p1~=nil then
zh=zh+1
else
print("ouille ouille ouille, pas trouvé...")
zjson=string.sub(zjson,string.len(zjson)-20)
break
end
end
if zh>zhmax then
zjson=""

View File

@@ -1,6 +1,6 @@
-- Démarre le WIFI en mode AP
print("\n wifi_ap_start.lua zf181119.2359 \n")
print("\n wifi_ap_start.lua zf190304.2233 \n")
local zmodewifi=wifi.getmode()
if zmodewifi == wifi.NULLMODE then
@@ -11,4 +11,4 @@ elseif zmodewifi == wifi.STATION then
wifi.setmode(wifi.STATIONAP)
end
wifi.ap.config({ ssid = "NodeMCU "..wifi.ap.getmac(), pwd = "12345678" })
f= "wifi_info.lua" if file.exists(f) then dofile(f) end
--f= "wifi_info.lua" if file.exists(f) then dofile(f) end