Test

Committer:
GobaudJeanLouis
Date:
Fri Jun 07 20:12:31 2013 +0000
Revision:
1:82cbdeae5d44
Parent:
0:9a44543bf4fc
none

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GobaudJeanLouis 0:9a44543bf4fc 1 #include "Lcd.h"
GobaudJeanLouis 0:9a44543bf4fc 2 #include "mbed.h"
GobaudJeanLouis 0:9a44543bf4fc 3
GobaudJeanLouis 0:9a44543bf4fc 4
GobaudJeanLouis 0:9a44543bf4fc 5 // Constructeur
GobaudJeanLouis 0:9a44543bf4fc 6
GobaudJeanLouis 0:9a44543bf4fc 7 Lcd::Lcd(PinName tx, PinName rx,int bauds) : Serial(tx, rx)
GobaudJeanLouis 0:9a44543bf4fc 8 {
GobaudJeanLouis 1:82cbdeae5d44 9 Serial::baud(bauds);
GobaudJeanLouis 0:9a44543bf4fc 10 }
GobaudJeanLouis 0:9a44543bf4fc 11
GobaudJeanLouis 0:9a44543bf4fc 12 void Lcd::Cls()
GobaudJeanLouis 0:9a44543bf4fc 13 {
GobaudJeanLouis 0:9a44543bf4fc 14 char MonChar;
GobaudJeanLouis 0:9a44543bf4fc 15 MonChar=0x1b;
GobaudJeanLouis 0:9a44543bf4fc 16 this->putc(MonChar);
GobaudJeanLouis 0:9a44543bf4fc 17 MonChar=0x43;
GobaudJeanLouis 0:9a44543bf4fc 18 this->putc(MonChar);
GobaudJeanLouis 0:9a44543bf4fc 19
GobaudJeanLouis 0:9a44543bf4fc 20 }
GobaudJeanLouis 0:9a44543bf4fc 21 //############## Poly #################################################"
GobaudJeanLouis 0:9a44543bf4fc 22 void Lcd::LCD(string Para1,string Para2)
GobaudJeanLouis 0:9a44543bf4fc 23 {
GobaudJeanLouis 0:9a44543bf4fc 24 LcdS(Para1,Para2);
GobaudJeanLouis 0:9a44543bf4fc 25 }
GobaudJeanLouis 0:9a44543bf4fc 26 void Lcd::LCD(char Format[] ,float MonFloat)
GobaudJeanLouis 0:9a44543bf4fc 27 {
GobaudJeanLouis 0:9a44543bf4fc 28 LcdF( Format, MonFloat);
GobaudJeanLouis 0:9a44543bf4fc 29 }
GobaudJeanLouis 0:9a44543bf4fc 30 void Lcd::LCD(float MonFloat)
GobaudJeanLouis 0:9a44543bf4fc 31 {
GobaudJeanLouis 0:9a44543bf4fc 32 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 33 this->printf("%f",MonFloat);
GobaudJeanLouis 0:9a44543bf4fc 34 }
GobaudJeanLouis 0:9a44543bf4fc 35 void Lcd::LCD(char masque[],int MonInt)
GobaudJeanLouis 0:9a44543bf4fc 36 {
GobaudJeanLouis 0:9a44543bf4fc 37 LcdI(masque,MonInt);
GobaudJeanLouis 0:9a44543bf4fc 38
GobaudJeanLouis 0:9a44543bf4fc 39 }
GobaudJeanLouis 0:9a44543bf4fc 40 void Lcd::LCD(int MonInt)
GobaudJeanLouis 0:9a44543bf4fc 41 {
GobaudJeanLouis 0:9a44543bf4fc 42 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 43 this->printf("%i",MonInt);
GobaudJeanLouis 0:9a44543bf4fc 44 }
GobaudJeanLouis 0:9a44543bf4fc 45
GobaudJeanLouis 0:9a44543bf4fc 46 //############## INTEGER #################################################"
GobaudJeanLouis 0:9a44543bf4fc 47 void Lcd::LcdI(int MonInt)
GobaudJeanLouis 0:9a44543bf4fc 48 {
GobaudJeanLouis 0:9a44543bf4fc 49 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 50 this->printf("%i",MonInt);
GobaudJeanLouis 0:9a44543bf4fc 51 }
GobaudJeanLouis 0:9a44543bf4fc 52 //############## INTEGER #################################################"
GobaudJeanLouis 0:9a44543bf4fc 53 void Lcd::LcdI(char masque[],int MonInt)
GobaudJeanLouis 0:9a44543bf4fc 54 {
GobaudJeanLouis 0:9a44543bf4fc 55 char Format[50];
GobaudJeanLouis 0:9a44543bf4fc 56 int i=0;
GobaudJeanLouis 0:9a44543bf4fc 57 int j=0;
GobaudJeanLouis 0:9a44543bf4fc 58 int k,l,c;
GobaudJeanLouis 0:9a44543bf4fc 59 Format[0]='*';
GobaudJeanLouis 0:9a44543bf4fc 60 // Extrait Position x y
GobaudJeanLouis 0:9a44543bf4fc 61 while(masque[i]!= 0) {
GobaudJeanLouis 0:9a44543bf4fc 62
GobaudJeanLouis 0:9a44543bf4fc 63 if(masque[i]==94) {
GobaudJeanLouis 0:9a44543bf4fc 64 i++;
GobaudJeanLouis 0:9a44543bf4fc 65 l=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 66 i++;
GobaudJeanLouis 0:9a44543bf4fc 67 c=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 68 i++;// espace apres format
GobaudJeanLouis 0:9a44543bf4fc 69 } else {
GobaudJeanLouis 0:9a44543bf4fc 70 Format[j+1]=masque[i];
GobaudJeanLouis 0:9a44543bf4fc 71 j++;
GobaudJeanLouis 0:9a44543bf4fc 72 }
GobaudJeanLouis 0:9a44543bf4fc 73 i++;
GobaudJeanLouis 0:9a44543bf4fc 74 }
GobaudJeanLouis 0:9a44543bf4fc 75
GobaudJeanLouis 0:9a44543bf4fc 76 //-------------------------------------------
GobaudJeanLouis 0:9a44543bf4fc 77 // détermintion de la position différente de numerique
GobaudJeanLouis 0:9a44543bf4fc 78 for (k=j; (k>0) ; k--) {
GobaudJeanLouis 0:9a44543bf4fc 79 if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {
GobaudJeanLouis 0:9a44543bf4fc 80 break;
GobaudJeanLouis 0:9a44543bf4fc 81 }
GobaudJeanLouis 0:9a44543bf4fc 82
GobaudJeanLouis 0:9a44543bf4fc 83 }
GobaudJeanLouis 0:9a44543bf4fc 84
GobaudJeanLouis 0:9a44543bf4fc 85 Format[j+1]='i';
GobaudJeanLouis 0:9a44543bf4fc 86
GobaudJeanLouis 0:9a44543bf4fc 87
GobaudJeanLouis 0:9a44543bf4fc 88
GobaudJeanLouis 0:9a44543bf4fc 89 Format[j+2]=0;
GobaudJeanLouis 0:9a44543bf4fc 90
GobaudJeanLouis 0:9a44543bf4fc 91 //---------------------------------
GobaudJeanLouis 0:9a44543bf4fc 92 //Cas 1 caractère Espace on décale à droite pour le conserver
GobaudJeanLouis 0:9a44543bf4fc 93 if (k==1) {
GobaudJeanLouis 0:9a44543bf4fc 94 for(int w=j+1; w!= 1; w--) {
GobaudJeanLouis 0:9a44543bf4fc 95 Format[w+1]=Format[w];
GobaudJeanLouis 0:9a44543bf4fc 96 }
GobaudJeanLouis 0:9a44543bf4fc 97 k++;
GobaudJeanLouis 0:9a44543bf4fc 98 }
GobaudJeanLouis 0:9a44543bf4fc 99 //Insere le %
GobaudJeanLouis 0:9a44543bf4fc 100 Format[k]='%';
GobaudJeanLouis 0:9a44543bf4fc 101 //Cas du Texte on décale à gauche
GobaudJeanLouis 0:9a44543bf4fc 102 if (Format[0]=='*') {
GobaudJeanLouis 0:9a44543bf4fc 103 for(int i=0; i<(j+3); i++) {
GobaudJeanLouis 0:9a44543bf4fc 104 Format[i]=Format[i+1];
GobaudJeanLouis 0:9a44543bf4fc 105 }
GobaudJeanLouis 0:9a44543bf4fc 106 }
GobaudJeanLouis 0:9a44543bf4fc 107 //Test si pos x/y
GobaudJeanLouis 0:9a44543bf4fc 108 if (j!=i) {
GobaudJeanLouis 0:9a44543bf4fc 109 this->putc(0x1b);
GobaudJeanLouis 0:9a44543bf4fc 110 this->putc(0x4c);
GobaudJeanLouis 0:9a44543bf4fc 111 this->putc(c);
GobaudJeanLouis 0:9a44543bf4fc 112 this->putc(l);
GobaudJeanLouis 0:9a44543bf4fc 113 }
GobaudJeanLouis 0:9a44543bf4fc 114 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 115 this->printf(Format,MonInt);
GobaudJeanLouis 0:9a44543bf4fc 116 //this->printf("%s",Format);
GobaudJeanLouis 0:9a44543bf4fc 117 }
GobaudJeanLouis 0:9a44543bf4fc 118
GobaudJeanLouis 0:9a44543bf4fc 119 //############## Float #################################################"
GobaudJeanLouis 0:9a44543bf4fc 120 void Lcd::LcdF(float MonFloat)
GobaudJeanLouis 0:9a44543bf4fc 121 {
GobaudJeanLouis 0:9a44543bf4fc 122 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 123 this->printf("%f",MonFloat);
GobaudJeanLouis 0:9a44543bf4fc 124 }
GobaudJeanLouis 0:9a44543bf4fc 125
GobaudJeanLouis 0:9a44543bf4fc 126 //############## FLOAT #################################################"
GobaudJeanLouis 0:9a44543bf4fc 127 void Lcd::LcdF(char masque[],float MonFloat)
GobaudJeanLouis 0:9a44543bf4fc 128 {
GobaudJeanLouis 0:9a44543bf4fc 129 char Format[50];
GobaudJeanLouis 0:9a44543bf4fc 130 int i=0;
GobaudJeanLouis 0:9a44543bf4fc 131 int j=0;
GobaudJeanLouis 0:9a44543bf4fc 132 int k,l,c;
GobaudJeanLouis 0:9a44543bf4fc 133 Format[0]='*';
GobaudJeanLouis 0:9a44543bf4fc 134 // Extrait Position x y
GobaudJeanLouis 0:9a44543bf4fc 135 while(masque[i]!= 0) {
GobaudJeanLouis 0:9a44543bf4fc 136 if(masque[i]==94) {
GobaudJeanLouis 0:9a44543bf4fc 137 i++;
GobaudJeanLouis 0:9a44543bf4fc 138 l=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 139 i++;
GobaudJeanLouis 0:9a44543bf4fc 140 c=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 141 i++;// espace apres format
GobaudJeanLouis 0:9a44543bf4fc 142 } else {
GobaudJeanLouis 0:9a44543bf4fc 143 Format[j+1]=masque[i];
GobaudJeanLouis 0:9a44543bf4fc 144 j++;
GobaudJeanLouis 0:9a44543bf4fc 145 }
GobaudJeanLouis 0:9a44543bf4fc 146 i++;
GobaudJeanLouis 0:9a44543bf4fc 147 }
GobaudJeanLouis 0:9a44543bf4fc 148 Format[j+1]='f';
GobaudJeanLouis 0:9a44543bf4fc 149 Format[j+2]=0;
GobaudJeanLouis 0:9a44543bf4fc 150 //-------------------------------------------
GobaudJeanLouis 0:9a44543bf4fc 151 // détermintion de la position différente de numerique
GobaudJeanLouis 0:9a44543bf4fc 152 for (k=j; (k>0) ; k--) {
GobaudJeanLouis 0:9a44543bf4fc 153 if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {
GobaudJeanLouis 0:9a44543bf4fc 154 break;
GobaudJeanLouis 0:9a44543bf4fc 155 }
GobaudJeanLouis 0:9a44543bf4fc 156 }
GobaudJeanLouis 0:9a44543bf4fc 157 //---------------------------------
GobaudJeanLouis 0:9a44543bf4fc 158 //Cas 1 caractère Espace on décale à droite pour le conserver
GobaudJeanLouis 0:9a44543bf4fc 159 if (k==1) {
GobaudJeanLouis 0:9a44543bf4fc 160 for(int w=j+1; w!= 1; w--) {
GobaudJeanLouis 0:9a44543bf4fc 161 Format[w+1]=Format[w];
GobaudJeanLouis 0:9a44543bf4fc 162 }
GobaudJeanLouis 0:9a44543bf4fc 163 k++;
GobaudJeanLouis 0:9a44543bf4fc 164 }
GobaudJeanLouis 0:9a44543bf4fc 165 //Insere le %
GobaudJeanLouis 0:9a44543bf4fc 166 Format[k]='%';
GobaudJeanLouis 0:9a44543bf4fc 167 //Cas du Texte on décale à gauche
GobaudJeanLouis 0:9a44543bf4fc 168 if (Format[0]=='*') {
GobaudJeanLouis 0:9a44543bf4fc 169 for(int i=0; i<(j+3); i++) {
GobaudJeanLouis 0:9a44543bf4fc 170 Format[i]=Format[i+1];
GobaudJeanLouis 0:9a44543bf4fc 171 }
GobaudJeanLouis 0:9a44543bf4fc 172 }
GobaudJeanLouis 0:9a44543bf4fc 173 //Test si pos x/y
GobaudJeanLouis 0:9a44543bf4fc 174 if (j!=i) {
GobaudJeanLouis 0:9a44543bf4fc 175 this->putc(0x1b);
GobaudJeanLouis 0:9a44543bf4fc 176 this->putc(0x4c);
GobaudJeanLouis 0:9a44543bf4fc 177 this->putc(c);
GobaudJeanLouis 0:9a44543bf4fc 178 this->putc(l);
GobaudJeanLouis 0:9a44543bf4fc 179 }
GobaudJeanLouis 0:9a44543bf4fc 180 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 181 this->printf(Format,MonFloat);
GobaudJeanLouis 0:9a44543bf4fc 182 }
GobaudJeanLouis 0:9a44543bf4fc 183
GobaudJeanLouis 0:9a44543bf4fc 184
GobaudJeanLouis 0:9a44543bf4fc 185 //############## STRING #################################################"
GobaudJeanLouis 0:9a44543bf4fc 186 void Lcd::LcdS(string Param1,string Data)
GobaudJeanLouis 0:9a44543bf4fc 187 {
GobaudJeanLouis 0:9a44543bf4fc 188 char masque[50];
GobaudJeanLouis 0:9a44543bf4fc 189 if (Data=="") {
GobaudJeanLouis 0:9a44543bf4fc 190 Data=Param1;
GobaudJeanLouis 0:9a44543bf4fc 191 Param1="";
GobaudJeanLouis 0:9a44543bf4fc 192 }
GobaudJeanLouis 0:9a44543bf4fc 193
GobaudJeanLouis 0:9a44543bf4fc 194
GobaudJeanLouis 0:9a44543bf4fc 195 for(int i=0; i<49; i++) {
GobaudJeanLouis 0:9a44543bf4fc 196 masque[i]=Param1[i];
GobaudJeanLouis 0:9a44543bf4fc 197 }
GobaudJeanLouis 0:9a44543bf4fc 198 char Format[50];
GobaudJeanLouis 0:9a44543bf4fc 199 int i=0;
GobaudJeanLouis 0:9a44543bf4fc 200 int j=0;
GobaudJeanLouis 0:9a44543bf4fc 201 int l,c;
GobaudJeanLouis 0:9a44543bf4fc 202 Format[0]='*';
GobaudJeanLouis 0:9a44543bf4fc 203
GobaudJeanLouis 0:9a44543bf4fc 204 // Extrait Position x y
GobaudJeanLouis 0:9a44543bf4fc 205 while(masque[i]!= 0) {
GobaudJeanLouis 0:9a44543bf4fc 206 if(masque[i]==94) {
GobaudJeanLouis 0:9a44543bf4fc 207 i++;
GobaudJeanLouis 0:9a44543bf4fc 208 l=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 209 i++;
GobaudJeanLouis 0:9a44543bf4fc 210 c=masque[i]-48;
GobaudJeanLouis 0:9a44543bf4fc 211 i++;
GobaudJeanLouis 0:9a44543bf4fc 212 if ( masque[i]==0) {
GobaudJeanLouis 0:9a44543bf4fc 213 break;
GobaudJeanLouis 0:9a44543bf4fc 214 }
GobaudJeanLouis 0:9a44543bf4fc 215
GobaudJeanLouis 0:9a44543bf4fc 216
GobaudJeanLouis 0:9a44543bf4fc 217
GobaudJeanLouis 0:9a44543bf4fc 218 } else {
GobaudJeanLouis 0:9a44543bf4fc 219 Format[j+1]=masque[i];
GobaudJeanLouis 0:9a44543bf4fc 220 j++;
GobaudJeanLouis 0:9a44543bf4fc 221 }
GobaudJeanLouis 0:9a44543bf4fc 222 i++;
GobaudJeanLouis 0:9a44543bf4fc 223 }
GobaudJeanLouis 0:9a44543bf4fc 224
GobaudJeanLouis 0:9a44543bf4fc 225 /*
GobaudJeanLouis 0:9a44543bf4fc 226 //-------------------------------------------
GobaudJeanLouis 0:9a44543bf4fc 227 // détermintion de la position différente de numerique
GobaudJeanLouis 0:9a44543bf4fc 228 for (k=j; (k>0) ; k--) {
GobaudJeanLouis 0:9a44543bf4fc 229 if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {break;}
GobaudJeanLouis 0:9a44543bf4fc 230 }
GobaudJeanLouis 0:9a44543bf4fc 231 */
GobaudJeanLouis 0:9a44543bf4fc 232
GobaudJeanLouis 0:9a44543bf4fc 233 //Insere le %
GobaudJeanLouis 0:9a44543bf4fc 234 Format[j+1]='%';
GobaudJeanLouis 0:9a44543bf4fc 235 Format[j+2]='s';
GobaudJeanLouis 0:9a44543bf4fc 236 Format[j+3]=0;
GobaudJeanLouis 0:9a44543bf4fc 237
GobaudJeanLouis 0:9a44543bf4fc 238 //Cas du Texte on décale à gauche
GobaudJeanLouis 0:9a44543bf4fc 239 if (Format[0]=='*') {
GobaudJeanLouis 0:9a44543bf4fc 240 for(int i=0; i<(j+3); i++) {
GobaudJeanLouis 0:9a44543bf4fc 241 Format[i]=Format[i+1];
GobaudJeanLouis 0:9a44543bf4fc 242 }
GobaudJeanLouis 0:9a44543bf4fc 243 }
GobaudJeanLouis 0:9a44543bf4fc 244 //Test si pos x/y
GobaudJeanLouis 0:9a44543bf4fc 245 if (j!=i) {
GobaudJeanLouis 0:9a44543bf4fc 246 this->putc(0x1b);
GobaudJeanLouis 0:9a44543bf4fc 247 this->putc(0x4c);
GobaudJeanLouis 0:9a44543bf4fc 248 this->putc(c);
GobaudJeanLouis 0:9a44543bf4fc 249 this->putc(l);
GobaudJeanLouis 0:9a44543bf4fc 250 }
GobaudJeanLouis 0:9a44543bf4fc 251 //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
GobaudJeanLouis 0:9a44543bf4fc 252
GobaudJeanLouis 0:9a44543bf4fc 253 //this->printf("%s",Format);
GobaudJeanLouis 0:9a44543bf4fc 254 this->printf(Format,Data);
GobaudJeanLouis 0:9a44543bf4fc 255
GobaudJeanLouis 0:9a44543bf4fc 256 }