- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 52

Thema: Lighttpd + UART - Wird nichts gesendet

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ich wollte dein Programm nun mal selber ausprobieren aber es tut sich nichts.
    Den PHP Code habe ich kopiert und ebenso den C-Code. Wenn ich den C-Code mit ./kommunikation "Ich" ausführen möchte, klappt es problemlos.
    Allerdings passiert nichts über das WebIf.
    Was muss ich da noch wie an den Rechten ändern?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    54
    Beiträge
    765
    Ich habe es gerade mal auf meinem 3. Raspi getestet. Einfach das Programm mit dem in der ersten Zeile angegebenen Befehl compilieren und die php ins /var/www packen.
    Das Programm bekommt automatisch beim Kompilieren die Rechte 755
    die php bekommt manuell 644.

    Der erste Test lief gleich erfolgreich. Als Webserver läuft lighttpd mit php5. Liegen die Programme bei Dir wie bei mir unter /var/scripte ?
    Ich bin auf allen meinen Raspis immer als root unterwegs. Der lighttpd läuft als www-data.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ok es funktioniert in der Originalversion.
    Dann habe ich wohl unbeabsichtigt was falsch gemacht als ich ein paar Sachen angepasst habe.

    Edit: Banaler Fehler.....hab im Dateipfad von der PHP Datei das /www vergessen.....
    Geändert von Kampi (15.09.2012 um 15:03 Uhr)
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    54
    Beiträge
    765
    Schön , dann kann es ja jetzt weiter gehen..
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ja mal schauen was sich damit machen lässt
    Wenn ich was über den UART senden möchte brauch ich root-Rechte?
    Wenn mir die Datei dann im FileZilla mit root und www-data als Besitzer angezeigt wird sollte das ja dann klappen wenn ich root-Rechte benötige oder?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    54
    Beiträge
    765
    Mit sudo klappt das senden per UART. Wichtig ist halt, die Kennwortabfrage per visudo für das Senden Programm abzuschalten, wie weiter oben beschrieben.
    Auf meinem ersten Raspi ging es auch ohne sudo. Allerdings habe ich da vorher viel hin und her (de)installiert und probiert...
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Juhu es klappt
    Hab dein Programm bischen umgemodelt und nun wird jedesmal ein Text gesendet wenn ich im WebIf den Button drücke.
    Waren zwar ein paar ein paar Fallstricke dabei (z.B. if (argc >= 1) habe ich auf if (argc == 1) stehen gelassen und mich gewundert warum es nicht klappt )
    Ist dieser Teil hier:

    Code:
    int init()                                                                                                //Schnittstelle öffnen und parametrieren
    {
        /*** Init ***/
        
        //O_RDONLY, O_WRONLY or O_RDWR -
        //O_NDELAY (geht weiter, wenn keine Daten da sind und gibt "-1" zurueck)
        // man 2 open fuer mehr Infos - see "man 2 open" for more info
        // O_NOCTTY No ControllTeleType 
        fd = open(MODEMDEVICE, O_WRONLY | O_NOCTTY);
        
        if (fd < 0)
        {
            printf("Fehler beim öffnen von %s\n", MODEMDEVICE);
            exit(-1);
        }
        
        memset(&newtio, 0, sizeof(newtio));
        newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;                                                    // Setzt die neuen Porteinstellungen
        newtio.c_iflag = IGNPAR;
        newtio.c_oflag = 0;
        newtio.c_lflag = 0;         /* set input mode (non-canonical, no echo, ...) */
        newtio.c_cc[VTIME] = 0;     /* inter-character timer unused */
        newtio.c_cc[VMIN] = 1;    /* blocking read until 1 chars received */
    
    
        tcflush(fd, TCIFLUSH);
        tcsetattr(fd, TCSANOW, &newtio);
        return fd;
    }
    Immer derselbe für jedes Programm wo man den UART verwenden will?
    Im Moment lasse ich die Baudrate noch bei 115200, weil das die Defaulteinstellung für die Baudrate ist und ich noch kein Teil im Startscript habe um die Baudrate umzustellen.
    Morgen wollte ich dann auf meiner Homepage noch eine Anleitung schreiben wie man den UART per Web verwendet und wollte deinen Namen da erwähnen, weil du einen nicht zu vernachlässigen Anteil an der Problemlösung (und dem Verständnis) beigetragen hast, wenn du nichts dagegen hast

    Edit:
    Mittlerweile habe ich es auch geschafft meine eigene Sendenroutine zu implementieren.
    Bei dem Befehl:

    res=write(fd, &c[Counter], 1);

    Dort wo jetzt &c[Counter] steht, wird ein Pointer erwartet und deswegen wird dort der Inhalt der Speicherzelle, die für &c[Counter] steht, übergeben?
    Sehe ich das so richtig?
    Und dann noch eine Frage zu der Variable "fd". Diese steht ja für den Filedescriptor und wird bei der Write Funktion an der Stelle erwartet.
    Und diese Variable nimmt den Wert 0 an wenn der UART erfolgreich geöffnet wurde?
    Geändert von Kampi (15.09.2012 um 18:24 Uhr)
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. [ERLEDIGT] MCP2515 Remoteframe wird nicht gesendet.........
    Von Kampi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 30.08.2012, 22:49
  2. [ERLEDIGT] Frage zu LightTPD
    Von Kampi im Forum Raspberry Pi
    Antworten: 69
    Letzter Beitrag: 17.07.2012, 14:57
  3. Auf LC-Display wird nichts angezeigt
    Von cesupa im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 28.02.2008, 18:44
  4. I2C Adapter Software es wird immer WRITE gesendet
    Von yunscher im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 29.03.2007, 18:12
  5. wegen UART wird 7805 kochend heiß
    Von batti112 im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 15.06.2004, 09:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen