Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: String auswerten Kategorie: 2W-Bus (von Flo - 18.10.2004 13:19)
Als Antwort auf String auswerten von Flo - 15.10.2004 13:57
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
> Hallo ich habe wieder ne frage bei der ihr mir vielleicht
> helfen könnt und geht es darum das ich meinen
> ADC10 Sensor adressieren möchte leider kommt
> immer nur wenn ich ihn adressieren will ein fehlerhafter antwortstring zurück.
> Kann mir vielleicht jemand sagen wie ich diesen
> antwortstring auswerten kann.
>
> Danke im voraus
>
> Euer Fragensteller Flo

Hier ist noch mein Quelltext und die Ausgaben am LCD

thread main

{
 // lokale Zeichenkette fuer LCD-Ausgabe
 string disp;

 // lokale Zeichenkette fuer TWB-Ein/Ausgabe
 string s;

 // lokale Variable vom Typ Long
 long l;
 int x;

 //Initialisierung des Externen Lcd-Display
 lcdext.init();


 // loeschen des LC-Display
 lcd.clear();

 // Initialisierung des TWB
 twb.init();
sleep 3000;


 // Zusammenstellen des Stringes fuer Commando "SET SENSOR ADDRESS" (Kommando 3)
 str.clear(s);
 str.putchar(s,0x03);  // ! Kommando 3
 str.putchar(s,0x55);  // ! Sensoradresse bei gestecktem Jumper (85 dezimal)
 str.putchar(s,0x20);  // ! frei vorgegebene Modemadresse
 str.putchar(s,0x00);  // nicht relevant -> definiert auf 0 gesetzt
 str.putchar(s,0x00);  // nicht relevant -> definiert auf 0 gesetzt
 str.putchar(s,0x00);  // nicht relevant -> definiert auf 0 gesetzt
 str.putchar(s,0x01);  // ! gewuenschte Sensoradresse
 str.putchar(s,0x00);  // nicht relevant -> definiert auf 0 gesetzt


 
x= twb.io(s);
lcd.clear();
lcd.goto(0,0);
//Ausgabe des Rückgabewertes der Funktion twb.io auf dem Lcd
disp="x=";            
lcd.print (disp,str.length(disp));
lcd.goto (1,0);
disp="";
str.putintf(disp,x,4);
lcd.print(disp,str.length(disp));
sleep 2000;

lcd.clear();
lcd.goto(0,0);
//Ausgabe des Anwortstrings
disp="s=";
lcd.print(disp,str.length(disp));
lcd.goto (1,0);
lcd.print(s,str.length(s));
sleep 2000;

x=twb.rxd();
lcd.clear();
lcd.goto(0,0);
//Ausgabe ob der Antwortrahmen vom 2W-Bus Modem empfangen worde ist
disp="x2=";
lcd.print(disp,str.length(disp));
disp="";
str.putintf(disp,x,5);
lcd.goto(1,0);
lcd.print(disp,str.length(disp));
sleep 2000;

   // Abfrage ob die Ausgabe ohne Fehler beendet und die Antwort empfangen wurde

   if (! x)
   // wenn keine Antwort dann LCD-Ausgabe "TIMEOUT" und Beenden des Programmes
   {
wait lcd.ready();
  lcd.clear();
disp="TIMEOUT";
lcd.print(disp, str.length(disp));
   }


   // Ausgabe des Antwortstrings als Zahlenwert

   else
   {

/* Schreiben des Zahlenwertes aus dem Bytepuffer des Antwortstrings und
     Ausgabe auf dem Externen Lcd */

        l=mem.getlong(s,0);
        lcdext.clear();
        lcdext.goto(0,0);
        disp="l=";
        lcdext.print(disp,str.length(disp));
        disp="";
        str.putlongf(disp,l,4);
        lcdext.goto(1,0);
        lcdext.print(disp);
}

 
 // Programmende
quit 1;

}


/* Ausgaben am LCD:

   X  = -0001
   S  = 1. Zeichen: Y mit einem = Zeichen durch die mitte
        2. Zeichen: Leerzeichen
        3. Zeichen: f mit einem Horizontalen Strich unten
        4. Zeichen: @
        5. Zeichen: @
        6. Zeichen: @
        7. Zeichen: f mit einem Horizontalen Strich unten
        8. Zeichen: #
   X2 = -00001
   l  = 52429056


Falls jemand von euch weiÃ? wo mein Problem liegt
der helfe mir bitte es ist nähmlich wichtig.
Danke schonmal im voraus

Flo


    Antwort schreiben


Antworten:

Re: String auswerten (von André H. - 22.10.2004 3:59)