Juste fait une petite démo pour corriger un capteur non linéaire au moyen d'une table de conversion, lue au vol dans un fichier .csv sur la flash afin de gagner beaucoup de RAM

This commit is contained in:
Christian Zufferey
2019-04-21 22:33:26 +02:00
parent e52c4cedf0
commit 4376f4b76d
19 changed files with 722 additions and 0 deletions

44
No_linear/a_no_linear.lua Normal file
View File

@@ -0,0 +1,44 @@
-- Script pour corriger une mesure d'un capteur non linéaire
-- ici on simule une lecture d'un device branché sur
-- l'entrée du convertisseur analogique A0
print("\n a_no_linear.lua zf19042227 \n")
zcourbe_correction="t1.csv"
function get_correction(zx)
if file.open(zcourbe_correction, "r") then
local line = string.gsub(file.read('\n'),"\n","")
line = string.gsub(file.read('\n'),"\n","")
zx2, zy2 = zsplit(line)
repeat
zx1 = zx2 zy1 = zy2
line = string.gsub(file.read('\n'),"\n","")
zx2, zy2 = zsplit(line)
until zx < zx2
print(zx1,zx2)
print(zy1,zy2)
file.close()
end
end
function zsplit(zline)
local zx, zy = zline:match("([^,]+),([^,]+)")
print("-"..zx.."-"..zy.."-")
return tonumber(zx), tonumber(zy)
end
get_correction(100)
--[[
f= "a_no_linear.lua" if file.exists(f) then dofile(f) end zget_meteo()
get_correction(100)
-- On affiche combien on a de RAM
print(node.heap())
]]