Test

Revision:
0:9a44543bf4fc
Child:
1:82cbdeae5d44
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lcd.cpp	Fri Jun 07 13:45:33 2013 +0000
@@ -0,0 +1,256 @@
+#include "Lcd.h"
+#include "mbed.h"
+
+
+// Constructeur
+
+Lcd::Lcd(PinName tx, PinName rx,int bauds) : Serial(tx, rx)
+{
+    this->baud(bauds);
+}
+
+void Lcd::Cls()
+{
+    char MonChar;
+    MonChar=0x1b;
+    this->putc(MonChar);
+    MonChar=0x43;
+    this->putc(MonChar);
+
+}
+//############## Poly  #################################################"
+void Lcd::LCD(string Para1,string Para2)
+{
+    LcdS(Para1,Para2);
+}
+void Lcd::LCD(char Format[] ,float MonFloat)
+{
+    LcdF( Format, MonFloat);
+}
+void Lcd::LCD(float MonFloat)
+{
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf("%f",MonFloat);
+}
+void Lcd::LCD(char masque[],int MonInt)
+{
+    LcdI(masque,MonInt);
+
+}
+void Lcd::LCD(int MonInt)
+{
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf("%i",MonInt);
+}
+
+//############## INTEGER #################################################"
+void Lcd::LcdI(int MonInt)
+{
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf("%i",MonInt);
+}
+//############## INTEGER #################################################"
+void Lcd::LcdI(char masque[],int MonInt)
+{
+    char Format[50];
+    int i=0;
+    int j=0;
+    int k,l,c;
+    Format[0]='*';
+    // Extrait Position x y
+    while(masque[i]!= 0) {
+
+        if(masque[i]==94) {
+            i++;
+            l=masque[i]-48;
+            i++;
+            c=masque[i]-48;
+            i++;// espace apres format
+        } else {
+            Format[j+1]=masque[i];
+            j++;
+        }
+        i++;
+    }
+
+    //-------------------------------------------
+    // détermintion de la position différente de numerique
+    for (k=j; (k>0) ; k--) {
+        if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {
+            break;
+        }
+
+    }
+
+    Format[j+1]='i';
+
+
+
+    Format[j+2]=0;
+
+    //---------------------------------
+    //Cas 1 caractère Espace on décale à droite pour le conserver
+    if (k==1) {
+        for(int w=j+1; w!= 1; w--) {
+            Format[w+1]=Format[w];
+        }
+        k++;
+    }
+    //Insere le %
+    Format[k]='%';
+    //Cas du Texte on décale à gauche
+    if (Format[0]=='*') {
+        for(int i=0; i<(j+3); i++) {
+            Format[i]=Format[i+1];
+        }
+    }
+    //Test si pos x/y
+    if (j!=i) {
+        this->putc(0x1b);
+        this->putc(0x4c);
+        this->putc(c);
+        this->putc(l);
+    }
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf(Format,MonInt);
+    //this->printf("%s",Format);
+}
+
+//############## Float  #################################################"
+void Lcd::LcdF(float MonFloat)
+{
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf("%f",MonFloat);
+}
+
+//############## FLOAT #################################################"
+void Lcd::LcdF(char masque[],float MonFloat)
+{
+    char Format[50];
+    int i=0;
+    int j=0;
+    int k,l,c;
+    Format[0]='*';
+    // Extrait Position x y
+    while(masque[i]!= 0) {
+        if(masque[i]==94) {
+            i++;
+            l=masque[i]-48;
+            i++;
+            c=masque[i]-48;
+            i++;// espace apres format
+        } else {
+            Format[j+1]=masque[i];
+            j++;
+        }
+        i++;
+    }
+    Format[j+1]='f';
+    Format[j+2]=0;
+    //-------------------------------------------
+    // détermintion de la position différente de numerique
+    for (k=j; (k>0) ; k--) {
+        if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {
+            break;
+        }
+    }
+    //---------------------------------
+    //Cas 1 caractère Espace on décale à droite pour le conserver
+    if (k==1) {
+        for(int w=j+1; w!= 1; w--) {
+            Format[w+1]=Format[w];
+        }
+        k++;
+    }
+    //Insere le %
+    Format[k]='%';
+    //Cas du Texte on décale à gauche
+    if (Format[0]=='*') {
+        for(int i=0; i<(j+3); i++) {
+            Format[i]=Format[i+1];
+        }
+    }
+    //Test si pos x/y
+    if (j!=i) {
+        this->putc(0x1b);
+        this->putc(0x4c);
+        this->putc(c);
+        this->putc(l);
+    }
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+    this->printf(Format,MonFloat);
+}
+
+
+//############## STRING #################################################"
+void Lcd::LcdS(string Param1,string Data)
+{
+    char masque[50];
+    if (Data=="") {
+        Data=Param1;
+        Param1="";
+    }
+
+
+    for(int i=0; i<49; i++) {
+        masque[i]=Param1[i];
+    }
+    char Format[50];
+    int i=0;
+    int j=0;
+    int l,c;
+    Format[0]='*';
+
+    // Extrait Position x y
+    while(masque[i]!= 0) {
+        if(masque[i]==94) {
+            i++;
+            l=masque[i]-48;
+            i++;
+            c=masque[i]-48;
+            i++;
+            if ( masque[i]==0) {
+                break;
+            }
+
+
+
+        } else {
+            Format[j+1]=masque[i];
+            j++;
+        }
+        i++;
+    }
+
+    /*
+    //-------------------------------------------
+    // détermintion de la position différente de numerique
+    for (k=j; (k>0) ; k--) {
+        if(!((Format[k]>=48 && Format[k]<=57)||(Format[k]==46))) {break;}
+    }
+    */
+
+    //Insere le %
+    Format[j+1]='%';
+    Format[j+2]='s';
+    Format[j+3]=0;
+
+    //Cas du Texte on décale à gauche
+    if (Format[0]=='*') {
+        for(int i=0; i<(j+3); i++) {
+            Format[i]=Format[i+1];
+        }
+    }
+    //Test si pos x/y
+    if (j!=i) {
+        this->putc(0x1b);
+        this->putc(0x4c);
+        this->putc(c);
+        this->putc(l);
+    }
+    //<<<<<<< IMPRESSION FINALE >>>>>>>>>>>>>>>>>>>>
+
+    //this->printf("%s",Format);
+    this->printf(Format,Data);
+
+}
\ No newline at end of file