• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Alternative zu Verweisen

Felight

Neues Mitglied
Guten Tag Community,
ich habe folgendes Problem.
Wir versuchen gerade über HTML Skripte auf einem Raspberry Pi auszuführen.
Funktionieren tut das auch aber nicht so wie ich das brauche.

Gelöst haben wir das bisher über Verweise. Leider lädt die Seite jedesmal aufs neue da der Verweis eine id setzt.
Wir brauchen einen Lösungsansatz bei dem die Seite nicht neu lädt aber trotzdem eine ID setzt bzw. abfragt.
Warum so kompliziert?
Die Skripte die auf dem Raspberry PI ausgeführt werden steuern einen Hexapod. Ein Skript ist für das Streamen von der Raspberry Pi Kamera. Lädt die Seite neu lädt natürlich auch der Stream neu. Und genau das ist eben ungewollt.
Deshalb brauchen wir eine Abfrage der ID ohne Reload der Seite.
Wie kann man das lösen?

Ich habe natürlich vorher lange Zeit gegooglt aber es ist tatsächlich schwer etwas zu einem expliziten Thema zu finden ---> vielleicht nicht das richtige Suchwort?


Aber da ich mich eh jetzt schon im Forum angemeldet habe, will ich euch ja auch etwas bieten ; )
Es gibt noch Optimierungsbedarf im Stream der Kamera.
Momentan streamen wir über den jwplayer. Der Player hatte zumindest bei uns die niedrigsten Latenzzeiten.
Das Problem an ihm ist aber, dass er Flash benutzt.
Und da wir auch über Smartphones oder Tablets unseren Hexapod steuern bzw. den Stream gucken wollen, suchen wir eine Alternative.
Wir suchen also einen schnellen Nicht-Flash Player in HTML der im besten Fall auch unter Linux läuft.

Anbei unser HTML Dokument. Vielleicht könnt ihr ja was damit anfangen.
 

Anhänge

[...]
Deshalb brauchen wir eine Abfrage der ID ohne Reload der Seite.
Wie kann man das lösen?
[...]
Mit Ajax? Darüber rufst du einfach das php oder phyton script mit den parametern auf.

Wir suchen also einen schnellen Nicht-Flash Player in HTML der im besten Fall auch unter Linux läuft.
Html5 vielleicht. In welchem Format ist der Stream denn?

MfG
 
Danke erstmal für die schnelle Antwort!
Ich bzw. Wir haben null Ahnung von Ajax... wie würde das denn in unserem Beispiel aussehen?
Ich habe eben schon gegeooglt wie das aufrufen von PHP Dateien über Ajax aussieht und ich habe es nicht verstanden ^^.

Hier aus einem Forum der Beitrag:

<?php
require_once('model.php'); //Datenbankverbindungclass controller{
public function __construct(){
//Events abfangenif($_GET['getdata'] == 'true'){
echo "test";$model->getData();
}
else if($_GET['savedata'] == 'true'){$model->saveData();
}
else{//foo}
}
}//Klassen initialisieren$controller = new controller();$model = new model();?>




Inwiefern Format? Stehe gerade etwas auf dem Schlauch und wüsste gar nicht wo ich das nachschauen könnte >>> Wir arbeiten ohne den Raspberry Desktop sondern rein in der Konsole.

Lg
Felight


EDIT:
Habe neue Erkenntnisse gewonnen zu unserem Videoproblem.
Der JW Player besitzt anscheind von Haus aus die Möglichkeit auch HTML 5 zu benutzen. Also ein sogennantes Fallback.
Wie implementier ich das denn jetzt in unser HTML Dokument?
Ich habe bisher nur komplett andere Codes gefunden die nicht mal im Ansatz so aussehen wie mein Code.
Ich will aber auch nicht alles neu machen, sondern lieber meinen Code ergänzen sonst funktioniert vielleicht gar nichts mehr ...
 
Zuletzt bearbeitet:
[...] ich habe es nicht verstanden ^^.
Das ist nicht zu übersehen ;)

Eure php Datei müsste nach deinem obigen Code etwa so aussehen:
PHP:
<?php
if (isset($_GET["id"])) {
$id = $_GET["id"];
if($id == "4.1") {
echo shell_exec("sudo python /var/www/Vor.py");
echo "HI";
echo shell_exec("whoami");
} elseif ($id == "4.0") {
echo shell_exec("sudo python /var/www/Hexapod_Backwards.py");
}
}
?>
Am einfachsten ist Ajax in deinem Fall wohl einzusetzen in zusammenhang mit jquery. Das bindest du im <head> bereich so ein:
HTML:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

Einen Ajax request setzt du so ab:
Code:
<script>
$.ajax({
url: "deinephpdatei.php",
data: { id: "4.0" }
});
</script>
Das soll natürlich nur passieren, wenn jmd auf den Link klickt. Also so in etwa:
Code:
<script>
$(document).ready(function($){
  $(document).on("click", "a", function(e) {
    e.preventDefault();
    $this = $(this);
    if ($this.attr('href') != '#') {
      $.ajax({
        url: $this.attr('href')
   });
      }
    });
});
</script>
<!-- so der link -->
<a href="deinephpdatei.php?id=4.0">Klick mich</a>
Keine Garantie das es funktioniert, habs aus dem Kopf gemacht^^
Probieren und Doku zu jquery lesen. http://api.jquery.com/

Inwiefern Format? Stehe gerade etwas auf dem Schlauch und wüsste gar nicht wo ich das nachschauen könnte
Wie ist der Videostream codiert? mp4? ogg? webm?

MfG
 
Damit kann ich doch mal was anfangen ; )

Ich geh direkt mal auf deine Vorschläge ein.
Das jQuery holst du über den Link oder seh ich das falsch?
Das Problem in unserem Fall wäre dann, das der Raspberry zwar im Netzwerk ist aber keinerlei Internetzugang verfügt.
Ich habe natürlich gleich gesucht wie ich das jQuery manuell lokal installieren kann, wurde aber nicht fündig.
Da sieht man mal wie geprägt man von Windows ist. Kaum geht es auf ein Linux "Rechner" schon ist man überfordert. Und zusätzlich ist man ja auch durchgängig in der Konsole tätig.
Dein HTML Code scheint aber soweit schlüssig zu sein. Fragen tauchen dann auf wenn es nicht funktioniert ; )

Mfg Felight
 
Es funktioniert bei mir nicht, jetzt natürlich die Frage ob das so gemeint war, wie ich das gemacht hab.

Hier unser Dokument:


Falls überlesen,

Der JW Player besitzt anscheind von Haus aus die Möglichkeit auch HTML 5 zu benutzen. Also ein sogennantes Fallback.
Wie implementier ich das denn jetzt in unser HTML Dokument?
Ich habe bisher nur komplett andere Codes gefunden die nicht mal im Ansatz so aussehen wie mein Code.
Ich will aber auch nicht alles neu machen, sondern lieber meinen Code ergänzen sonst funktioniert vielleicht gar nichts mehr ...
 

Anhänge

Zuletzt bearbeitet:
Okay das kann ja sein nur was ist dann falsch bzw. fehlt?
Ich weiß es einfach nicht besser. Und klar kann jetzt gesagt werden ich soll es lassen, aber dann wäre das Projekt unzureichend beendet.
Ich benötige dabei halt Hilfe! Ich möchte ja nicht mal das ihr mir das Programm schreibt. Ich möchte erklärt bekommen was ich zu schreiben habe. Per Google ist dann bestimmt einiges Möglich. Aber ich hab nunmal jetzt euren Ansatz und mit dem komm ich jetzt nicht weiter.

Ich bin ja froh das man überhaupt eine Antwort bekommt.
Normalerweise stellt man seine Problemstellung und bekommt immer so etwas wie "SuFu benutzen".
Ist den Leuten denn nie aufgefallen das es oftmals kein passendes Thema dazu gibt? ; )

Also aktuell sind immernoch die Probleme mit der Ajax Abfrage und der HTML5 Fallback vom jwPlayer. Ich versuche natürlich weiterhin mein Glück und werde hier berichten falls ich etwas erreicht habe.

Felight
 
Ein einfacher AJAX-Call sieht so aus:

Code:
$.ajax({
    url: 'meine_datei.php', // Die PHP-Datei
    type: 'POST', // GET oder POST
    data: {
        index: 'value' // Daten die an das PHP-Script übergeben werden
    },
    success: function(result) {
        $('#my_div').html(result); // Daten die aus dem PHP-Script in den Container #mydiv geladen werden
    }
});

Um die Funktion zu verstehen
- Schau bei Wiki nach, was AJAX eigentlich ist und was es kann
- Google im Netz nach Tutorials
- Wirf einen Blick in die jQuery Doku

Ansonsten wüsste ich nicht, wie man das erklären sollte. Es sei denn du möchtest, dass dir jemand den Code schreibt, und dafür gibt es die Jobbörse.
 
Nach einer langen Nacht ein Statusbericht von mir.
Dank eurer Tipps bin ich jetzt immerhin in der Lage über ein Bild einen Request zu senden:
<a href="javascript:setRequest('4.1')"><img src="" alt="Zurueck" border="0"
height="48" width="70"></a>

Tronjer ich habe deinen Code auch so gut wie komplett nachvollziehen können. Einzig und allein über die Variablenabfrage bin ich mir unschlüssig.
Viele Tutorials beschreiben denn Ajax Call komplett anders.
Die ganzen Hello World Tutorials bringen einem natürlich die Grundkenntnisse bei aber zur Anwendung scheine ich immernoch zu doof. ^^

Wenn ich aber jetzt mal dein Beispiel von oben ergänze mit meinen Gegebenheiten, dann lässt sich vielleicht nachvollziehen wo das Problem liegt oder was mir noch fehlt.
Bevor ich das aber mache noch eine Verständnissfrage.
Ich brauche denn von mir hier im Beitrag geposteten Befehl (eine Art Verweis der die Variable auf 4.1 setzt.
Brauche mein PHP Dokument (Benötigt das noch irgendwelche Sonderbehandlungen? Ich setze ja bisher die ID und Frage die per PHP ab. Reicht es nicht völlig aus einfach in der PHP das Request abzufragen?).
Und brauche den Ajax Call also das hier:

$.ajax({
url: 'Script.php', // Die PHP-Datei
type: 'POST', // GET oder POST
data: {
index: 'id4.1' // Daten die an das PHP-Script übergeben werden
},
success: function(result) {
$('#my_div').html(result); // Daten die aus dem PHP-Script in den Container #mydiv geladen werden
}
});


Ich kann und will das nicht programmieren lassen. Weil ich kein Geld ausgeben will oder kann und ich den nötigen Ehrgeiz besitze um es zu schaffen. Aber ich schaffe es halt nicht alleine.
 
Zurück
Oben