maxime bouillot / Mbed 2 deprecated testLucadeTHmaxBOUI

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
ascheriit
Date:
Mon Apr 22 13:48:44 2019 +0000
Revision:
15:3874758e8f7d
Child:
16:b1bf03ee2878
+script;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ascheriit 15:3874758e8f7d 1 /*
ascheriit 15:3874758e8f7d 2 #!/usr/local/bin/lua
ascheriit 15:3874758e8f7d 3
ascheriit 15:3874758e8f7d 4 function convertFichTable(fichier) --tranforme un fichier en table lua
ascheriit 15:3874758e8f7d 5 local tab={}
ascheriit 15:3874758e8f7d 6 local f=io.open(fichier,"r")
ascheriit 15:3874758e8f7d 7 local num=1
ascheriit 15:3874758e8f7d 8 local flag=true
ascheriit 15:3874758e8f7d 9 while f and flag do
ascheriit 15:3874758e8f7d 10 local lign=f:read()
ascheriit 15:3874758e8f7d 11 if lign==nil then
ascheriit 15:3874758e8f7d 12 flag=false
ascheriit 15:3874758e8f7d 13 else
ascheriit 15:3874758e8f7d 14 tab[num]=lign
ascheriit 15:3874758e8f7d 15 end
ascheriit 15:3874758e8f7d 16 num=num+1
ascheriit 15:3874758e8f7d 17 end
ascheriit 15:3874758e8f7d 18 if f then f:close() end
ascheriit 15:3874758e8f7d 19 return tab
ascheriit 15:3874758e8f7d 20 end
ascheriit 15:3874758e8f7d 21
ascheriit 15:3874758e8f7d 22 function convertTableFich(tabl,path) --permet d'enregistrer les une table en un fichier
ascheriit 15:3874758e8f7d 23 f=io.open(path,"w")
ascheriit 15:3874758e8f7d 24 for i=1,#tabl do
ascheriit 15:3874758e8f7d 25 f:write(tostring(tabl[i])..'\n')
ascheriit 15:3874758e8f7d 26 end
ascheriit 15:3874758e8f7d 27 if #tabl==0 then
ascheriit 15:3874758e8f7d 28 f:write(" ")
ascheriit 15:3874758e8f7d 29 end
ascheriit 15:3874758e8f7d 30 f:close()
ascheriit 15:3874758e8f7d 31 end
ascheriit 15:3874758e8f7d 32
ascheriit 15:3874758e8f7d 33 function convertSTDout(tabl) --permet d'afficher une table dans stdOut
ascheriit 15:3874758e8f7d 34 for i=1,#tabl do
ascheriit 15:3874758e8f7d 35 io.write(tostring(tabl[i])..'\n')
ascheriit 15:3874758e8f7d 36 end
ascheriit 15:3874758e8f7d 37 if #tabl==0 then
ascheriit 15:3874758e8f7d 38 io.write(" ")
ascheriit 15:3874758e8f7d 39 end
ascheriit 15:3874758e8f7d 40 end
ascheriit 15:3874758e8f7d 41
ascheriit 15:3874758e8f7d 42 function PBMlecture(tabFich)
ascheriit 15:3874758e8f7d 43 local ret={}
ascheriit 15:3874758e8f7d 44 local tailleX=tonumber(tabFich[3]:sub(1,2)) --on annalyse les dimmentions pour préparer la table
ascheriit 15:3874758e8f7d 45 local tailleY=0
ascheriit 15:3874758e8f7d 46 if tailleX>9 then
ascheriit 15:3874758e8f7d 47 tailleY=tonumber(tabFich[3]:sub(4,5))
ascheriit 15:3874758e8f7d 48 else
ascheriit 15:3874758e8f7d 49 tailleY=tonumber(tabFich[3]:sub(3,4))
ascheriit 15:3874758e8f7d 50 end
ascheriit 15:3874758e8f7d 51 local rawString=tabFich[4] --on met tous les 0 et les 1 à la suite pour simplifier la lecture
ascheriit 15:3874758e8f7d 52 local i=5
ascheriit 15:3874758e8f7d 53 while tabFich[i] do
ascheriit 15:3874758e8f7d 54 rawString=rawString..tabFich[i]
ascheriit 15:3874758e8f7d 55 i=i+1
ascheriit 15:3874758e8f7d 56 end
ascheriit 15:3874758e8f7d 57 --print(rawString, tailleX,tailleY)
ascheriit 15:3874758e8f7d 58
ascheriit 15:3874758e8f7d 59 return rawString,tailleX,tailleY --on revoie la chaine de caractère et les dimmentionsrawString,tailleX,tailleY
ascheriit 15:3874758e8f7d 60 end
ascheriit 15:3874758e8f7d 61
ascheriit 15:3874758e8f7d 62 function lettreAutoLettre(nom,fichierEntree,FichierSortie)
ascheriit 15:3874758e8f7d 63 local tab=convertFichTable(fichierEntree)
ascheriit 15:3874758e8f7d 64 local sortie={"matrice *"..nom.."(){"," matrice* ret = (matrice*) malloc(sizeof(matrice));"," (*ret).tailleX="..tostring(#tab[1])..";"," (*ret).tailleY="..tostring(#tab)..";"}
ascheriit 15:3874758e8f7d 65 for y=1,#tab do
ascheriit 15:3874758e8f7d 66 sortie[#sortie+1]=""
ascheriit 15:3874758e8f7d 67 for x=1,#tab[y] do
ascheriit 15:3874758e8f7d 68 if tab[y]:sub(x,x)=="1" then
ascheriit 15:3874758e8f7d 69 sortie[#sortie]=sortie[#sortie].." (*ret).tableau["..tostring(y-1).."]["..tostring(x-1).."]=1;"
ascheriit 15:3874758e8f7d 70 else
ascheriit 15:3874758e8f7d 71 sortie[#sortie]=sortie[#sortie].." (*ret).tableau["..tostring(y-1).."]["..tostring(x-1).."]=0;"
ascheriit 15:3874758e8f7d 72 end
ascheriit 15:3874758e8f7d 73 end
ascheriit 15:3874758e8f7d 74 end
ascheriit 15:3874758e8f7d 75 sortie[#sortie+1]=" return ret;"
ascheriit 15:3874758e8f7d 76 sortie[#sortie+1]="}"
ascheriit 15:3874758e8f7d 77 if FichierSortie then
ascheriit 15:3874758e8f7d 78 convertTableFich(sortie,FichierSortie)
ascheriit 15:3874758e8f7d 79 else
ascheriit 15:3874758e8f7d 80 convertSTDout(sortie)
ascheriit 15:3874758e8f7d 81 end
ascheriit 15:3874758e8f7d 82 end
ascheriit 15:3874758e8f7d 83
ascheriit 15:3874758e8f7d 84 function lettreAuto(nom,fichierEntree,FichierSortie) --transforme le PBM en une table de O et de 1 formatée correctement
ascheriit 15:3874758e8f7d 85 local rawString,tailleX,tailleY=PBMlecture(convertFichTable(fichierEntree))
ascheriit 15:3874758e8f7d 86 local tab={}
ascheriit 15:3874758e8f7d 87 for y=1,tailleY do
ascheriit 15:3874758e8f7d 88 tab[y]=rawString:sub(tailleX * (y-1) +1,tailleX * (y-1) + tailleX)
ascheriit 15:3874758e8f7d 89 end
ascheriit 15:3874758e8f7d 90 convertTableFich(tab,"/tmp/autoLettre")
ascheriit 15:3874758e8f7d 91 lettreAutoLettre(nom,"/tmp/autoLettre",FichierSortie)
ascheriit 15:3874758e8f7d 92 end
ascheriit 15:3874758e8f7d 93
ascheriit 15:3874758e8f7d 94 lettreAuto(arg[1],arg[2],arg[3])
ascheriit 15:3874758e8f7d 95 */