Discussion in 'Bugs' started by Weichei, Apr 7, 2007.

  1. Weichei

    Weichei New Member

    Hi!

    Ich bin's schon wieder :(

    Nachdem das mir meinem Laptop PIII450 und dem Robbe Infinity III nicht vernünftig ging, dachte ich mir ich könnte mir ja die Daten über's netzt schicken lassen.
    Also hab' ich mir ein Programm geschrieben, was die COM1 mit dem Telnet Port verbindet.

    <Bild>

    Dann auf meinem Rechner im Büro "HW Virtual serial Port" geladen (gibt's frei im Internet) und den COM9 gebaut.

    <Bild2>
    Im Hyperterminal kommen die Daten auch vernünftig an:
    <Bild3>
    Nur kann Logview da leider nichts mit anfangen. Es akzeptiert ungefähr nur jedes 10te Telegramm

    Ich schicke Dir mal 'nen Log mit.

    Irgentwie bin ich der einzige, der serielle Probleme hat?!?! Ich meine im Hyperterminal sieht man zwar, dass das Telegramm "häppchenweise" mit vielleicht 10ms Verzögerung dazwischen ankommt, aber das Telegramm kommt definitiv komplett an! Ich gehe davon aus, das Euer Programm das Telegrammende (CRLF) erkennt und danach die Telegrammtrennung vornimmt? Oder macht ihr das mit Pausenerkennung?


    Gruß
    Claus

    Attached Files:

  2. Dominik

    Dominik Administrator Staff Member

    Moin !

    Uff, nu bin ich baff. Das kenne ich ja noch goned. Freude :)
    Link : http://www.hw-group.com/products/hw_vsp/index_en.html

    Es scheint so das du der einzige bist. Jedenfalls hat sonst noch keiner was berichtet.

    LogView testet nicht auf das Telegrammende. Der serielle Port wird mit einer Clustersize abgefragt. Als erst wenn xx Byte im Puffer sind wird gelesen. Und dann führt LogView noch einige Überprüfungen durch wie Endezeichen, bestimmte Werte prüfen, etc etc.

    Kannst du mal ein Log erstellen ohne den Haken bei 2? Dann sollte man normalerweise alles sehen was an der seriellen rein kommt. Ansonsten könntest du mir im Notfall auch mal deinen Lader zusenden. Dann schaue ich mir das mal bei mir an.

    Noch ne kurze Frage zu dem HW Virtual Serial Port. Kann man diese Funktion auch in sein eigenes Prog einbauen, oder muss man das Tool von denen nutzen ?
  3. Weichei

    Weichei New Member

    Hi!

    Hatte ich schon gemacht:) hängt dran! Allerdings mit Haken an 2.

    Die haben das Tool geschrieben, damit die auf Ihre Hardware-Kisten zugreifen können. Was Fehlt ist ein Programm, damit der COM-Port auf Telnet umgesetzt wird. Das ist aber recht trivial. Den Quelltext kanst Du haben. Du brauchst ICS http://www.overbyte.be/frame_index.html?redirTo=/products/ics.html speziell die TWinsock Komponente und eine COMPort Komponente (http://sourceforge.net/projects/comport/) Dann sind's nur 2 DIN A4 Seiten Quellcode. Das Ganze basiert auf dem ICS Beispiel "Server5" und ist nur um ein paar Zeilen erweitert.

    Also wenn immer die gleiche Anzahl geholt wird, dann müsste das aber eigentlich funktionieren! Hast Du da noch einen (zu kleinen? ) Timeout drin?

    Gruß

    Claus

    Attached Files:

  4. Dominik

    Dominik Administrator Staff Member

    Moin !

    Das ist ja das Problem. Dadurch wirds fast unlesbar ... :(

    Nein. Also wenn es nicht bei etlichen Leuten erfolgreich laufen tät, würde ich mir ja Sorgen machen. Aber du bist bis dato der einzige.

    Schick mir (wenn machbar) bitte mal ein Log ohne "2". Dann sehe ich mehr. ;)
  5. Weichei

    Weichei New Member

    Hi!

    Ich hab's noch mal geloggt. So wie's aussieht schneidet Logview das Telegramm an der falschen stelle durch! :eek:

    Schau's Dir mal an

    Gruß

    Claus

    Attached Files:

  6. Dominik

    Dominik Administrator Staff Member

    Moin !

    Ich kanns mir nicht erklären. Habe mir jetzt schon x mal das Log angesehen, aber eine Idee was dieses Problem verursacht kann ich nicht erkennen.
    Kannst du mit dem schnellen Rechner nicht mal direkt an dem Lader testen?
  7. Weichei

    Weichei New Member

    Hi!

    ... da sind wir ja schon zwei :D

    Hab' ich doch schon gemacht : http://www.logview.info/vBulletin/showpost.php?p=5006&postcount=5

    Mit meinem schnellen Laptop ging alles bestens.

    Die Daten kommen über's Netzt halt ein bischen holprig an. Also so in etwa
    Code:
    "C8369F0101012EA6<ca. 10-50 ms>066200.....0000<ca. 10-50 ms>0000...0000<ca. 10-50 ms>000000000000000012BE<CRLF>
    <ca. 200 ms>
    C8369F010101....usw.
    Das liegt hat daran, dass die Daten über's Netzwerk kullern. Man könnte versuchen, die Daten im meinem Seriell2Telnet-Programm als Packet zu verschicken, das heißt die Telegrammende-Erkennung mit dort hinein zu bauen (funktioniert dann auch nur beim Robbe Infinity III -> nicht gut!).

    Wenn ich die Daten erst über'n telnet Port schicke, Wenn die Zeile komplett ist, dann müsste - so die Theorie - Die Zeile auch auf der anderen Netzwerkseite in einem Stück rauspurzeln.

    Aber noch mal: Eigentlich müsste das auch so funktionieren, wenn Du die Telegrammlänge als Maßstab nimmst und keinen Timeout drin hast.

    Ich hab' jetzt erst mal meinen Win98-Laptop platt gemacht und W2K installiert. Ich werd's mal damit testen. Sowohl im Direktbetrieb als auch über's Netzwerk.

    Ich weiß, ich hatte das schon mal gefragt, aber Du hast wirklich keinen Timeout drin? Es sieht schon irgedwie danach aus.

    Das die Daten nicht 100%ig syncron im Sekundentakt kommen macht auch nichts, oder?

    Gruß
    Claus
  8. Dominik

    Dominik Administrator Staff Member

    Moin !

    NAtürlich gibt es bei der seriellen Timeouts. Aber das was du da hast kann man nicht mal eben abfangen. Dazu müsste man auf LogView Seite die ankommenden Telegramme wieder zusammensetzen.

    Wenn das NetzwerkTool mit solchen Verzögerungen arbeitet und die Telegramme von sich aus zerhackt dann kann das nicht gehen (Stand heute).
    Wenn die Telegramme komplett übertragen werden geht das auch mit LogView.

    Also da liegt das Problem eher bei deinem Tool was die seriellen Daten entgegen nimmt. Das sollte komplette Telegramme senden.
  9. Weichei

    Weichei New Member

    Hi!

    .. das ging aber schnell :D

    Auf der Arbeit mußte ich mich auch schon ein paar mal mit dem Problem auseinander setzen. Ich hab's dann meistens so gemacht, dass ich mir in einem Thread jedes Byte was reinkommt angeschaut, und dann erst mal in einen Buffer geschoben habe. Erst wenn das Telegramm-Ende-Zeichen kam, dann hab' ich mir das gesamte Packet aus dem Buffer geholt. Den Timeout, retriggerbar durch jedes empfangene Zeichen, midestens 2x Telegrammwiederholung und dann ging das!:cool:


    Du hattest ja schon igendwo gesagt, dass da was geändert wird.

    .. is nicht meins (HW-Group). Mein ist nur das Send-Programm und das sendet in Echtzeit ;) . .. sind halt die ping-Zeiten der Swiches, die dazwischen hängen und/oder das telnet2Com Programm von HW-Group.

    Ich würde sagen, das wichtigste ist erst mal, das es dafür eine plausible Erklärung gibt. Wenn's jetzt nicht geht, dann ist das halt so! :( Ist ja auch kein üblicher Anschluss eines Laders.

    Wenn ich die Kurve beim Anzeigen nicht mitlaufen lasse geht's ja auch mit meinem PIII450 Laptop.

    Trotzdem Danke für Deinen exzellenten Support!!!

    Guß

    Claus
  10. Dominik

    Dominik Administrator Staff Member

    Moin !

    Also wenn dein Tool auf die kompletten Telegramme aufpasst, dann könnte man es wirklich nur noch in LogView lösen.

    Im Moment will ich das aber vermeiden, denn dann müssen wir sowas für jedes Gerät machen und glaube mir das ist nicht ohne ...

    Holger und ich haben übrigens schon mal erfolgreich LogView als "TCP/IP Bridge" eingesetzt. Vielleicht sollte man das Feature mal wieder freigeben ;)
  11. Space

    Space New Member

    Wollt ihr schon aufgeben:eek:

    ...normalerweise sollte och ein Datentelegramm in ein IP Paket passen. Die MTU im LAN von üblicherweise 1500Byte minus 60Byte Header, egibt 1440 Bytes für Daten, welche maximal in einem Paket übertragen werden können.
    Selbst Akkumatik kommt da nicht ran...:D

    Wenn der Sender den kompletten Datensatz erstmals Qued und auf das Datensatzende warte, um es dan in ein IP Paket (UDP macht Sinn) einpackt, sollt es doch eigentlich funktionieren. Die Latenz im Netz ist dannn nebensächlich nur die Reienfolge der Pakete sollt sichergestellt werden.
  12. Dominik

    Dominik Administrator Staff Member

    moin Space!

    Na das schrub ich ja eh. Die Daten nicht in Echtzeit überragen sondern vor dem Senden übers Netz richtig zusammensetzen.

    Dann klappts def. auch mit LogView :cool:

    Ich ... Nie :eek:
  13. Weichei

    Weichei New Member

    Servus, zusammen!

    ...gehen tut das! Nur dan muß eben die "Telegrammzusammenbauintelligenz" in das seriell2telnet Programm rein. Man müsste dann dort den Lader auswählen. Ist halt unschön.....:rolleyes:.

    Einfacher ist's ich schiebe jedes Byte, so wie's kommt ins Netz. Kleines, dummes Programm, eben....:D.

    Mal sehn... wenn ich diese Woche mal Abends Langeweile hab', probier ich das mal mit dem Telegramm zusammenpacken!

    Denn:
    definitiv nicht! :D ... vielleicht ein bischen nach hinten schieben, aber nicht aufgeben!

    Gruß

    Claus
  14. Dominik

    Dominik Administrator Staff Member

    Na da hammas doch bald beisam :D
  15. Weichei

    Weichei New Member

    Kukuk!

    ... hab' dass! :D

    Auf'm Screenshot siehst Du VNC mit meinem Laptop und Seriell2TCP. Das Programm holt die Daten von COM1 ab, trennt sie und schickt sie übern telnet im Line-Modus zu meinem anderen Rechner.

    Dort hab ich ein zweites Programm geschrieben, was sich mit dem Seriell2TCP verbindet und die Daten auf einen virtuellen 0-Modem Port schaufelt (com0com http://com0com.sourceforge.net/).

    an der andere Seite des 0-Modem Ports lauert Logview auf die Daten. Wenn Logview (so wie Hyperterminal) auch Telnet sprechen würde, gings auch ohne das 2. Programm und ohne com0com ;)

    So 1:03 Uhr! Ab in die Heia! :eek: Ich meld' mich morgen wieder

    Gruß

    Claus

    PS: 96kb ist echt sehr klein für'n Bild...

    Attached Files:

  16. Dominik

    Dominik Administrator Staff Member

    Moin !

    *Augenreib* Cool :eek:

    Ich habe da zwie Sachen zu sagen ...
    1) Kannst du bitte mal alle seriellen Port Tools mit Link hier posten die du kennst? Kann es sein dass das jetzt schon das zweite Proggy ist, welches sehr nützlich ist und im Netz frei erhältlich ist?
    Da waren jetzt Com0Com und telnet2Com von HW-Group.
    Kennst du noch mehr davon ??

    2)
    Also es wäre nich so kompliziert das in LogView einzubauen. Dann könnte man sogar zwei Möglichkeiten schaffen:
    a) LogView spricht Telnet
    b) LogView hat seinen eigenen TCP Server / Client im Bauch (das haben wir schon mal erfolgreich getestet).

    Ach und nochwas ... Kannst du mal die Quellen hier Online stellen? Würde mich mal interessieren.

    Nimm als Grafikformat PNG ...
  17. Space

    Space New Member

    Logview goes IP :jo:

    Die Längenbeschränkung der RS232 ist Geschichte und eröffnet ungeahnte Möglichkeiten.
    Demnächst werde ich im Livestream über das Internet meine Logviewdaten zur Verfügung stellen. Quasi Logview-TV.
    Hoffentlich guckt ihr auch alle zu, wie mein Akku lädt....aber nicht einschlafen dabei.;)

    Ein anders Geschäftsmodell währe nun auch möglich. "Dr. Akku", wir diagnostizieren ihren kranken Akku nun auch remote.


    Super Arbeit Weichei :respekt:
  18. Dominik

    Dominik Administrator Staff Member

    Die Idee hat was.

    Ich habe mitlerweile auch mal etwas Recherche betrieben.

    Diese Geschichte mit com0com ist ja der Oberhammer. Damit kann man ja allen möglichen kranken seriellen Mist anstellen :D Ich glaube ich schreibe dafür mal ne GUI ... :rolleyes:
  19. Weichei

    Weichei New Member

    Aaaach gemoie!

    ..... so viele kenne ich ja auch nicht :) ! Also das com0com - Ding ist wirklich praktisch, wenn man mit den COM-Ports rumwuschtelt. Sonst hab' ich eigentlich alles gepostet, was wichtig und gut ist. Für Linux den "sredird" vielleicht noch. Der macht im Prinzip das gleiche wie mein "seriell2TCP" in der ersten Version (also ohne "zusammenpacker").
    Damit könnte man dann auch so Schweinereien machen, wie einen SBC (Singelboard Computer) kleinster Leistungsklasse nehmen und 4 COMPorts über's Netz schieben :D.

    Ich würde die erste nehmen. Du setzt damit auf einen vorhanden Standard auf und bist damit auch für andere Betriebsysteme und auch Hardware (Es gibt auch seriell2TCP-Wandler als Hardwarekisten) gewappnet.
    Wenn Du nur ein kleines Tool hast, was minimale Resourcen braucht ist das glaube ich flexibler.

    Nein kann ich nicht! .....weil die Anhangsgröße nicht reicht :D.

    Ich versuch's Dir mal auf anderem Wege zukommen zu lassen.

    Gruß

    Weichei
  20. Weichei

    Weichei New Member

    ... guggst Du Post :D.

    Claus

Share This Page