Schnittstellenfrage



  • Hallo,

    ich habe eine Frage zum extrahieren der Daten, die mir eine serielle
    Schnittstelle liefert. Ich habe ein Protokoll zu dem an ttyS0
    angeschlossenem Gerät und das liefert mir ein Frame ind er Art:

    <--STX--><--Add--><--IdData--><--..DATAS..--><--ETX--><--CRC8-->

    STX: Start (0x00 oder 0xA5)

    Add: Zieladresse

    IdData: IdentifikationsID

    DATAS: Passende Information zu der ID

    ETX: Ende des Frames (0x1F)

    So, nun habe ich jede Menge Programm in C gefunden, die ttyS0
    auslesen, aber die liefern mir entweder nur Zahlen oder nur ASCII
    Zeichen. Aber ich muß ja jetzt anhannd der Protokolls die spannenden
    Infos rausfiltern. Aber wie? Ein Bit kann doch immer nur 0 oder 1
    sein, aber dann weiß ich doch nur, daß das Gerät einen Wert gesendet
    hat, also zum Beispiel wenn das Gerät sendet, das ein bestimmter Wert
    gemessen wurde und somit das Bit gesetzt ist (also 1), aber dann weiß
    ich ja noch lange nicht, was denn der Wert nun ist. Also ich weuß zum
    Beipiel dann, daß der Blutdruck gemessen wurde, aber ich weiß nicht,
    wie hoch er ist. Ihr versteht, was ich meine? Ich wäre für einen Ruck
    in die richtige Richtung echt dankbar. Ich möchte das ganze in C
    machen. VIELEN DANK!!!!:-)



  • Ihr versteht, was ich meine?

    Nö!

    aber die liefern mir entweder nur Zahlen oder nur ASCII
    Zeichen.

    Wie wär's mit:

    c = fgetc(fd);
    if ((c >= 'A') && (c <= 'z'))
      printf("%c", c);
    else
      printf(" 0x%2X ", c);
    

    dann kommen die nicht "sichtbaren" Zeichen als Hex-Code.

    Martin


Anmelden zum Antworten