auslesen der seriellen schnittstelle
-
bob007 schrieb:
hm sry aber des funzt irgendwie noch viel weniger...

Wenn ich mir deine main-Funktion so ansehe, vermute ich, dass das an deinem Code liegt, nicht an irgendeiner Bibliothek.
-
MFK schrieb:
Wenn ich mir deine main-Funktion so ansehe, vermute ich, dass das an deinem Code liegt, nicht an irgendeiner Bibliothek.
hm also mein main sieht jetzt so aus:
int main(int argc, char* argv[]) { CSerial serial; serial.Open(_T("COM2")); serial.Setup(CSerial::EBaud9600,CSerial::EData8,CSerial::EParNone,CSerial::EStop1); serial.SetupHandshaking(CSerial::EHandshakeHardware); DWORD dwBytesRead = 0; BYTE abBuffer[100]; do { serial.Read(abBuffer,sizeof(abBuffer),&dwBytesRead); if (dwBytesRead > 0) { cout << abBuffer; } } while (dwBytesRead == sizeof(abBuffer)); serial.Close(); cin.get(); return 0; }das is so direkt aus dem bespiel kopiert. müsste eigendlich so passen.
Problem:
ich bekomme mal wieder garnichts rein... und wenn ich dann nach einigen versuchen ausgerechte mal den richtigen moment erwische sieht die ausgabe in etwa so aus:GPGGA,194902.000,5015.1327,N,01f══┘3f3fY4Yã♠Vã&µFãV&&µvãÍcFvµFãÍcã♠♠♠♠ªV&k $GPGSA,A,3,17,23,20,04,11d,,,,,,,,3.8,2.4,3.0*3D $GPRMC,194902.000,A,5015.▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄1der datensatz in der mittleren zeile scheint soweit zu passen.
in der ersten zeile fehlt am anfang was (hab ich vml ned mit erwischt...) aber ich hab keinen plan was das ab dem "f" darstellen soll. eigendlich müsste es da ganz anders weiter gehen.
genau das gleiche in der letzten zeile nach dem "5." musste es eigendlich mit 1327,N," weitergehen und nicht mir irgendwelchen sonderzeichen.
-
hm, sieht so aus, als würdest du da teilweise HTML-Code empfangen, denn &#...; wird in HTML glaube ich verwendet um UNICODE-Zeichen auszugeben.
dem zu Folge wären die Zahlen zwischen &# und ; die Nummern der Zeichen im UNICODE-Zeichensatz.
du solltest dein Prog mal so umschreiben, dass es die ausgaben in einer Datei speichert, und diese Datei solltest du dir mal z.B. im Internet Explorer oder im Firefox anschauen.
Mal sehen, wie das dann aussieht.MfG DrakoXP
-
also das, was du da oben geschrieben hast, sieht bei mir so aus:
GPGGA,194902.000,5015.1327,N,01f══┘3f3fY4Yã
Vã&µFãV&&µvãÍcFvµFãÍcã


ªV&k $GPGSA,A,3,17,23,20,04,11d,,,,,,,,3.8,2.4,3.0*3D $GPRMC,194902.000,A,5015.▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄1also immer noch ziemlich sinnlos.

-
DrakoXP: Schreib bitte nicht so einen Müll. Danke.
-
in wiefern war das eben Müll?
es war immerhin nen Versuch wert.
schließlich kann man in HTML wirklich &#...; schreiben um ein Zeichen anzuzeigen.
-
ja des hat in der ausgabe auch scho so ausgesehen wie du des da beschrieben hast. des is irgendwie nur durch diesen "code" tag hier im forum passiert. richtig sah die ausgabe dann so aus:
GPGGA,194902.000,5015.1327,N,01f══┘3f3fY4Yã
Vã&µFãV&&µvãÍcFvµFãÍcã


ªV&k $GPGSA,A,3,17,23,20,04,11d,,,,,,,,3.8,2.4,3.0*3D $GPRMC,194902.000,A,5015.▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄1
-
das wusste ich ja nicht
-
DrakoXP schrieb:
das wusste ich ja nicht
Konntest du auch nicht und dein Versuch war keine schlechte Idee! Die Trolls hier schreiben halt manchmal merkwürdige Sachen

-
jep ganau meine meinung. but now back to topic. kann mir jemand weiterhelfen?
-
naja, jetzt mal was anderes:
vielleicht sind die Ausgaben gar nicht sinnlos, sondern nur du kannst nichts damit anfangen.
du solltest dich vllt mal mit der Technologie von GPS auseinandersetzen, also z.B. wie die Pakete aussehen, die verschickt werden.
Dann könntest du einen Parser schreiben, der diese Pakete auswertet und das dann auch für unwissende verständlich macht.So ist es ja auch bei den ID3Tags.
Wenn man da einfach die letzten 128 Byte ausgibst kommt nur Müll raus.
Wenn du aber diese 128 Byte in folgende Struktur schreibst:typedef struct tagID3V1 { char szTag[3]; // Kennzeichnung für ID3v1-Tags, bei ID3v1 immer "TAG" char szTitle[30]; // Titel des Liedes char szInterpret[30]; // Interpret char szAlbum[30]; // Album char szYear[4]; // Erscheinungsjahr char szComment[30]; // beliebiger Kommentar char cGenre; // Genre } SID3V1_real, *PID3V1_real;kannst du aus den ID3Tags einige tolle Informationen erfahren.
so in etwa solltest du es vllt mal bei GPS versuchen.
guck einfach mal Internet, was du so über GPS finden kannst.
-
das auseinandersetzten is nicht das problem... ich kann jeden beliebigen Hyperteminal nehmen und einfach den eingang auslesen und bekomm das rein was ich haben will. das muss sozusagen an der bibliothek oder meinem progrämmchen liegen liegen.
richtig müsste die ausgabe so lauten (wobei die zahlenwerte etwas variieren können):GPGSA,A,2,23,04,20,,,,,,,,,,3.2,3.0,1.037
$GPRMC,204834.000,A,5015.1331,N,01155.7288,E,,357.55,080107,,,A72und mit so ner ausgabe kann ich dann auch was anfangen und das ganze dann entsprechend verabeiten. aber nicht wenn irgendwo zwischen drin irgendwelche seltsamen, undefinierbaren, im protokoll nicht definierten zeichen vorkommen.
-
ok
konnt des problem lösen. unter http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118762251 ist alles genaustens beschrieben