RS232 über Webinterface

Nico84

Neuer User
Mitglied seit
27 Sep 2011
Beiträge
42
Punkte für Reaktionen
0
Punkte
0
Hallo.

Ist es möglich über ein Webserver auf der Box etwas auf der seriellen Schnittstelle aus zu geben?

Z.b. Ich klicke einen Button und gebe ein Byte aus. An der Schnittstelle soll ein µC hängen und weitere Aufgaben ausführen. Die Sache des µC ist kein Problem für mich, nur wie läuft die Sache mit dem Webserver <-> RS232 ?
 
Mit Freetz ist das so nicht möglich.

Es steht Dir aber frei, selbst etwas in der Richtung zu programmieren. Das hat aber mit Freetz nichts zu tun.
 
Zzottel steuert einen ATMega32 via Webinterface und PL-2303.
 
Das hört sich interessant an. Aber irgendwie will es bei mir immer nicht. Ich bekomme immer:
Code:
./Fritz!Relay: line 1: /bin: Permission denied
./Fritz!Relay: line 2: Program:: not found
./Fritz!Relay: line 3: syntax error: unexpected "("
 
Kann es sein das die "Fritz!Relay (Executable for FB 7170)" garnicht kompiliert ist?
 
Richtig, beide Downloads bringen nur den Sourcecode. Entweder selber kompilieren, oder beim Autor anfragen...
 
Kann es sein das die "Fritz!Relay (Executable for FB 7170)" garnicht kompiliert ist?
Mit dem Paket (Patch) aus dem Anhang, kannst Du Fritz!Relay (mit Freetz) für deine Box kompilieren:
Code:
:~/myfreetz/freetz7293/freetz-trunk> [B]make fritzrelay-precompiled[/B]
---> package/fritzrelay: preparing... mkdir -p source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1
cp -a make/fritzrelay/src/fritzrelay.c make/fritzrelay/src/Makefile source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1
cmd() { PATH="/home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin:/home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-3.4.6/mipsel-unknown-linux-gnu/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/opt/cross/bin" LD_RUN_PATH="/usr/lib/freetz" make -j2  "$@"  || { printf "\n\\033[33m%s\\033[m\n" "ERROR: Build failed.";  exit 1; } };         if [ -e source/.echo_item_start -a ! -e source/.echo_item_build ]; then echo -n "building... "; touch source/.echo_item_build; fi; cmd -C source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1 \
                CC="/home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc" \
                CFLAGS="-march=4kc -Os -pipe -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
building... make[1]: Entering directory `/home/gm/myfreetz/freetz7293/freetz-trunk/source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1'
/home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -march=4kc -Os -pipe -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o fritzrelay fritzrelay.c
make[1]: Leaving directory `/home/gm/myfreetz/freetz7293/freetz-trunk/source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1'
mkdir -p packages/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/root/usr/bin/; cp source/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/fritzrelay packages/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/root/usr/bin/fritzrelay; /home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-strip --remove-section={.comment,.note,.pdr} packages/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/root/usr/bin/fritzrelay;
[COLOR=red]done[/COLOR].
Code:
:~/myfreetz/freetz7293/freetz-trunk>[B] file[/B] packages/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/root/usr/bin/fritzrelay
packages/target-mipsel_uClibc-0.9.29/fritzrelay-0.1/root/usr/bin/fritzrelay: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [B]ldd ./fritzrelay[/B]
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aabe000)
        libc.so.0 => /lib/libc.so.0 (0x2aadc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [COLOR=red]./fritzrelay -h[/COLOR]
Fritz!Relay Server      www.zzottel.de  2009-04-11
Usage: ./fritzrelay <serial port> <TCP-port>.
Example: ./fritzrelay /dev/ttyUSB0 12345.
 

Anhänge

  • fritzrelay.patch.txt
    8.7 KB · Aufrufe: 4
Danke, ich bekomme immer

make: *** Keine Regel, um »fritzrelay-precompiled« zu erstellen. Schluss.

Habs allerdings mit dem stable 1.2 versucht.
 
Ok, werde ich nachher mal probieren.

Kann ich nicht auch mit Perl auf die RS232 zugreifen? das wär doch einfacher?
 
Kannst Du das? Hast Du es schon mal versucht?
Oder willst Du, dass jemand anders das für Dich tut?

Kann jemand den Thread an eine passende Stelle verschieben? Etwas in der Art "Linux allgemein".
 
Wenn will ich das schon selber machen. Ich habe microperl mit lighttpd laufen. Nur weiß ich noch nicht so recht wie ich da die rs232 ansprechen soll.
 
Vermutlich über /dev/ttyUSB0.
Wie man mit Perl die Parameter der seriellen Schnittstelle einstellt, musst Du selbst herausfinden.
Vielleicht kannst Du auch mit stty vorab die Parameter einstellen und dann über Perl auf die Geräte-Datei zugreifen.
Wenn das nicht geht, kannst Du mit stty die Parameter einstellen und die Datei offen halten.
 
Einfacher als das Programm von Zzottel auf meine Zwecke anzupassen.
 
Ich habe mal folgendes probiert:

Code:
#!/usr/bin/perl  

open (TXT, ">/dev/ttyUSB0");
print TXT "Daten";
close TXT;

Nach Anregung von hier:
http://www.mikrocontroller.net/articles/Serielle_Schnittstelle_unter_Perl

führe ich das über Telnet aus, wird mir auch über die rs232 "Daten" ausgegeben. Rufe ich allerdings meine test.pl über den Browser auf bekomme ich ein:

500 - Internal Server Error

rufe ich eine andere pl Datei genauso auf:

Code:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "testing...\n";

wird mir das im Browser auch angezeigt. Liegt der Fehler bei den Einstellungen des Webserver? (lighttpd)
 
eigentlich ja, sonst würde die andre Datei ja nicht laufen? Die Rechte beider Dateien sind gleich. lighttpd läuft unter wwwrun
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.