TTQV hängt bei Empfang über TCP

  • Hallo allerseits


    Ich versuche über Multitracking schlussendlich mehrere GPS aufzuzeichnen. Der Empfang der Daten soll über TCP erfolgen.


    Getestet habe ich die beiden folgenden Möglichkeiten. Beide führen aber früher oder später zum Hängen von TTQV (99% CPU).


    Variante 1:
    Im Multitracking wird ein Port "Netzwerk TCPIP" mit "Listen to Port" eingerichtet und ein GPS vom Typ NMEA definiert. Der "Test" im Konfig-Fenster funktioniert einwandfrei.
    Wenn nun auf diesen Port NMEA-Daten ($GPRMC,...) gesendet werden, so geht nach wenigen Sekunden die CPU-Auslastung von TTQV auf 99% und TTQV reagiert nicht mehr. Nach dam killen des Tasks und Neustart sind im entsprechenden Tracklog mehr oder weniger Trackpunkte aufgezeichnet, jedoch handelt es sich immer abwechslungsweise um den 1. und 2. gesendeten Punk. Alle weiteren Punkte werden nicht gespeichert.


    Variante 2:
    Im Mutlitracking wird ein Port "Netzwerk TCPIP" mit "Connect to Host" definiert, wobei im Feld "Listen To Port" die Port-Adresse eingegeben wird. Darunter wird ein NMEA-GPS angehängt. Die Verbindung zum entsprechenden Server funktioniert auch und vom Server gesendete NMEA
    werden sauber im Tracklog protokolliert. Wenn nun aber die Verbindung aus irgend einem Grund nicht von TTQV selbst getrennt wird (Verbindungsabbruch, Server trennt Verbindung, etc...), so bezieht TTQV wiederum 99% CPU und reagiert nicht mehr. Nach dem Neustart von TTQV ist der Tracklog bis zum Verbindungsabbruch korrekt nachgeführt.


    Testumgebung:
    TTQV 4.0.87 Power User
    Windows XP Prof SP2 inkl. alle akt. Hotfixes
    Firewall deaktiviert.


    Variante 1:
    Zum Nachvollziehen der Variante 1 sind keine speziellen Programme nötig. Wie nachfolgend beschrieben kann das Verhalten getestet werden:


    1. TTQV entsprechend konfigurieren.
    2. Ein Textfile (Log-File) mit NMEA-Daten im Notepad öffnen und einige Daten in die Zwischenablage kopieren.
    3. In TTQV Multitracking starten
    4. Ueber die Eingabeaufforderung "Telnet <IP> <Port>" eingeben. <IP> ist mit der IP-Adresse des PCs auf welchem TTQV horch zu versehen. Als <Port> ist die Port-Nummer, auf welchem TTQV horcht, einzugeben.
    5. Danach rechte Maustaste ins Telnet-Fenster klicken und im Kontextmenu auf "Einfügen" klicken. Nun werden die zuvor kopierten NMEA-Daten an TTQV gesendet und bald darauf bleibt TTQV hängen.


    Gibt es für dieses Problem eine Umgehung/Lösung ohne dass auf dem TTQV-Rechner ein Stück Software installiert werden muss, das den TCP-Port abhorcht und dann die Daten über virtuelle COM-Ports an TTQV sendet?


    Gruss Greysi

  • mojn, mojn,


    ich werd mir das über´s Wochenende mal ansehen. Verwendet
    habe ich diese Funktion bisher nur zwischen zwei TTQV, dbie wird m. E. in
    der Übertragung ein $QVPOS verwendet, kann also dazu jetzt noch nichts
    sagen. Bitte installiere aber vorsichtshalber mal die aktuelle development
    Version TTQV4.0.92, nicht daß sich da etwas geändert hat.
    Schick mir zur Sicherheit bitte auch die nmea log Datei, aus der Du die NMEA
    Sätze beziehst, service@ttqv.com

    Gruß Jockel (QV-Admin)
    Angefragte Daten für Supportfälle bitte schicken an info/at/quovadis-gps.com unter Bezugnahme (link) auf diesen thread, Danke!

  • mojn,


    Deine Variante 1 habe ich ausprobiert, solange der sendende Rechner die
    Verbindung aufrecht erhält laufen die Positionen hier durch. Schiesse ich
    Telnet oder beende die Verbindung vom sendenden TTQV, dann gibt es auf
    dem wartenden Rechner den beschriebenen 100% Effekt.
    Du kannst das Ganze auch einfacher probieren, wenn Du als Sender TTQV
    benutzt und auf dem kleinen Pfeil neben dem Icon "GPS-online" klickst, da
    wählst Du einfach NMEA Emulator und hast einiges an Möglichkeiten.


    Die Sache mit den 100% habe ich an Tom weitergegeben.

    Gruß Jockel (QV-Admin)
    Angefragte Daten für Supportfälle bitte schicken an info/at/quovadis-gps.com unter Bezugnahme (link) auf diesen thread, Danke!

  • Hoi


    Das ging aber schnell mit der Antwort. Die NMEA-Datei, mit der ich getestet hatte, ist per Mail unterwegs... Werde nun noch den Dev-Update einspielen und mit dem "Connect To Host" probieren, das in meinem Fall die bevorzugte Variante wäre.


    Sollte es nicht funktionieren, kann ich Dir ja auch das Testprogramm zustellen, mit dem ich die NMEA-Daten an TTQV senden würde. Das könnte vielleicht helfen, den Fehler im TTQV (sofern er wirklich im TTQV ist) zu finden.


    Gruss Greysi

  • Mit der Version 4.0.92 funktioniert die TCP-Verbindung "Connect To Host", allerdings wird pro Vehicle innert 10 Sekunden "nur" eine Position eingelesen.


    Gibt es eine Möglichkeit, diese Zeitspanne zu beeinflussen?


    Gruss Stephan

  • mojn, mojn,


    ne, das isses nicht mit dem einlesen, da gehen auch 50 Positionen pro Minute
    drüber. Kann es sein, daß das die Dämpung ist die da zuschlägt, weil Du Deine Position nicht änderst ?


    Geh mal GPS, Einstellungen, GPS-Online, Zeitintervall Traclspeichern 1sec,
    und paß auch die anderen an, ich weiß ja nicht was Du vorhast !

    Gruß Jockel (QV-Admin)
    Angefragte Daten für Supportfälle bitte schicken an info/at/quovadis-gps.com unter Bezugnahme (link) auf diesen thread, Danke!

  • Jockel, Du bis einfach genial!


    Genau die von Dir erwähnte Einstellung unter GPS, Einstellungen, GPS-Online, Zeitintervall Traclspeichern, war es. Die stand auf 10sec, folglich frisst TTQV pro 10 sec nur ein Trackpunkt pro Fahrzeug.


    Umgestellt auf 1s und schon ist es perfekt! Nun kann ich jede Sekunde pro Fahrzeug einen Trackpunkt senden.


    Danke für die Unterstützung!


    Noch ein kleiner Hinweis nebenbei: Wenn ein $QVPOS-Satz mit einem neuen Fahrzeug-Namen gesendet wird, wird das Fahrzeug automatisch erstellt. Wird nun das Fahrzeug über TTQV gelöscht (damit in der Datenbank das Feld del auf -1 gesetzt), und wieder ein $QVPOS-Satz gesendet, dann wird das Fahrzeug nicht neu erstellt. Wenn ich nun ausserhalb von TTQV in der qu4-Datenbank den Datensatz mit dem Fahrzeug wirklich lösche und wieder den $QVPOS-Satz sende, dann wird das Fahrzeug wieder erstellt. Ich tippe darauf, dass beim Prüfen, ob das Fahrzeug schon existiert, das Datenbank-Feld "del" nicht berücksichtigt wird.