Wird vielleicht wird der Doppelpunkt als Trennzeichen noch mitübergeben ? Sonst lass dir die Zeichenkette vorher mal ausgeben. Aber wie du schon schreibst. Die Exeception wird nur bei Zeichen geworfen die nicht [0..9], [a..f] oder [A..F] sind.
Wird vielleicht wird der Doppelpunkt als Trennzeichen noch mitübergeben ? Sonst lass dir die Zeichenkette vorher mal ausgeben. Aber wie du schon schreibst. Die Exeception wird nur bei Zeichen geworfen die nicht [0..9], [a..f] oder [A..F] sind.
also die Exception kommt bei sowas hier:
Error: &TRN03195967E00847EB5 -EOL- æ2ÔTôÂÒ
Error musste dir davor wegdenken, das ist noch ausgabe vorher.
Error: 67 73 f0 7d -EOL- RRô´ÄRõ¤'&öæ2ââââÔTôÂÒ
sowas kommt da auch bei raus bzw rein.
Entweder bekomm ich das so vom daemon (was ich nicht glaube) oder ich hab irgendwo noch schrott in den vars stehen.
Aha. Der Fehler liegt im monitord. Der Text ist ja nicht verschlüsselt, sondern klartext. Seltsam. Habe ich bestimmt wieder mal beim Testen vergessen 'was zurückzustellen.
Die zweite Aussendung ist vom Fahrzeug aus. Die sollten eigentlich überhaupt nicht auftauchen.
Werde das heute abend mal prüfen ...
Die "Schrott am Ende" liegt vermutlich daran, daß die Zeichenkettenvariable nicht bei jedem Aufruf "genullt" wird.
ja hab ich mir eigendlich auch gedacht, aber da ich die laufzeit var (mein vector mit dem jeweiligen param) erst in der While erstelle kanns daran nicht liegen.
Und der Buffer wird am ende der while auf buffer[0] = '\0'; gesetzt.
Nimm lieber ein
-EDIT1-Code:memset(buffer,0,_BUFFERGROESSE_) ;
Ich habe den -EOF- jetzt entfernt und die Datentelegramme Fahrzeug->Leitstelle sollten nun auch angezeigt werden (Ohne Leerzeichen zwischen den Zahlen).
Frage dazu:
kann mal jemand prüfen, ob die Reihenfolge der Zeichen stimmt bei Telegrammen Fzg->Leitstelle.
Damit ich die Daten aus dem BOSTool korrekt empfangen kann mußte ich die Nibbles (4Bit Werde=Einzelne Ziffern) paarweise tauschen.
So wird 12345678 tatsächlich als 21436587 bei mir empfangen.
-EDIT2-
@Dove:
Wenn Du std::string nutzt kannst du auch die .Empty Methode nutzen.
Geändert von Buebchen (02.07.2007 um 20:11 Uhr)
Falls ihr es noch nicht in der aktuellen Revision gesehen habt; der monitord kann jetzt auch fms32pro und crusader sprechen.
Ich habe die funktionen unter der "Aufsicht" und tatkräftiger Mithilfe von buebchen heute implementiert.
Damit die Ports aktiv werden bitte in der monitord.xml die entsprechenden Auskommentierungszeichen entfernen.
Ein Passwort wird zur zeit nicht benötigt.
Also wer lust und zeit hat, bitte testen.
Gruß
Medic
wow!
das ist ja klasse!
wie kann ich das denn nun ausprobieren mit dem crusader?
wenn ich indem verzeichniss monitord ein "make" mache kommt dies:
macleod@MacLeod:~/monitor/monitor/monitor/branches/2.1/monitord$ make
gcc -c -c -D _DEBUG -O2 -I../jthread-1.2.1/src/ -I../xmlParser -I../simpleopt -Wno-deprecated MonitorModules.cpp -o MonitorModules.o
gcc -c -c -D _DEBUG -O2 -I../jthread-1.2.1/src/ -I../xmlParser -I../simpleopt -Wno-deprecated MonitorModuleFMS.cpp -o MonitorModuleFMS.o
MonitorModuleFMS.cpp: In member function ‘void MonitorModuleFMS::DisplayResult()’:
MonitorModuleFMS.cpp:778: error: ‘_strdate’ was not declared in this scope
MonitorModuleFMS.cpp:779: error: ‘_strtime’ was not declared in this scope
MonitorModuleFMS.cpp: In member function ‘void MonitorModuleFMS::DisplayResult(std::string)’:
MonitorModuleFMS.cpp:1002: error: ‘_strdate’ was not declared in this scope
MonitorModuleFMS.cpp:1003: error: ‘_strtime’ was not declared in this scope
make: *** [MonitorModuleFMS.o] Fehler 1
macleod@MacLeod:~/monitor/monitor/monitor/branches/2.1/monitord$
oder hab ich da nun etwas total falsch verstanden...
wäre nett wenn einer die schritte kurz erläutern würde.
vorab schonmal
besten dank!
MacLeod
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)