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?
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
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:
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.
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/abouthttps://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.
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)
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.
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!
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.
KVKommandozeile vor dem Frühstück für Alle!Gast#4740176
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...)
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.
Eine eigene Frage?
Dieser Thread ist über 10 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.