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

Befehl "strx.mid" macht Probleme Kategorie: Programmierung (von Stefan - 28.07.2005 2:06)
Ich nutze:
C164CI-ControllerBoard, CC2-Application-Board, OSOPT V3.0
Hallo Leute,
ich habe massive Probleme, einen ASCII-String zu extrahieren.
Die Daten kommen über die HWCOMM herein.
Beispiel:    g="AZ243.0 EL67.0";
Es handelt sich hierbei um den Azimut-Wert 243 Grad und dem Elevationswert 67
Dann sollen am Ende zwei Zahlen zwei Variablen zugeordent werden.
Die dann in der C-Control weiter verarbeitet werden sollen.

Ich habe mir schon das neueste OS von "CC2Net" geholt.
Doch leider habe ich keinen Erfolg und es herrscht Ratlosigkeit.

Die LCD-Anzeige bringe ich nicht dazu, den "2-ten Wert" am Anfang der zweiten Zeile zu
schreiben, sie klebt es stattdessen an das Ende des Wertes der ersten Zeile.
Ob "goto" oder "line" es geht leider nicht.


Hier das Listing:



  string g, azs, els;
  long az, el;

/********************************************
    Daten an ser.c2
    ASCII-Daten von WX-Track an die Serielle
*********************************************/
//------------
  thread main
//------------

{
  hwcom.init ();
  hwcom.setspeed (hwcom.SPEED_9600);
 
  pcflcd.setpcf(1);                             // I2C LCD-Anzeige adressieren
  pcflcd.init();                              // I2C LCD-Anzeige initieren
  sleep 35;              // x ms Pause
  pcflcd.clear();          // I2C LCD-Anzeige löschen
  pcflcd.setLight(1);                          // LCD-Beleuchtung: 0=AUS, 1=EIN
  pcflcd.line(1);                                  // 1. Zeile der Anzeige vorbereiten
  pcflcd.print("Online Tracking Data");
  pcflcd.line(1);
  pcflcd.print("AZ: ");
  pcflcd.line(2);
  pcflcd.print("EL: ");
 
  loop
  {
       pcflcd.goto(2,0);
       g = "               ";
    wait hwcom.rxd();
    {
       hwcom.receive(g,20,100);

       strx.mid(g,azs,2,5);                     //Ã?bernahme des Azimutwertes, zB: 243.0
       strx.mid(g,els,10,4);                    //Ã?bernahme des Elevationswertes, zB: 67.0

       az = strx.getNum(azs);
       el = strx.getNum(els);
       
// ******************************** ab hier kommt später die Weiterverarbeitung*************
       pcflcd.goto(2,5);
       pcflcd.zahl3p(az);
       pcflcd.goto(3,5);
       pcflcd.zahl3p(el);
       pcflcd.goto(4,5);
       pcflcd.print(g);    
    }
   
  }

}


Wer kann mir weiterhelfen ??


    Antwort schreiben


Antworten: