Forum: Mikrocontroller und Digitale Elektronik Netio Diagramme mit Ajax erstellen


von croeh (Gast)


Lesenswert?

Hallo

Ich habe ein Netio Board mit einer Software die auf "Wils" Quellcode 
basiert.
und möchte Temperaturwerte mit Hilfe von Ajax graphisch darstellen.
Um das zu realisieren würde ich gerne die 
"flot"(http://code.google.com/p/flot/) Library einsetzen. Bevor ich 
allerdings mit richtigen Temperatur Werten arbeite, wollte ich nur mal 
eben das folgende Beispiel 
http://people.iola.dk/olau/flot/examples/realtime.html auf die SD-Karte 
von Net-IO speichern und ausprobieren.

Der Zugriff auf die realtime.html erfolgt über ein Link aus meiner im 
flash stehenden Webseite. Die Seite wird auf der SD-Karte gefunden und 
angezeigt, jedoch findet die Seite nicht die notwendigen .js - 
Files.Diese liegen auf der SD-Karte in einem Order mit dem Namen FLOT. 
Den Javascript code habe ich natürlich angepast
<script language="javascript" type="text/javascript" 
src="flot/jquery.js"></script>
<script language="javascript" 
type="text/javascript"src="flot/jquery.flot.js"></script>

Nun frage ich mich, warum die Seite nicht angezeigt wird. Kann es sein, 
dass ich die httpd.c dafür anfassen muss? Kann er die Endung .js 
verarbeiten?

Ich würde mich freuen, wenn mir einer weiter helfen könnte.


Gruß

croeh

von Volker (Gast)


Lesenswert?

Hallo croeh

So richtig helfen kann ich dir leider nicht, da ich die Software von 
Wils
nicht kenne. Aber wenn du den Ordner wirklich FLOT genannt hast, dann 
würde ich src="FLOT/jquery.js" und nicht src="flot/jquery.js" schreiben.

Habe hier auch ein NETIO allerdings mit ethersex. Das Beispiel von dir 
funktioniert da wunderbar.

von croeh (Gast)


Lesenswert?

Hallo Volker

Groß und klein schreibung habe ich noch mal überprüft.
Es ist einheitlich alles klein geschrieben.

Danke trotzdem. Schön das es jedenfalls bei Dir funktioniert. ;-)

Gruß

croeh

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

croeh schrieb:
> Diese liegen auf der SD-Karte in einem Order mit dem Namen FLOT.

Und dieser Ordner ist auch aus Sicht des Webservers unterhalb der 
Hierarchieebene angeordnet, in der die von Dir genutzten HTML-Dateien 
liegen?

Also:

\blafusel.htm
\flot\jquery.js
\flot\jquery.flot.js

Und der verwendete FAT-treiber auf Deinem µC unterstützt auch lange 
Dateinamen?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Und der verwendete FAT-treiber auf Deinem µC
> unterstützt auch lange Dateinamen?
Eventuell werden auch einfach Verzeichnisse von Webserver nicht 
unterstützt...

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Pfad relativ zur server root ? ;)

von croeh (Gast)


Lesenswert?

Hallo

Dank Eurer Anmerkungen bin ich ein gutes Stück weiter gekommen.

Das Beispiel läuft nun auf dem NetIO.
Die Software verträgt leider keine Unterordner und kann nur Kurze 
Dateinamen verwenden (8.3).
So weit alles gut
Leider kommt nun neu dazu, dass man sehr lange warten muss (ca. 1 
Minute), bis sich die Seite aufgebaut hat. Das kann eigendlich auch 
nicht normal sein.

Habt Ihr eine Idee wodran das liegen kann?

Gruß

croeh

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

croeh schrieb:
> Das kann eigendlich auch
> nicht normal sein.

Und uneigentlich? Bedenke ein uC ist kein Rennpferd, gerade wenn da 
riesige JS Biliotheken geladen werden eventuell noch Bilder etc. Und 
wenn die Lib schon mit Unterordnern Probleme hat ist auch der Rest 
eventuell nicht gerade auf Performance getrimmt.

von http (Gast)


Lesenswert?

man muß ja aber auch nicht alles von dem armen NetIO laden. Es reicht 
vielleicht schon wenn der, per schlankem JSON, die Ajax-Daten liefert. 
Oder falls es kein echter PC mit eigenem Speicher für die Ajax 
benutzende Seite ist: Vielleicht gibt es einen WLAN-Router zwischen 
NetIO und SmartPhone (oder InternetCaffee), der mit Linux läuft und noch 
ein bischen statische Seiten ausliefern mag.

von Volker (Gast)


Lesenswert?

Falls du Windows benutzt könnte es auch am delayed ack liegen.

von croeh (Gast)


Lesenswert?

Hallo

Ihr habt natürlich recht. Ich habe dem kleinen µC etwas zu viel 
zugemutet.

Anstatt die großen .js Libraries (flot) auf der SD Karte abzulegen habe 
ich sie nun auf einen kostenlosen public webspeicher gelegt. Die 
überschaubare Webseite bleibt auf der SD Karte und der Browser holt sich 
die notwendigen .js Library aus dem Web(/www.dropbox.com).
Beispiel:
<script language="javascript" type="text/javascript"
src="http://dl.dropbox.com/u/xxxxxxx/jquery.flot.js"></script>;

Die Seite kann somit in einer akzeptablen Zeit von jedem Browser 
geladen werden. (sehr schön)

Nun kann ich mich mit JSON beschäftigen. Ich habe zwar mit JSON und AJAX 
schon mal auf einer anderen Controller Hardware gearbeitet, jedoch finde 
ich nicht den richtigen einstieg beim AVR.

Kann mir jemand ein Beispiel bennen, wie man JSON auf der U. Radig / 
Wils Basis implementiert?

Gruß

croeh

von Dennis P. (dennisp)


Lesenswert?

Es liegt mit sicherheit am delayed ack. Mit dem netio unter Windows 
bekommste nur paar kb/s hin. Ich habe damals unter Linux die Seite 
aufgerufen und die Scripte wurden mit über 60kb/s geladen.

http://list.zerties.org/pipermail/ethersex-devel/2009-May/000196.html

von croeh (Gast)


Angehängte Dateien:

Lesenswert?

Das mit den acknowledge delay ist interessant. Das werde ich noch mal 
ausprobieren müssen.

Momentan bin ich leider immer noch mit der Implementierung von JSON/AJAX 
beschäftigt. Dabei ist mir einiges noch nicht ganz klar:

1: Die Webseite schickt eine "Get" Anfrage. Das Net IO soll dann eine 
JSON  zurücksenden.  Kann der Radig Code eine GET anfrage bearbeiten? Im 
httpd file finde ich immer nur POST.

2: Muss der http_header angepasst werden? Momentan sende ich nur das in 
der Software implementierte text/html zurück. Kann das Funktionieren?


Ich komm einfach nicht weiter. Google liefert einige Informationen, nur 
leider wird meistens JSON über PHP realisiert. Ich suche nach einer 
Lösung, wobei das Net IO  nach einem (AJAX)Request direkt eine JSON 
zurücksendet.

Kann mir dabei einer helfer?

von Daniel F. (df311)


Lesenswert?

das kommt darauf an, wie und mit welcher programmiersprache du das json 
verarbeiten willst.

in php ist es ziemlich egal, mit welchem content-typ du das ganze 
abrufst solange du das json irgendwie als validen json-string in eine 
variable bekommst (z.b. mit curl o.ä.). danach noch ein json_decode und 
fertig ist das objekt...

javascript ist da schon ein bisschen genauer - wenn du das json-teil als 
string vorliegen hast (egal ob selbst geschrieben, mit php irgendwohin 
geschireben und mit javascript ausgelesen, ajax, was auch immer), dann 
kannst du (unter zuhilfenahme zusätzlicher bibliotheken) den json-string 
parsen und bekommst als "belohnung" ein json-objekt.
mit prototype kenne ich mich nicht so aus (wenn ohne allzu großen 
aufwand möglich ersetze ich es durch jquery), aber mit jquery kannst du 
z.b. als datentyp bei einem ajax-aufruf "json" angeben. der content-type 
mit dem du die daten bekommst ist dann ebenfalls ziemlich "wurscht", ich 
gebe ajax-json-daten eigentlich immer als "text/html" aus, hat noch nie 
probleme gemacht...

und wenn du die jquery-bibliothek von google lädst, dann brauchst du nur 
eine handvoll bytes am netio für den script-include.

(mit anderen programmiersprachen habe ich json noch nie verarbeitet)

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

In http://de.wikipedia.org/wiki/JavaScript_Object_Notation ist das so 
halbwegs erklärt.
Es scheinen auch andere mittlerweile realisiert zu haben, daß XML nun
doch etwas üppig ist - JSON ist da etwas genügsamer (ok, nicht viel).

von Daniel F. (df311)


Lesenswert?

edith würde sagen, darf aber nicht (ist mir zu spät eingefallen):
du kannst z.b. mit raphael (http://raphaeljs.com ) die diagramme auch in 
"echtzeit" mit javascript erzeugen lassen...

von croeh (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich habe mich nun eine ganze Weile mit JSON, Ajax(jQery) und FLOT 
beschäftig und möchte mit meinem Beispiel im Anhang anderen den Einstieg 
erleichtern.

In dem Beispiel werden die Werte von vier Diskret Eingängen in 
"echtzeit" grafisch dagestellt.

Viel spass

croeh

P.S: Bitte habt Nachsicht. Ich bin kein Programmierer und kann auch 
nicht von mir behaupten, von dem was ich da geschrieben habe, alles 
verstanden zu haben   ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.