maxime bouillot / Mbed 2 deprecated testLucadeTHmaxBOUI

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
ascheriit
Date:
Mon Apr 22 15:11:14 2019 +0000
Revision:
16:b1bf03ee2878
Parent:
15:3874758e8f7d
Child:
17:c9b66df08920
Ajout de fonctions servant a un affichage plus propre.

Who changed what in which revision?

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