mikrocontroller.net

Forum: PC-Programmierung RS232 Daten durchschleifen und analysieren


Autor: Michael A. (ivolein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe ein Frage zur Programmierung von Seriellen Schnittstellen
unter C++. Hier mein eine kurze Beschreibung von meinem "Aufbu".

PC 1 [com1] ---> [adapter:com1] PC2 [adapter:com2] ---> Steuergerät

Die Kommunikation zwischen PC1 und Steuergerät erfolgt über eine RS422
Schnittstelle. Ich möchte mit Hilfe von einem zweiten PC (PC2) die
Kommunikation zwischen PC1 und Steuergerät überwachen und evt.
aufzeichnen. Dazu habe ich eine Adapterkarte RS422-> USB gekauft. Diese
Adapterkarte stellt zwei Serielle Schnittstellen zur verfügung.
Ich möchte jetzt auf PC2 ein Programm laufen lasse, dass die Daten von
COM1 liest und dann  evt. auswertet, mitloggt, verändert und danach die
Daten wieder über den Adapter (com2) zum Steuergerät schickt. Das
Datenprotokoll das mit Hilfe der RS422 überträgen wird ist mir
bekannt.
Sowas müsste doch machbar sein.
Nun zu meiner Frage...
Wie realisiere ich so was Softwäretechnisch ?
Daten empfängen und Puffern ? Ohne Puffern ? Daten.....

Vielen Dank... Michael

Autor: Blackbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal abgesehen davon, dass da 2 getrennte Adapter RS422<->RS232 am PC2
haengen sollten, ist die Software stark vom OS abhaengig.

Blackbird

Autor: Michael A. (ivolein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Software soll auf einem Laptop mit WindowsXP laufen.
Die beiden Adapter werden auch als zwei Com-Schnittstellen ohne
Probleme erkannt.

Michael

Autor: Blackbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine (mögliche) Lösung könnte so aussehen:
Ein WinMain-Prog erstellt ein Windows (die CALLBACK-Prozedur) mit
Deiner GUI, den Menüs, Buttons, Edits, Comboboxes oder was auch immer
Du haben möchtest um die Daten zu kontrollieren, zu speichern, zu
verändern ...

Dort werden auch, z.B.: via Menü, die COM-Ports ausgewählt und Dein
voreingestelltes oder ausgewähltes gewünschtes Prozessing gestartet,
indem 2 Threads erstellt und gestartet (mit den entsprechenden
Schnittstellen- und Protokoll-Parametern) werden, je eine für jede
COM.

Die machen nichts weiter als ständig an den COMs lauschen und alle
Empfangenen Daten sofort an Deine CALLBACK-Prozedur zu senden.
Wie es hier weitergehen soll, konnte ich aus Deinem Post nicht so
richtig entnehmen. Wenn Du sie nur monitoren willst, können sie nach
der Darstellung in z.B.: einem Editfenster, gleich per WriteFile an die
jeweils andere COM gesendet werden. Willst Du sie aber ändern, so mußt
Du sie solange verzögern, bis Du sie (verändert und) abgeschickt hast.
Oder Du läßt sie durch einen konfigurierbaren Filter laufen.

Gepuffert werden sie unter Windows 2 mal, einmal in der Hardware (meist
16 Byte) und im (einstellbaren) Read- /Write-Buffer der COM-Treiber.

Wenn Du weißt, was geändert werden soll und Du das nicht on-the-fly
ändern willst, so reicht auch ein DOS32-Programm. Drei Threads wirst Du
aber trotzdem brauchen (2x für die COMS und einen für den Filter).

Blackbird

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.