gerätesteuerrung via serielle der DBOX
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
gerätesteuerrung via serielle der DBOX
hi 2 all
ich brauche bitte hilfe von einem einen linux-dbox-profi
zur übersicht
ich habe meine dbox2
version=0200200503151235
creator=JtG-Team
an einem 42" plasma hängen ~~~
dieser hat einen serielle schittstelle über die man
neben der auswahl der videoquelle, laut oder leise den plasma auch abdrehen (standby) und aufdrehen kann
ich hab mir am pc ein kleines .vbs gebaut ... geht super NUR
ich wollt das eigentlich über die dbox machen !!! ???
die code zum aus- und einschalten sind
on = "9F 80 60 4E 00 CD" & vbcrlf
off = "9F 80 60 4F 00 CE" & vbcrlf
und das mit serial.Settings = "9600,O,8,1"
nun meine frage und bitte
wie könnt man beim abdrehen der dbox ~~~ shutdown oder standby das "off"
und beim booten oder start aus standby das "on" auf der seriellen schicken ???
einige stichwörtern zur selbsthilfe würden mir auch schon weiterhelfen
denn "RS232" und "serielle schnittstelle" sowie "nullmodemkabel" und "dbox" bringt immer nur "wie flashe ich die box" ~~~
z.b. was ist die com unter linux ... ein device ??? ttys0 oder sowas ??
ich seh im boot manager 9600 d.h. die serielle geht mit 9600 aber
geht sie das mit 9600,O,8,1 oder mit 9600,N,8,1 und
kann man die einfach für meinen gebrauch umstellen denn der plasma geht mit 9600,O,8,1
unter win(DOS) würd ich mit echo 9F 80 60 4E 00 CD > com1: beginnen sofern die com offen ist ... wenn nicht mit mode aufmachen ...
wie geht sowas unter linux ??? echo "9F 80 60 4E 00 CD "> \dev\ttys0 ?
vorsicht ... ich bin kein linuxer könnt mühsam werden ;-)
lg
newi
ich brauche bitte hilfe von einem einen linux-dbox-profi
zur übersicht
ich habe meine dbox2
version=0200200503151235
creator=JtG-Team
an einem 42" plasma hängen ~~~
dieser hat einen serielle schittstelle über die man
neben der auswahl der videoquelle, laut oder leise den plasma auch abdrehen (standby) und aufdrehen kann
ich hab mir am pc ein kleines .vbs gebaut ... geht super NUR
ich wollt das eigentlich über die dbox machen !!! ???
die code zum aus- und einschalten sind
on = "9F 80 60 4E 00 CD" & vbcrlf
off = "9F 80 60 4F 00 CE" & vbcrlf
und das mit serial.Settings = "9600,O,8,1"
nun meine frage und bitte
wie könnt man beim abdrehen der dbox ~~~ shutdown oder standby das "off"
und beim booten oder start aus standby das "on" auf der seriellen schicken ???
einige stichwörtern zur selbsthilfe würden mir auch schon weiterhelfen
denn "RS232" und "serielle schnittstelle" sowie "nullmodemkabel" und "dbox" bringt immer nur "wie flashe ich die box" ~~~
z.b. was ist die com unter linux ... ein device ??? ttys0 oder sowas ??
ich seh im boot manager 9600 d.h. die serielle geht mit 9600 aber
geht sie das mit 9600,O,8,1 oder mit 9600,N,8,1 und
kann man die einfach für meinen gebrauch umstellen denn der plasma geht mit 9600,O,8,1
unter win(DOS) würd ich mit echo 9F 80 60 4E 00 CD > com1: beginnen sofern die com offen ist ... wenn nicht mit mode aufmachen ...
wie geht sowas unter linux ??? echo "9F 80 60 4E 00 CD "> \dev\ttys0 ?
vorsicht ... ich bin kein linuxer könnt mühsam werden ;-)
lg
newi
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
Also dein Ansatz ist genau richtig,
entweder mit echo "string" >/dev/device (nur Dos benutzt Rueckwaertsschraeger!), wobei allerdings der String wohl binaer codiert werden muss, oder als kleines C-Programm.
Guck dir mal den Thread zu EIB an.
Wie man etwas mit der Seriellen unter Unix macht, findest du reichlich ueber google (Referenzcode). Erfahrungsgemaess ist es sogar einfacher als unter Windows.
entweder mit echo "string" >/dev/device (nur Dos benutzt Rueckwaertsschraeger!), wobei allerdings der String wohl binaer codiert werden muss, oder als kleines C-Programm.
Guck dir mal den Thread zu EIB an.
Wie man etwas mit der Seriellen unter Unix macht, findest du reichlich ueber google (Referenzcode). Erfahrungsgemaess ist es sogar einfacher als unter Windows.
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
@rasc
danke für die schnelle info
was ich jetzt noch ned ganz auf die reihe bring ist der mode mit dem die initializiert ist ???
ich denk mal 9600,n,8,1, und da gibt sie ja permanent asl console den debug aus ... oder ?
nun muss ich ja um auf den plasma was zu schicken das teil auf 9600,o,8,1 umstellen ... pfffffffff ... oder ist das egal
danke für die schnelle info
was ich jetzt noch ned ganz auf die reihe bring ist der mode mit dem die initializiert ist ???
ich denk mal 9600,n,8,1, und da gibt sie ja permanent asl console den debug aus ... oder ?
nun muss ich ja um auf den plasma was zu schicken das teil auf 9600,o,8,1 umstellen ... pfffffffff ... oder ist das egal
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
erster erfolg
laptop via seriell an die dbox angeschlossen ... hyperterm auf com2 aufgemacht ... TELNET am pc -> dbox ... im telnet echo "Hallo RS232" >/dev/console ... das steht dann im hyperterminal **freu**
wenn ich das hyperterminal von 9600,n,8,1, auf 9600,o,8,1 umstell ... kommen nur müll ...
d.h. ich muss das /dev/console umstellen .... hmmmmmm ... **kopfkratz**
laptop via seriell an die dbox angeschlossen ... hyperterm auf com2 aufgemacht ... TELNET am pc -> dbox ... im telnet echo "Hallo RS232" >/dev/console ... das steht dann im hyperterminal **freu**
wenn ich das hyperterminal von 9600,n,8,1, auf 9600,o,8,1 umstell ... kommen nur müll ...
d.h. ich muss das /dev/console umstellen .... hmmmmmm ... **kopfkratz**
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
hihi ... ein teilerfolg ~~~
ich versteh noch nicht warum ABER
die dbox meinte auf der console beim standby immer
/var/tuxbox/config/standby.off not found !
und beim einschalten
/var/tuxbox/config/standby.on not found !
nun hab ich die beiden files mal erstellt (chmod 777) und gleich zum testen
in die standby.off 'echo "Schalt den Plasma AUS ............................" >/dev/console'
und in die
standby.on 'echo "Schalt den Plasma EIN ............................" >/dev/console'
reingeschrieben
ich denk mal die standby.on und standby.off sind ein teil vom lirc
schau schau ... jetzt steht in der console
"Schalt den Plasma EIN ............................"
und
"Schalt den Plasma AUS ............................"
wenn ich ab oder aufdreh
das löst mein problem mit den 9600,o,8,1 noch immer nicht ~~~ aber ???
könnt ja sein das mir einer sagen kann was ich wo ummurxen muss
lg & n8
newi
ich versteh noch nicht warum ABER
die dbox meinte auf der console beim standby immer
/var/tuxbox/config/standby.off not found !
und beim einschalten
/var/tuxbox/config/standby.on not found !
nun hab ich die beiden files mal erstellt (chmod 777) und gleich zum testen
in die standby.off 'echo "Schalt den Plasma AUS ............................" >/dev/console'
und in die
standby.on 'echo "Schalt den Plasma EIN ............................" >/dev/console'
reingeschrieben
ich denk mal die standby.on und standby.off sind ein teil vom lirc
schau schau ... jetzt steht in der console
"Schalt den Plasma EIN ............................"
und
"Schalt den Plasma AUS ............................"
wenn ich ab oder aufdreh
das löst mein problem mit den 9600,o,8,1 noch immer nicht ~~~ aber ???
könnt ja sein das mir einer sagen kann was ich wo ummurxen muss
lg & n8
newi
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
newi hat geschrieben:
wenn ich das hyperterminal von 9600,n,8,1, auf 9600,o,8,1 umstell ... kommen nur müll ...
d.h. ich muss das /dev/console umstellen .... hmmmmmm ... **kopfkratz**
mit der Umstellung von Hyperterminal stellst du ja nicht die Serielle der dbox2 um. Das musst du schon mit einem Kommando machen (ist das ueberhaupt bei bussybox dabei?) bzw. eben per API-Call.
Bei Standard Unix: "man stty"
bei der dbox2 muss das per API gesetzt werden (das Kommando scheint bei den Images zu fehlen).
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
@rasc
hallo helfer
dann hätt ich ja nur beim booten den log abdrehen müssen und meine code
gingen dann via standby.on & standby.off in den plasma
hab heut viel über die serielle gelesen aber das gibt es alles ned in der box ~~~
hallo helfer
das war mir schon klar ... hatte den naiven anflug, es kommt mit 9600,o,8,1 das selbe im hyperterm an wie mit 9600,n,8,1 denn mein plasma will die code mit 9600,o,8,1mit der Umstellung von Hyperterminal stellst du ja nicht die Serielle der dbox2 um. Das musst du schon mit einem Kommando machen (ist das ueberhaupt bei bussybox dabei?) bzw. eben per API-Call.
dann hätt ich ja nur beim booten den log abdrehen müssen und meine code
gingen dann via standby.on & standby.off in den plasma
hab heut viel über die serielle gelesen aber das gibt es alles ned in der box ~~~
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
ein verdacht nimmt formen an !
das wird nix ... leider ~~~
stty und anderes was linux schön macht ... fehlt einfach in der busybox
ein neues image mit erweiterter bussybox wird nicht nur an den quellen sonderen vorallem am platz in der dbox scheitern
wär schön wenn da ein wunderwuzi mit einer lösung kommt würd
DANKe
lg newi
das wird nix ... leider ~~~
stty und anderes was linux schön macht ... fehlt einfach in der busybox
somit geht kein umstellen der rs232 auf 9600,o,8,1 UND somit kann ich auch nix an den plasma schicken!BusyBox v1.00 (2005.03.15-11:25+0000) multi-call binary
Usage: busybox [function] [arguments]...
or: [function] [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use, and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, ash, busybox, cat, chmod, clear, cp, date, dd, df, dmesg, dos2unix, du, echo, env, expr, false, find, free, grep,
halt, hostname, ifconfig, ifdown, ifup, inetd, init, insmod, kill, killall, klogd, ln, loadkmap, logger, login,
ls, lsmod, mkdir, more, mount, mv, nc, nslookup, passwd, pidof, ping, poweroff, ps, rdate, reboot, renice, rm, rmdir,
rmmod, route, sed, sh, sleep, sync, syslogd, tar, telnet, telnetd, test, time, touch, true, udhcpc, umount, uname,
unix2dos, uptime, vi, wget, xargs, yes
ein neues image mit erweiterter bussybox wird nicht nur an den quellen sonderen vorallem am platz in der dbox scheitern
wär schön wenn da ein wunderwuzi mit einer lösung kommt würd
DANKe
lg newi
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
Also, das schöne an Linux ist, dass die Sourcen verfuegbar sind.
... und irgendwo muss da auch das stty-Kommando dabei sein.
Ein Blick in die Man-page zeigt eine eMail-Adresse "bug-coreutils@gnu.org"
Also sollte das irgendwo bei den coreutils dabei sein (*vermut-ich-mal*)
*google anwerf*
COREUTILS: ( basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
df dir dircolors dirname du echo env expand expr factor false fmt fold
ginstall groups head hostid hostname id join kill link ln logname ls
md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort
split stat stty su sum sync tac tail tee test touch tr true tsort tty
uname unexpand uniq unlink uptime users vdir wc who whoami yes )
*gnu nachguck*
--> ftp.gnu.org
also, das sieht ganz gut aus:
ftp://ftp.gnu.org/gnu/coreutils/
Jetzt muss man das nur noch entpacken und gucken was man braucht...
(ich schaetze mal das stty-Kommando)
dann fuer die Box kompilieren und bla...
Wenn man sich allerdings durch die man-pages wuehlt (Section 3 oder 4 sind die APIs/Sys-Calls), dann findet man bestimmt auch einen Funktion zum setzen eines seriellen Devices (da schreibt man dann ein eigenes 10-Zeilen-Programm, dann passt das auch)
Blindflug:
nach etwas leses, weiteres Raten:
>> man termios
also man muss sich nur durchwuehlen.
Es ist nichts geheimnisvolles an Unix.
Ansonsten wuerde ich es einfach wie folgt machen:
Man klaut eben einfach den Code (google hilft auch hier "set baudrate unix source C":
http://www.programmersheaven.com/zone3/cat409/
oder
http://www.captain.at/electronics/pic-mmc/source.php
snip
... und irgendwo muss da auch das stty-Kommando dabei sein.
Ein Blick in die Man-page zeigt eine eMail-Adresse "bug-coreutils@gnu.org"
Also sollte das irgendwo bei den coreutils dabei sein (*vermut-ich-mal*)
*google anwerf*
COREUTILS: ( basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
df dir dircolors dirname du echo env expand expr factor false fmt fold
ginstall groups head hostid hostname id join kill link ln logname ls
md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort
split stat stty su sum sync tac tail tee test touch tr true tsort tty
uname unexpand uniq unlink uptime users vdir wc who whoami yes )
*gnu nachguck*
--> ftp.gnu.org
also, das sieht ganz gut aus:
ftp://ftp.gnu.org/gnu/coreutils/
Jetzt muss man das nur noch entpacken und gucken was man braucht...
(ich schaetze mal das stty-Kommando)
dann fuer die Box kompilieren und bla...
Wenn man sich allerdings durch die man-pages wuehlt (Section 3 oder 4 sind die APIs/Sys-Calls), dann findet man bestimmt auch einen Funktion zum setzen eines seriellen Devices (da schreibt man dann ein eigenes 10-Zeilen-Programm, dann passt das auch)
Blindflug:
Code: Alles auswählen
> man -k serial
Isserial (8) [isserial] - determines if the underlying tty of stdin is a serial line
slattach (8) - attach a network interface to a serial line
ttyS (4) - serial terminal lines
tty_ioctl (4) - ioctls for terminals and serial lines
isserial (8) - determines if the underlying tty of stdin is a serial line
mouse (4) - serial mouse interface
serialver (1) - serial version command
nach etwas leses, weiteres Raten:
>> man termios
also man muss sich nur durchwuehlen.
Es ist nichts geheimnisvolles an Unix.
Ansonsten wuerde ich es einfach wie folgt machen:
Man klaut eben einfach den Code (google hilft auch hier "set baudrate unix source C":
http://www.programmersheaven.com/zone3/cat409/
oder
http://www.captain.at/electronics/pic-mmc/source.php
snip
Code: Alles auswählen
int fd;
...
int initport(int fd) {
struct termios options;
// Get the current options for the port...
tcgetattr(fd, &options);
// Set the baud rates to ...
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
// Enable the receiver and set local mode...
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
// Set the new options for the port...
tcsetattr(fd, TCSANOW, &options);
return 1;
...
}
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
hallo rasc
danke für deine eselsgeduld und die vielen info's
sorry ... ich fang damit NIX an !!!
das hohe C ist für mich saft der aus orangen gemacht wird ... den gibt es bei aldi
und linux ist was das es auf pc's gibt ... hab ich aber ned ~~~
ich kann im google keine wörter wie COREUTILS, serialver, cfsetispeed, PARENB, u.s.w. eingeben weil ich diese nicht kenne ~~~
bitte ned bös sein ... ich verstehe deinen ansatz zur entwicklungshilfe, ehrwürdig.
kann mich nur auf meine aussage vom anfang berufen
lg
newi
danke für deine eselsgeduld und die vielen info's
sorry ... ich fang damit NIX an !!!
das hohe C ist für mich saft der aus orangen gemacht wird ... den gibt es bei aldi
und linux ist was das es auf pc's gibt ... hab ich aber ned ~~~
ich kann im google keine wörter wie COREUTILS, serialver, cfsetispeed, PARENB, u.s.w. eingeben weil ich diese nicht kenne ~~~
bitte ned bös sein ... ich verstehe deinen ansatz zur entwicklungshilfe, ehrwürdig.
kann mich nur auf meine aussage vom anfang berufen
DANKevorsicht ... ich bin kein linuxer könnt mühsam werden
lg
newi
Zuletzt geändert von newi am Mittwoch 18. Mai 2005, 20:32, insgesamt 1-mal geändert.
-
- Tuxboxer
- Beiträge: 2473
- Registriert: Dienstag 8. Oktober 2002, 21:06
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
Sorry, ich hatte das etwas anders verstanden (wenn einer schon mit ttys0, devices, etc.) anfaengt: z.B. dass du nur Linux nicht verstehst.newi hat geschrieben:hallo rasc
danke für deine eselsgeduld und die vielen info's
sorry ... ich fang damit NIX an !!!
mal gucken ob jemand das stty irgendwie compiliert bekommt.
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26
-
- Foren-Moderator
- Beiträge: 1119
- Registriert: Sonntag 9. Juni 2002, 13:28
ähem, vielleicht isses einfacher die Image Ersteller zu fragen, ob sie beim nächsten Image nicht einfach stty mit in die Busybox mit reinnehmen :
> tuxbox-cvs/cdk/Patches/busybox.config (oder busybox-flash.config oder busybox-ide.config, k.A) statt :
In wie fern sich die Busybox dann aufbläht weiß ich allerdings nicht...
Greetz
Marc
> tuxbox-cvs/cdk/Patches/busybox.config (oder busybox-flash.config oder busybox-ide.config, k.A) statt :
auf# CONFIG_STTY is not set
setzen, nochn Symlink im Image von stty auf die busybox und gut ist.CONFIG_stty=y
In wie fern sich die Busybox dann aufbläht weiß ich allerdings nicht...
Greetz
Marc
-
- Foren-Moderator
- Beiträge: 1119
- Registriert: Sonntag 9. Juni 2002, 13:28
Sooo, nu weiß ichs
Die Busybox wird um ~35kb größer wenn man stty mit reinnimmt.
@newi
Ich hab dir hier mal ein Dbox-Binary von der Busybox hingelegt. Das schiebst du per FTP nach /var/bin. Dann legst du per telnet einen Symlink Namens stty auf die Busybox ins gleiche Verzeichnis :
Danach steht dir der Befehl stty zur Verfügung. Hier kannst du die Manpage dazu lesen...
Das ist natürlich nur erstmal zum probieren. ~340Kb nur für ssty wäre ja overkill....vielleicht erbarmen sich die Image-Bauer ja und nehmens mit in die Busybox rein...
Greetz
Marc
Die Busybox wird um ~35kb größer wenn man stty mit reinnimmt.
@newi
Ich hab dir hier mal ein Dbox-Binary von der Busybox hingelegt. Das schiebst du per FTP nach /var/bin. Dann legst du per telnet einen Symlink Namens stty auf die Busybox ins gleiche Verzeichnis :
Code: Alles auswählen
ln -s /var/bin/busybox /var/bin/stty
Das ist natürlich nur erstmal zum probieren. ~340Kb nur für ssty wäre ja overkill....vielleicht erbarmen sich die Image-Bauer ja und nehmens mit in die Busybox rein...
Greetz
Marc
-
- Interessierter
- Beiträge: 22
- Registriert: Samstag 29. November 2003, 02:26