Hallo Forum, ich finde für folgendes Problem, auch nach gefühlten zehn Stunden Googeln, keine Lösung. Wie kann ich über die serielle Schnittstelle größere Werte als 127 übertragen?
Zeichen größer 127 übertragen
-
raspianfänger -
30. Juli 2015 um 15:09 -
Erledigt
Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
-
-
Zeichen größer 127 übertragen? Schau mal ob du hier fündig wirst!
-
ähm ... einfach rausschreiben :s
Ich verstehe Dein Problem jetzt ehrlich gesagt nicht ...Welche Sprache nutzt Du?
cu,
-ds- -
Am liebsten wäre mir, einfach über ein bash-skript. Also einfach z.B. ein Skriptname und die Zahl als Option dahinter und dann alles über die Serielle Schnittstelle. Wobei ich nur die Funtion bräuchte.
-
per echo mit Umleitung: echo "xxxx" > /dev/ttyAMA0
per cat mit Umleitung: cat {irgendeineDatei} > /dev/ttyAMA0
per minicom durch Eingabe: minicom -D /dev/ttyAMA0
aus einem C-Programm: write(fd, "hello world", strlen("hello world"));
aus einem Pfuiton script: ...
...
Such Dir was aus ...cu,
-ds- -
Raspianfänger, ich glaube die Antwort die du suchst lautet "als String".
die tatsächliche Bitbreite eines Zeichens ist begrenzt, du kannst also nur eine Zahl bis 2^x übertragen, laut deiner Aussage 127 damit wären das 2^8 und damit ein Byte, klingt vernünftig, aber ich guck das jetzt nicht nach.
Wenn du aber einfach den String "37654638" überträgst, dann muss dir auf der anderen Seite nur klar sein, dass du das wieder als Zahl interpretieren willst und schon ist dein Problem gelöst. -
Bis 127 gibt es eigentlich keine Probleme, aber welche Strings sind für größere Zahlen al 127 zuständig. Ich habe es bisher mit "per echo mit Umleitung: echo "xxxx" > /dev/ttyAMA0" gemacht, nur all meine Möglichkeiten hören halt bei 127 auf.
-
Ich denke mal Dein Problem ist nicht das Übertragen eines Zeichens dessen ASCII-Code > 127 ist sondern das Erzeugen eines solchen Zeichens
Wobei sich mir allerdings gleich die Frage stellt: wer bzw. was soll denn dann Dein ASCII-Byte jenseits der 127 auf der anderen Seite der Schnittstelle handeln?Zum Erzeugen aller möglichen Zeichen zwischen 0 und 255 würde ich jetzt einen Zweizeiler in C schreiben ...
Dem cat oder whatever ist es egal ... der überträgt auch 0 und 238 ...cu,
-ds- -
-
Fix ... ich wusste, dass das auch mit echo geht ... aber wie diese Escape-Geschichte funktioniert ist mir ums A...-lecken nicht mehr eingefallen ...
thnx,
-ds- -
Ich kann kein C. Assembler, PHP, etwas bash, Latein, Bayrisch, Deutsch, fraktal Englisch, damit wäre mein Sprachschatz erledigt . Danke für die Hilfe. Das ist die Lösung meines Problems.
-
Jetzt habe ich doch noch ein kleines Problem. Wenn ich mit echo "$2" > /dev/ttyAMA0 Daten übertrage, wird am Ende ein komisches Zeichen mit übertragen, immer, egal wieviel Bytes ich übertrage, dieses komische Zeichen ist immer am Ende vorhanden. Könnt ihr euch vorstellen warum. Ich habe schon mit den Einstellungen von stty rumgespielt hat aber nichts geholfen.
x x
xx xx
x xx
xxxxx
x xx
x
x x
x xxxSo ungefähr sieht das Zeichen aus.
-
Zeilenvorschub?
Versuch malZitat
echo -n "$2" > /dev/ttyAMA0cu,
-ds- -
Jetzt habe ich doch noch ein kleines Problem. Wenn ich mit echo "$2" > /dev/ttyAMA0 Daten übertrage, wird am Ende ein komisches Zeichen mit übertragen, immer, egal wieviel Bytes ich übertrage, dieses komische Zeichen ist immer am Ende vorhanden. Könnt ihr euch vorstellen warum. Ich habe schon mit den Einstellungen von stty rumgespielt hat aber nichts geholfen.
x x
xx xx
x xx
xxxxx
x xx
x
x x
x xxxSo ungefähr sieht das Zeichen aus.
Automatisch zusammengefügt:
Tschuldigung falscher Fehler von mir
Automatisch zusammengefügt:
Super. das war die Lösung. Ihr habt mir mein WE gerettet. Vilen Dank. :thumbs1:
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!