Forum: PC-Programmierung kleines Windows Programm zum Senden eines Befehles an die serielle Schnittstelle


von Chris S. (chris606)


Lesenswert?

Hallo,

ich möchte ein kleines Windows Programm erstellen das einen Button hat 
und wenn der betätigt wird, wird z.B. ein Byte an die serielle 
Schnittstelle COM1 geschickt.

Nun ist die Frage mit welchen kostenlosen Tools kann ich das am 
einfachsten machen? Hat da evtl. jemand ein Beispiel?

Gruß
Christian

von Borislav B. (boris_b)


Lesenswert?


von Peter Pan (Gast)


Lesenswert?


von Georg (Gast)


Lesenswert?

Chris S. schrieb:
> Nun ist die Frage mit welchen kostenlosen Tools kann ich das am
> einfachsten machen?

Warum nicht copy?

Georg

von Spezi (Gast)


Lesenswert?

Georg schrieb:
> Warum nicht copy?

Ich liebe solche Einwürfe. Die Anforderungen nicht richtig gelesen. Ein 
Wort reingeworfen und keine weitere Begründung.
Warum erfüllt Deiner Meinung nach diese Lösung die Anforderung des TO?
Wie machst Du den Button im Programm?

von Amateur (Gast)


Lesenswert?

Wenn Du unter "senden" eines Befehles, ein paar ASCII-Zeichen über die 
serielle Schnittstelle verschicken meinst, da wurden hier in den Foren 
mehrere Programme entwickelt und besprochen.

Suchet so werdet Ihr finden!

von autoit (Gast)


Lesenswert?


von seho85 (Gast)


Lesenswert?

Wenns auch ohne Button geht einfach die Windows Shell nutzen.
1
echo command > COMn

Wobei COMn eine im Gerätemanager vorhandene Schnittstelle sein muss.

MfG
seho85

von Peter Pan (Gast)


Lesenswert?

seho85 schrieb:
> Wenns auch ohne Button geht einfach die Windows Shell nutzen.
>
>
1
> echo command > COMn
2
>
>
> Wobei COMn eine im Gerätemanager vorhandene Schnittstelle sein muss.
>
> MfG
> seho85

Nein, so einfach funktioniert das nicht. Du hättest da jetzt z.B. ein 
Leerzeichen, CR und LF hinten dran.

https://batchloaf.wordpress.com/2013/02/12/simple-trick-for-sending-characters-to-a-serial-port-in-windows/

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter Pan schrieb:
> Nein, so einfach funktioniert das nicht.

Datei mit gewünschtem Inhalt erzeugen und dann

copy datei COMn /b

von Joachim B. (jar)


Lesenswert?

Rufus Τ. F. schrieb:
> Datei mit gewünschtem Inhalt erzeugen und dann
>
> copy datei COMn /b

kann man sogar als "Icon" auf den Desk legen das wäre der "Button" der 
nur angeklickt werden muss

von Mike (Gast)


Lesenswert?

>ich möchte ein kleines Windows Programm erstellen das einen Button hat
>und wenn der betätigt wird, wird z.B. ein Byte an die serielle
>Schnittstelle COM1 geschickt.

Welches Byte? immer das selbe oder frei wählbar/eingebbar? Soll die 
Com-Port Nummer, Baudrate, Parity etc. hard codiert sein, oder 
einstellbar sein?

Fragen über Fragen...

von c-hater (Gast)


Lesenswert?

Spezi schrieb:

> Ich liebe solche Einwürfe.

Ich solche wie deinen, die von vollkommener unschöpferischer Inkompetenz 
zeugen.

Wo kommt der Button her? Ganz einfach: man erzeugt eine Verknüpfung auf 
eine *.cmd oder *.bat-Datei, die genau diese ein primitive Anweisung 
enthält. Was denn sonst? Die Verknüpfung wird dann auf dem Desktop oder 
an beliebiger Stelle im Startmenü oder auch einfach nur in irgendeinem 
x-beliebigen Verzeichnis plaziert. In jedem Fall wird explorer.exe 
daraus einen anklickbaren Button erzeugen.

Das ist so trivial, dass sogar komplette Voll-DAUs auf diese Idee kommen 
könnten. Dein Niveau bewegt sich aber offensichtlich noch einmal weit 
darunter...

von Manfred (Gast)


Lesenswert?

autoit schrieb:
> Meine Empfehlung:
> Autoit (https://www.autoitscript.com)
AutoIT kenne ich seit gut 13 Jahren, aber eine ordentliche Anbindung zu 
den COM-Ports vermisse ich bislang. Ich habe einige Dinge probiert, bin 
aber stets dran gescheitert, sauber zu erkennen, ob eine andere 
Anwendung ihre Finger am Port hat.

Gibt es inzwischen eine ordentliche Com.dll oder wurde das endlich 
integriert?

von Chris S. (chris606)


Lesenswert?

Also bevor ihr euch schlagt, ich versuch mal Autoit und wenns damit 
nicht geht dann halt doch mit C# und Visual Studio.
Über eine Batch Datei habe ich schon längst versucht bevor ich hier 
fragte, das läuft aber nicht zufriedenstellend.
Es soll eine ausführbare exe werden die erstmal nur ein bis zwei Byte 
sendet, Com Port auswählbar, restliche Schnittstelleneinstellungen fest 
verdrahtet.
Im weiteren Verlauf soll sie vielleicht zwei bis drei Buttons haben mit 
anderen Schnittstellenbefehlen.

Danke!
Gruß
Christian

von Joachim B. (jar)


Lesenswert?

Chris S. schrieb:
> exe werden die erstmal nur ein bis zwei Byte
> sendet, Com Port auswählbar, restliche Schnittstelleneinstellungen fest
> verdrahtet.
> Im weiteren Verlauf soll sie vielleicht zwei bis drei Buttons haben

hätte das nicht in den ersten Beitrag gehört?

Salamitaktik ist immer unschön.

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Müsste gehen ist ein kleines Programm zum senden und emfpangen in C# 
WindowsForm.

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hatte sich in der schnelle ein Fehler eingeschlichen, indem Eventhändler

Falsch
1
private void button3_Click(object sender, EventArgs e)
2
        {
3
4
            theSerialPort.WriteLine(textBox1.Text);
5
        }

Korrekt
1
private void button3_Click(object sender, EventArgs e)
2
        {
3
4
            theSerialPort.WriteLine(textBox2.Text);
5
        }

von Frank S. (steini63)


Lesenswert?

Fertiges Programm mit konfigurierbaren Buttons:
http://www.da-share.com/software/serial-buttons

von peter (Gast)


Lesenswert?

echo command > COMn

Wie sieht hier der umgekehrte Fall aus zum Empfangen über die Shell?

Danke.
Gruss

von Frank S. (steini63)


Angehängte Dateien:

Lesenswert?

Ich möchte mal ein weitgehend unbekanntes Programm ins Rennen schmeißen 
- den "Liberty Basic Booster" kurz LBB.

Nach einem Download von gerade mal 0,5 MB (!) steht eine komplette 
Programmiersprache mit Editor und Debugger zur Verfügung. Es wird ein 
Basic Dialekt verwendet, der nahezu vollständig Syntax-kompatibel zu 
Liberty Basic ist. Während Liberty Basic ein kommerzielles Produkt ist, 
steht uns LLB als Freeware zur Verfügung. LBB kann eigenständige 
exe-Dateien erstellen, die ca. 120 kb groß werden (interpretierter 
Bytecode; Windows 32bit).

Was LBB für uns Mikrocontroller-Befummler interessant macht: Die 
Unterstützung der seriellen Schnittstelle ist schon eingebaut. Auch GUIs 
lassen sich leicht erstellen. Ein minimalistisches Programm, das den 
Anforderungen des TE entspricht, ist mit weniger als 40 Programmzeilen 
geschrieben. Mein eigener Versuch kann im Anhang "bewundert" werden. Ich 
muss dazu erwähnen, dass das meine ersten Gehversuche in LBB sind. Eine 
intelligentere Auswahl der Comports und eine bessere Fehlerbehandlung 
wären sinnvolle Erweiterungen.

Die Liberty Basic Online Hilfe hilft sehr gut bei den ersten Versuchen. 
Aber aufpassen beim Befehl zum Öffnen der seriellen Schnittstelle. Das 
ist einer der (sehr) wenigen Fälle, wo die LBB-Syntax abweicht. Hier 
unbedingt auch das LBB Manual zu Rate ziehen.

Vielleicht ist LBB für den einen oder anderen interessant. Falls nicht - 
auch gut, Hauptsache kein weiterer Programmiersprachen-Religionskrieg.

LBB bezogene Links:
LB Booster Homepage  http://www.lbbooster.com
LB Booster Help manual  http://www.bbcbasic.co.uk/lbb/lbb.html
LB Booster Wiki  http://bb4w.wikispaces.com/LB+Booster
LB Booster Forum  http://lbb.conforums.com

Liberty Basic bezogene Links:
Liberty BASIC Homepage  http://www.libertybasic.com
Liberty BASIC Online Help  http://www.libertybasicuniversity.com/lb4help
Liberty Basic Programmer's Encylopedia  http://lbpe.wikispaces.com
Liberty Basic Forum  http://libertybasic.conforums.com
Liberty BASIC Support Group 
https://groups.yahoo.com/neo/groups/libertybasic/info

Grüße
Frank

von Paul B. (paul_baumann)


Lesenswert?

Frank S. schrieb:
> Vielleicht ist LBB für den einen oder anderen interessant.

Danke für den Hinweis und die Links. Ich nehme sonst Purebasic. Das 
gucke ich mir aber auf jeden Fall an.

MfG Paul

von Frank S. (steini63)


Angehängte Dateien:

Lesenswert?

Ich habe das kleine LBB Comport-Sendeprogramm modifiziert. Es werden 
jetzt alle verfügbaren Comports in der Combobox angezeigt. Außerdem 
werden fast alle möglichen Bedienerfehler abgefangen. Es ist bei weniger 
als 40 Programmzeilen geblieben.

Weil ich gerade so schön in Fluss war, habe ich noch ein 
Empfangsprogramm ergänzt. Es hat keine GUI, sondern nutzt das 
LBB-Konsolenfenster. Es wird einfach der höchste verfügbare Port 
geöffnet und die ankommenden Daten angezeigt. Realisiert mit genau 31 
Netto-Programmzeilen.

Gedacht sind die kleinen Programme als "Startrampe" für eigenen 
Projekte.


Grüße
Frank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.