Forum: Mikrocontroller und Digitale Elektronik Tool zum senden vom Commands via Com Port


von TRJ (Gast)


Lesenswert?

Kennt jemand ein Tool mit dem ich quasi rohe Hexdaten senden kann? Mit 
einem Console Tool kann ich ja nur Zeichen schicken, wenn ich aber etwas 
wie 0x04 senden möchte - was nehme ich da? Oder ist selber schreiben am 
einfachsten?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dafür gibt es Tools wie "bray" oder "hterm".

http://www.der-hammer.info/terminal/

von Volker S. (vloki)


Lesenswert?

Br@y Terminal, Hterm ...
Selber schreiben geht auch -> 
http://www.hs-ulm.de/nocache/wir/Personal/PersonalSaSchr/vschilli/QtProjekte/

von TRJ (Gast)


Lesenswert?

Perfekt, habt Dank!

von Helen (Gast)


Lesenswert?


von Yalu X. (yalu) (Moderator)


Lesenswert?

TRJ schrieb:
> Mit einem Console Tool kann ich ja nur Zeichen schicken, wenn ich aber
> etwas wie 0x04 senden möchte - was nehme ich da?

Man muss nicht für jede Kleinigkeit ein spezielles Programm installieren
oder gar selber schreiben. Für einfache Probleme gibt es meistens auch
einfache Lösungen mit bestehenden Tools.

Der Echo-Befehl (sowohl der aus der Bash als auch der aus den Coreutils)
kann auch Strings mit den aus C bekannten Escape-Sequenzen ausgeben.

Beispiel:

1
echo -en "\x00\x01\x02\x03\x04\xff" >/dev/ttyS0

Für häufig wiederkehrende Bytefolgen kannst du Shell-Variablen
verwenden:

1
B1="\x0A\x0B\x0C\x0D\x0E\x0F"
2
B2="\xC0\xDE\xAF\xFE\xEB\xBE\xCA\xFE"
3
echo -en "$B1\xff\xff$B2" >/dev/ttyS0
4
# --> sendet 0A 0B 0C 0D 0E 0F FF FF C0 DE AF FE EB BE CA FE

von Draco (Gast)


Lesenswert?

Yalu... nicht jeder, ich sage mal sogar der kleinste Teil, nutzt Linux.

von STK500-Besitzer (Gast)


Lesenswert?

Draco schrieb:
> Yalu... nicht jeder, ich sage mal sogar der kleinste Teil, nutzt Linux.

Etwas anders dürfte es auch in der Windows "Shell" gehen:
echo BLABLA>COM1:

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

STK500-Besitzer schrieb:
> Etwas anders dürfte es auch in der Windows "Shell" gehen:

Sicher, aber das ist mit Steuerzeichen so nicht umsetzbar.

Die müssen mit einem geeigneten Editor in eine Datei geschrieben werden, 
die dann mit copy /b auf die Schnittstelle kopiert wird.

Arges Gefrickel.

Bei beiden Vorgehensweisen sieht man nicht die Reaktion des Gerätes, 
insofern ist so ein Schnittstellentester à la bray/hterm doch eindeutig 
zu bevorzugen, auch wenn es der Linux-Philosophie (mache alles mit der 
shell) widerspricht.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Draco schrieb:
> Yalu... nicht jeder, ich sage mal sogar der kleinste Teil, nutzt Linux.

Das funktioniert auch unter Mac OS X, wenn man den Device-Namen der
Schnittstelle entsprechend ändert, und sogar unter Windows (wohlbemerkt
ohne MSYS, Cygwin und Konsorten), wenn man mit wenigen Klicks das
"Windows Subsystem for Linux" aktiviert, das offizieller Bestandteil der
neuesten Windows-Version ist:

  https://msdn.microsoft.com/commandline/wsl/about
  https://msdn.microsoft.com/en-us/commandline/wsl/install_guide

Mein Vorschlag ist also mitnichten nur für Linux-User von Bedeutung.

Rufus Τ. F. schrieb:
> Bei beiden Vorgehensweisen sieht man nicht die Reaktion des Gerätes,
> insofern ist so ein Schnittstellentester à la bray/hterm doch eindeutig
> zu bevorzugen

Ja, das ist natürlich ein Argument für ein hex-fähiges Terminalprogramm.
Ich hatte allerdings nicht den Eindruck, dass der TE auch Daten von der
Schnittstelle empfangen möchte.

von Bernd K. (prof7bit)


Lesenswert?

Es gibt sogar ne Abteilung im hiesigen Wiki:

https://www.mikrocontroller.net/articles/RS-232#Terminalprogramme

(allerdings ist es zugegebenermaßen nicht leicht die zu finden, selbst 
wenn man weiß daß sie existiert, das wiki ist leider (prinzipbedingt?) 
so chaotisch und unstrukturiert daß man nur zufällig über interessante 
Sachen stolpern kann)

von Draco (Gast)


Lesenswert?

Ich kann mich ja morgen mal ransetzen und ein ganz simples HEX 
Terminalprogram schreiben, dürfte ja in zwei/drei Stunden umsetzbar 
sein. Ich selbst nutze immer HTERM - aber ich gebe da auch ganz offen 
zu. Das ist für ne Terminalausgabe / Umsetzung schon nen bissle Overkill 
mitunter. Genauso wie Putty.

von Volker S. (vloki)


Lesenswert?

Draco schrieb:
> Ich kann mich ja morgen mal ransetzen und ein ganz simples HEX
> Terminalprogram schreiben,

Wozu?
(Es gibt doch schon genug, wenn  man nicht gerade etwas für einen ganz 
speziellen Anwendungsfall optimiertes will)



Die zwei erstgenannten schienen dem TE ja auch schon gut genug.

TRJ schrieb:
> Perfekt, habt Dank!

von Manfred (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Etwas anders dürfte es auch in der Windows "Shell" gehen:
> echo BLABLA>COM1:
Rufus Τ. F. schrieb:
> Sicher, aber das ist mit Steuerzeichen so nicht umsetzbar.
>
> Die müssen mit einem geeigneten Editor in eine Datei geschrieben werden,
> die dann mit copy /b auf die Schnittstelle kopiert wird.

Dir ist Alt+Ziffernblock bekannt?
Die Alt-Taste halten und am Ziffenblock dreistellig dezimal eingeben 
erzeugt jedes beliebige Zeichen.

von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

Draco schrieb:
> Yalu... nicht jeder, ich sage mal sogar der kleinste Teil, nutzt Linux.

Und f. Alle Windowsknechte gibt's CygWin zum installieren: somit gelten 
solche Hinweise als universell, aka portabel.
(installieren ist ja die Lieblingstätigkeit mit Windows...)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Manfred schrieb:
> Die Alt-Taste halten und am Ziffenblock dreistellig dezimal eingeben
> erzeugt jedes beliebige Zeichen.

Das schon, nur bringt das bei Steuerzeichen nicht viel, weil viele davon
(Backspace, Carriage Return, Tab usw.) bereits bei der Eingabe gesondert
interpretiert werden und damit nicht an Kommandos wie echo als Argument
übergeben werden können.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und nicht nur Steuerzeichen, auch so Banalitäten wie > oder < können so 
nicht transportiert werden.

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.