Datenpacket empfangen und aufschlüsseln



  • Hi

    Ich habe ein grosses Problem.
    Ich muss einen Kompass in meine App. einbinden.
    Ich habe nun eine, der X,Y,Z ausgibt. Jedoch verstehe ich diesen nicht wirklich!

    Wenn ich es laut der Dokumentation richtig verstehe, muess ich das Z auswerten, um die Himmelsrichtung herauszufinden.

    Nun mein Problem:
    Wie bekomme ich den Wert?
    (Welche Befehle muss ich senden, um das Datenpacket zu erhalten??)
    Laut der Dokumentation, bekomme ich ein Datenpacket, welches alles beinhaltet und noch augeschlüsselt werden muss.
    Kann mir jemand sagen, wie ich dies mache, dass ich nur noch das Z habe?

    Hier der Link zur Dokumentation:
    www.codeproject.ch/html/temp/6xVgxFogManual.pdf

    Wäre echt froh, wenn mir jemand helfen könnte???



  • Link ged ned...



  • Sorry!
    Hier der richtige Link:
    http://www.codeproject.ch/temp/6xVgxFogManual.pdf



  • Ich empfehle Dir erstmals eine fertige Klasse für die serielle Kommunikation zu verwenden:
    See: Serial library for C++
    http://www.codeproject.com/system/serial.asp

    See: CSerialPort v1.03 - Serial Port Wrapper
    http://www.codeproject.com/system/cserialport.asp

    Es mag zwar einfach aussehen, das ganze selber zu machen; lass es Dir aber sagen: Es ist es nicht!

    Bzgl. des Protokolls, eigentlich ist es ja ganz einfach... wenn Du mir das Geld gibst mach ich es Dir auch 😉



  • Ich habe mir bereits eine Serialklasse erstellt.
    Mein Problem ist, dass ich dort einen CString zurückgebe, welchen ich nun zurückwandeln muss und dann richtig aufschlüsseln.
    Laut der Doku bräuchte ich ja nur das Byte 15 des Strings!
    Wie mache ich das nun?



  • Wie gesagt... verwende eine Fertige Klasse. Dein Problem ist, dass Du ein CString zurückgibst... die Daten haben aber überhaupt nichts mit einem String gemein...
    Gebe bitte ein array "unsigned char" zurück (also std::vector<unsigned char>).



  • Ja ich kann meine Klasse scho so umändern, dass diese einen char-Array zurückgibt.

    Mein Probleme sind jedoch
    1.wie bekomme ich das Datenpacket (Welchen Befehl muss ich senden?)
    2. wie kann ich daraus das Byte15 lesen und so umwandeln, dass es eine brauchbare Zahl gibt?



  • addict schrieb:

    1.wie bekomme ich das Datenpacket (Welchen Befehl muss ich senden?)

    Hierzu musst Du die Doku lesen...

    addict schrieb:

    2. wie kann ich daraus das Byte15 lesen und so umwandeln, dass es eine brauchbare Zahl gibt?

    Hierzu musst Du die Doku lesen und dann kannst Du hier konkret fragen wie z.B.:

    Wie kann ich aus zwei bytes ein WORD machen?

    Du kannst natürlich auch jemand beauftragen, der das Projekt fpr Dich macht.



  • Ich weiss selber, dass ich die Doku lesen muss!
    Ich dachte mit nur, da ich diese nicht wirklich verstehe, könnte jemand anderes mal ein Auge darauf werden und mir evt. helfen???

    Ich denke, dass die Frage, wie kann ich das Byte 15 auslesen schon ziemlich konrekt ist oder nicht? 😉

    Ich habe momentan folgendes Problem:
    Ich bekomme einen char zurück! Dieser ist jedoch nicht 21 Zeichen lang, wie dies wohl der Fall sein sollte! Ich weiss nun nicht, wo der Fehler liegt?
    Liegt der Fehler am auslesen aus dem Serialbuffer??? oder sendet das Gerät selber zu wenig Zeichen???



  • Ohne Code ist das schwierig. Aber du weißt schon, dass ein character ein einzelnes Zeichen ist?



  • Paul_C. schrieb:

    Aber du weißt schon, dass ein character ein einzelnes Zeichen ist?

    Wir definieren lieber genauer: i.d.R. ist ein "serielles-Zeichen" 8-bit breit. Es gibt aber Ausnahmen wo dies 5,6,7,8 oder sogar 16 Bit sein können.

    PS: Ein "Character" is undefiniert. Es kann sowohl 7-Bit (ASCII), 8-Bit (ANSI bzw. irgendwelche Codepages), 16-Bit (UCS-2) oder 32-Bit (UCS-4) sein. Aber diese "kleinste Einheit für ein Character" wird als "Codepoint" bezeichnet um eine verwechslung mit einem Glyph (also das eigentlich dazustellende Zeichen) zu vermeiden. Ein Glyph kann aus mehrere Codepoints bestehen...
    Aber das nur als kleiner Ausflug in die Welt der Character, Codepoints und Glyphs...



  • Vielen Dank für die Antworten!
    Ich habe das Problem bereits gelöst!
    Trotzdem danke!


Anmelden zum Antworten