- 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
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Zu 1:
    Code:
    echo "<form method='post' action='index1.php'>";            //Formula einleiten
    Heißt die php anders, muss dies hier bei action angepasst werden.

    Zu 2: Die Formularcontrols haben alle einen Namen. Beim Senden mittels Click auf den Submit werden die Werte mit den jeweiligen Namen übergeben. Das Textfeld hier heißt befehl. Der darin übergebene Text lässt sich mit $_POST["befehl"] auslesen. Es können auch mehrere Textfelder und auch andere Controls mit vorhanden sein, diese lassen sich dann alle mit $_POST["jeweiligerName"] auslesen.

    Zu 3: Das einlesen des Textes in dem Programm erfolgt mit argv. in argc steht die Anzahl der Parameter. Dieser ist mindestens 1, da der Programmaufruf selbst der erste Parameter[0] ist. Alle weiteren Parameter stehen dann in argv[1] bis argv[x]. Diese werden an den Leerzeichen jeweils getrennt. "Außer der Text wird komplett in Häkchen übergen." Dann steht alles in argv[1].

    popen öffnet eine Pipe, worin das aufgerufene Programm (pidof) die Ausgabe hin umleitet. So steht dann die Ausgabe von "pidof senden" direkt in der Variable buff. Dieses wird in diesem Fall aber nur genutzt, um die Anzahl der laufenden Instanzen des Senden-Programmes anzufragen. Ist also nicht für das eigentliche Senden nötig.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  2. #2
    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
    Super
    Dank dir für die Erklärung. So langsam dämmert es mir.
    Jetzt hatte ich auch nen Ansatz zum suchen. Ich habe einfach mal nach argc gegooglet und da kam dieser Link bei raus:

    http://crasseux.com/books/ctutorial/argc-and-argv.html

    Das habe ich mir mal durchgelesen und wenn ich es richtig verstanden habe, funktioniert dies so:

    Durch einen Klick im WebIf schickst du einen Befehl ab. Diesen nenne ich jetzt einfach mal "Start".
    Der Programmaufruf der durch den shell_exec ausgeführt wird lautet dementsprechend "/var/scripte/senden.Start".
    Als Parameter steht dann ja in argv eine 1 drin, weil die [0] ist der Name des Programmes, sprich "
    /var/scripte/senden" und die [1] dann der übergebene Text, sprich "Start" als Zeichenkette.
    Und diese Zeichenkette zerlegst du dann und sendest sie einzelnt.
    Ist das so korrekt?

    Dann eine zweite Frage....in dem untersten Beispiel rufen sie das Programm so auf

    ./fubar a b c

    also mit Leerzeichen. Du verwendest einen Punkt. Aus welchem Grund? Ginge das mit Leerzeichen auch oder hat der Punkt was damit zu tun, weil das bei dir ein Aufruf über PHP ist und nicht über Konsole wie im Beispiel?

    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

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Da fehlt ein Leerzeichen: /var/scripte/senden Start
    Der Punkt leitet die Variable ein. Würde dahinter nochwas kommen, wäre ein weiterer Punkt notwendig. $befehl="/var/scripte/kommunikation ".$_POST["befehl"]." nächsterParameter";

    Allerdings bin auch ich, wie Du wohl auch, recht neu, was php betrifft.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  4. #4
    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
    Ist der Punkt da nur drin damit dein Programm den Befehl erkennen kann oder ist es so von C gefordert?
    Ansonsten dank dir schonmal für deine Hilfe
    Es ist mir nun einige klarer geworden und mal schauen ob ich es auch hinbekomme
    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

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Der Punkt ist dafür, dass php die Variable erkennen kann. Der Punkt wird nicht mitgesendet.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #6
    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
    Super
    Dank dir für die Erklärung. Ich probiere das mit der Argumentübergabe nachher mal selber an meinem Raspberry aus.
    Wenn das klappt bastel ich mir eine UART-Kommunikation per C-Programm zusammen und gucke das ich von dem Zugriff von lighttpd auf den AMA0 wegkomme.
    Vielleicht stolpere ich ja mal zufällig über eine Lösung wie ich das hätte machen können.
    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

  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
    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

Ä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