astarot
Goto Top

Daten über Serielle Schnittstelle Empfangen und in Variable speichern

Hallo zusammen, Ich habe ein Problem mit der seriellen Kommunikation und Suche mir schon den ganzen Tag die Finger wund um auf einen Lösungsansatz für mein Problem zu kommen.

Ich habe folgendes vor ->

Ich möchte eine Datenverbindung zwischen einem PC und einem Mikrocontroller über die Serielle Schnittstelle am PC herstellen. Als PC wird eine Embedded Platform in einem Prüfadapter eingebaut der ohne PC Monitor laufen soll und lediglich eine Handvoll an Statusmeldungen an den Benutzer per LCD ausgeben sollte wie z.B. OS booting oder Flash in Progress o.Ä. Der Bediener soll per Tastendruck am Adapter die Vorgänge im PC starten sollen.

Der Mikrocontroller soll dem PC Informationen zusenden (maximal 2 einfache ASCII Zeichen) damit der PC weiß welches Programm er starten soll (es geht dabei um ein Flashprogramm für DSP´s).

Der PC soll dem Mikrocontroller 2 ASCII Zeichen zusenden können um vordefinierte Texte an einem LCD auszugeben um z.B. den Programmierstatus dem Anwender auszugeben.

Die Verbindung zwischen den Welten erfolgt über die gute alte Com Schnittstelle. Gesteuert sollte das ganze per Batch werden!

Nun habe mittlerweile sowohl den Teil der Batch welche mir das Flashtool kommandozeilenorientiert aufruft fertig, sowie die Steuerung der notwendigen Hintergrundschritte um das flashen auszuwerten, es fehlt mir PC-seitig nur noch die Verbindung über Seriell.

Daten zur Schnittstelle zu senden funktioniert mittlerweile mit " type %befehl%> Com3" zufriedenstellend, leider ist der umgekehrte Weg anscheinend etwas schwieriger.

Folgende Ansätze habe Ich bereits versucht:

Programm Putty habe ich mittlerweile soweit, dass es mir ein Terminalfenster aufmacht und fleißig anzeigt, was Ich an die entsprechende Com Schnittstelle sende. Das wars allerdings auch schon. Ich kriege die Informationen nicht vom Bildschirm in eine Variable, geschweige denn Putty nach Aufruf wieder geschlossen....

Terminalprogramme wie z.B. Hterm haben anscheinend keine Möglichkeit einfach nur aufgerufen zu werden um Daten weiterzugeben.

Der Batch Befehl "type com3>test.txt" funktioniert Prima und es werden mir auch alle Zeichen fleißig angezeigt, aber leider weder in eine Variable geschrieben, noch kriege Ich das CMD Fenster per Befehl wieder zu, da die Batch anscheind auf ewiglich bei dieser Programmzeile hängen bleibt.

Ich habe mittlerweile geringfügige Batch Kentnisse aber weiter reicht mein Wissen leider nicht, bin aber gerne bereit jederzeit dazu zu lernen. Ich will keine fertige Lösung haben sondern auf den richtigen Weg gebracht werden damit Ich das Problem in den Griff kriege..

Ich danke euch schonmal im Voraus für die Unterstützung face-smile)

Mfg

Astarot

Content-Key: 168987

Url: https://administrator.de/contentid/168987

Printed on: April 24, 2024 at 05:04 o'clock

Member: Astarot
Astarot Jul 02, 2011 at 10:18:35 (UTC)
Goto Top
Es scheint also keiner eine Lösung zu haben. Naja notfalls würde Ich auch den Parallelport zur Ein-/Ausgabe verwenden... Hat das schonmal einer per Batch gemacht oder geht kein Weg an VB bei meinem Problem vorbei ?!?
Member: bastla
bastla Jul 02, 2011 at 11:15:50 (UTC)
Goto Top
Hallo Astarot!

Wenn
type com3>test.txt
grundsätzlich funktioniert, könnte das Übertragen eines EOF-Zeichen (ASCII dez 26) helfen ...

Danach wäre dann die Datei einfach per
for /f "delims=" %%i in (test.txt) do echo %%i
zeilenweise auszulesen und weiter zu verabeiten.

Grüße
bastla
Member: Astarot
Astarot Jul 02, 2011 at 13:05:04 (UTC)
Goto Top
Hallo Bastla.

Danke für den Tip, aber Ich kriege es nicht hin das EOF per HTerm zu senden. Ist bestimmt möglich, aber Ich kriegs nicht hin.

Mittlerweile habe Ich mich schon etwas mehr auf die Parallele Schnittstelle eingeschossen, da mir theoretisch ein paar Ein-/Ausgänge für das Projekt reichen. Will ja "nur" Statusmeldungen anlegen.

Ist aber anscheinend auch nicht ganz so einfach wie ich bis jetzt herausgekriegt habe. Unter VB gibts wohl genug Ansätze, müsste mich halt erst in VB einarbeiten. Lieber wäre es mir natürlich wenn Ich soviel
wie irgendwie geht "geBatcht" kriege da VB für mich nur eine weitere Baustelle bedeutet die Ich bearbeiten müsste. Wenns anders nicht geht wär das halt so, aber Batch wär mir halt lieber.

Nun ist ja der LPT-Port anscheinend seit NT>aufwärts nur noch über dll´s zu erreichen (ergaben meine bisherigen Recherchen) aber Ich finde es irgendwie eigenartig das man so wenig über Schnittstellenverwendung im Netz findet. Ist meine Anwendung so etwas besonderes???

mfg

Astarot
Member: bastla
bastla Jul 02, 2011 at 13:57:03 (UTC)
Goto Top
Hallo Astarot!

Muss ja vielleicht nicht gleich VB sein - hier gäbe es einen Ansatz für VBS (kostet allerdings) - Alternative zB hier beschrieben ...

Grüße
bastla