-
        

Ergebnis 1 bis 8 von 8

Thema: Wie kann man Linedata Messungen zum PC schicken ?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2007
    Beiträge
    16

    Wie kann man Linedata Messungen zum PC schicken ?

    Anzeige

    hallo, mal wieder ne Frage,
    ich möchte während der Asuro läuft, die gemessenen Helligkeitswerte
    (LineData) , die ja Integer Werte sind, mit "SerWrite" zum PC schicken.
    "SerWrite" verlangt aber für den Variablentyp einen CHAR (oder geht auch CHAR [] , also array ?) , wie krieg ich die Umwandlung hin ?
    Es müsste doch der Ineger Wert aus LineData in einen String konvertiert werden ?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    wenn du die asurilib 2.6 oder höher verwendest gibt es dafür ne mthode ansonsten hilft nur manuelle konvertieren, btw. ich hab mir n tool geschrieben was mit ziemlicher zuverlässigkeit alle daten aus dem asuro holt und ausgibt, problem es ist .net und benötigt das passende programm im asuro ... ich kanns dir gern mal hochladen aber erwarte nicht zu viel ich bin noch kaum erfahren mit .net und habs in ner freien stunde zusammgefrickelt

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2007
    Ort
    Allenfeld
    Alter
    32
    Beiträge
    19
    Wie Ceos schon geschrieben hat, in der neuen Lib gibt es eine Funktion names PrintInt. Falls du Sie aber noch nicht haben solltest, installiere sie lieber nicht, denn die Installation hat bei mir nicht auf Anhieb geklappt. Ich habe Drei Abende verbracht alles ans laufen zu kriegen . Naja, vielleicht bin ich auch selber Schuld...
    Aber ich würde mir die Daten in Variablen speichern und nachdem fahren ausgeben lassen. Nicht das du die ganze Zeit hinter deinem Asuro mit dem Laptop hinter rennst

    Gruß,

    1nDaClu8

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    ich vermute mal eher er braucht die daten zum "eichen" wa ? (wie schreibt man das eigentlich ? iss das so richtig ?)

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2007
    Beiträge
    16
    genau, ich vermute eine Asymmetrie der Sensoren und wollte deshalb die Differnz ausmessen.

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    Zitat Zitat von 1nDaClu8
    Falls du Sie aber noch nicht haben solltest, installiere sie lieber nicht, ...
    quatsch. probiere es, und wenn du fragen hast frag einfach mal im forum. es gibt einige sehr gute howtos.

    in der neuen lib gibt es die funktion PrintInt(), diese kann direkt integerwerte zum pc senden (als ascii daten).

    die funktion SerWrite erwartet keinen char, sondern einen pointer auf einen char (erkennbar an dem *). ein array von chars (char abc[]) ist ebenfalls ein pointer, er kann also so gesendet werden.

    es ist nicht nötig, die werte auf dem pc umzuwandeln (man braucht auh kein komplexes programm zu schreiben). das kann auch im prozessor passieren: es gibt eine c-funktion namens itoa(), welche integerwerte in einen ascii-array umwandeln kann - und dieses array kann man dann senden.
    kleinschreibung ist cool!

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Querzahl,

    und so sieht die Funktion dann aus:
    Code:
    /****************************************************************************/
    /*!
      \brief
      Ausgabe eines Integer Wertes als String ueber die serielle Schnittstelle.
    
      \param[in]
      wert Auszugebender Integer Wert (16Bit)
    
      \author   Robotrixer, marvin
    
      \version  beta - 31.03.2005 - Robotrixer\n
                first implementation
      \version  2.60 - 28.09.2005 - m.a.r.v.i.n\n
                strlen verwenden, anstelle fester Laenge
      \version  2.61 - 20.11.2006 - m.a.r.v.i.n\n
                Initialisierung text String kann zu Fehler\n
                beim Flashen mit RS232/IR Adapter fuehren\n
                (Bug report von francesco)
      \version  2.70b- 07.01.2007 - m.a.r.v.i.n\n
                SerPrint Funktion anstelle SerWrite verwenden
      \version  2.70rc2- 09.02.2007 - m.a.r.v.i.n\n
                Text Laenge auf 7 erhoeht, fuer Ausgabe negativer Werte
                (Bug Report von HermannSW)
    
      \par  Beispiel:
      (Nur zur Demonstration der Parameter/Returnwerte)
      \code
      // Beispiel fuer zeilenweise Ausgabe der Encoder Werte
      EncoderInit();
      While(1)
      {
        PrintInt (encoder [0]);
        SerPrint ("   ");
        PrintInt (encoder [1]);
        SerPrint ("\n\r");
        MSleep (500); //0,5sek. warten
      }
      \endcode
    *****************************************************************************/
    void PrintInt (
      int wert)
    {
      char text [7];                        // "-12345"
    
      itoa (wert, text, 10);
      SerPrint (text);
    }
    Dann aber benötigst du noch die Funktion "SerPrint ()", oder du ersetzt diese durch "SerWrite (text, strlen (text));"

    Das ist nur für den Fall, dass du die ASURO-Lib tatsächlich nicht installieren möchtest. Aber wie damaltor schon schrieb, sollte es auf alle Fälle einen Versuch wert sein. Die Doku und die Beispiele in der Lib sind auch schon nicht schlecht, und helfen dabei einiges besser zu verstehen.

    Hier geht es zur ASURO-Lib.
    Hier geht es zu einer weiteren Hilfe/Verständnis zur Lib

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Hier hatten wir mal eine Funktion entwickelt die mit der orginalen Library der asuro-CD funktioniert:

    http://www.roboternetz.de/phpBB2/zei...=328202#328202

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •