mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 nach HTTP/HTML Konverter


Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe da so eine Idee, welche mich nicht losläßt....
Es existieren doch so schöne RS232 nach TCP/IP Konverter von Lantronix,
DIGI, etc.

Wenn nun an der RS232 Seite HTML-formatierte Strings von einem
Mikrokontroller gesendet werden, könnte mann doch so wunderbar und sehr
einfach und preiswert Meßwerte etc. direkt in/als Webseiten darstellen,
wenn man mit einem beliebigen Browser darauf zugreift.
Der Rückweg sollte mit entsprechenden GET/POST Methoden auch
funktionieren; also Steuern via Webinterface.
Könnte man das mit Eurem Know How einmal diskutieren und in die Tat
umsetzen ?
Ich experimentiere gerade eine wenig mit einem Lantronix XPORT/Atmega 8
und Bascom herum.

Danke und liebe Grüße,

Jasmin

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Prinzip ein Webserver...

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Manos,

ja, eigentlich ist es per Definition ein Webserver, aber nur ein ganz
trivialer....
Reicht ja schon wenn er beim Abfragen einer Webseite diese auch
anzeigt. Der HTML "Code" würde dann vom MC erzeugt.
POST/GET würde doch schon ausreichen.. ?!

Jasmin

Autor: Wirus! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

beim Ursprungspost fielen mir spontal zwei Donge ein:

- gibts schon .... nennt sich Webserver -> siehe Webserver mit
Atmega32
- warum einfach wenn es auch kompliziert geht. Der XPORT hat einen
eingebauten Webserver ...

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirus ???!!!

entschuldige, aber soooo gibt es das NICHT !
Natürlich existieren diverse MC basierende "Webserver" auf Basis von
MC's, aber:

Das ist alles recht überladen, wenn ich wie beschrieben einfach nur
Meßwerte darstellen, resp. einlesen möchte.
Der XPORT hat mich knapp 40 € gekostet; Inbetriebnahme 10 Minuten.
Unschlagbar, oder !?

Der Webserver dient erst einmal auschließlich der Konfiguration des
XPORT.
Erst vermöge des SDK's (habe ich mich intensiv mit beschäftigt) und
recht komplexer JAVA Programmierung könnte ich den entsprechnd
anpassen.
"Also warum einfach wenn's auch kompliziert geht ???????"
Ich bin halte ein Mädchen mit pragmatischen Ansätzen ;-).

Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich beschäftige mich gerade mit dem selben Problem, siehe hier:
http://www.mikrocontroller.net/forum/read-1-350576.html#new

Ein netter Benutzer dieses Forums und ich sind über diesen Thread
gestolpert:
http://www.mikrocontroller.net/forum/read-1-247578.html

Gruss Thomas

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,

das scheint ja wohl leider im Sande verlaufen zu sein.
Oder "D.S" hat die Lösung parat ?


Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, der Ansatz scheint zu funktionieren, ich konnte das "Hallo Welt"
auf meinem Browser darstellen. :o)

Ich weiss leider nicht, wer dieser D.S. ist. Ich denke, das sollte man
schon zum laufen bringen, ist halt wieder etwas Fleissarbeit.

Gruss Thomas

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.easytoweb.net
Die machen genau das

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber Peter,

die machen das doch eben genau NICHT so.
Oder habe ich da was überlesen ?
Peter, kannst Du uns bitte Deine Ergebnisse zur Verfügung stellen ?
Also den Code für Deinen MC welcher die HTML-Seite generiert ?
Funktioniert das mit jedem (IE, Firefox) Browser ?

Jasmin,... geht jetzt zur Arbeit

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Berger,

(sorry nicht Peter)
kannst Du uns bitte Deine Ergebnisse zur Verfügung stellen ?
Also den Code für Deinen MC welcher die HTML-Seite generiert ?
Funktioniert das mit jedem (IE, Firefox) Browser ?

Wenn ich wieder zeitlich etwas Luft habe, werde ich auch etwas testen
!

Jasmin,... geht jetzt zur Arbeit

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jasmin: Zur Zeit ist noch kein Code vorhanden, ich habe den XPort über
Com1 an den Rechner angeschlossen und sende ganz einfach die Textdatei
an die serielle Schnittstelle. Das war gestern erst ein Test.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der neuen c't 11/2006 S. 67 ist ein RS232 zu Ethernet-Wandler "kurz
vorgestellt" den www.elektronikladen.de vertreibt, mit einem ATMega64L
und einem Ethernet-Chip auf 50*32mm (ohne RJ45-Buchse). Im Text noch
ein Hinweis auf frühere Besprechungen ähnlicher Produkte. Preise um
40-70Euro. Hersteller Sollae Systems www.eztcp.com

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wieder online...

Gibt es noch jemanden der etwas konstruktives zu dem Thema beitragen
kann ?
Ich wollte keine Diskussion über bestehende Lösungen eztp oder ähnlich
beginnen.
Das es einige Devices TCP nach RS232 und umgekehrt gibt, kann man sich
schnell ergooglen..........;-(...

Mich wundert es ein wenig, das keiner den pragmatischen und höchst
nützlichen Ansatz sieht, um MC Schaltungen so WEB zu enablen wie hier
angedacht.


Jasmin

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jasmin: Fehlt bei deiner Überlegung nicht noch das
Hypertext-Transfer-Protocol, als Aufsatz auf das TCP/IP?
Und wo gibst den Xport für 40Euro?

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jasmin, _"RS232 nach HTTP/HTML Konverter"_ das ist ein sehr
interessantes Thema.


Mir schwebt schon lange ein eigener WEB-SERVER vor.
(Messdaten abfragen und Steuerbefehle senden)

Traute mich nur noch nicht an dies Materie heran, da ich mich mit zwei
Grundproblemen noch nicht auseinandersetzen konnte.

1. Problem: Die Harware, wie müssen die TCP/IP-Signale für den µC
aufbereitet werden.

2. Problem: Wie müss das TCP/IP-Protokoll aufgebaut sein

Einfach etwas nachbauen, ohne Grundlagen,
in der Hoffnung, dass es auch funktioniert,
ist nicht meine Lebenseinstellung.

Bernhard


Bernhard

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard,

den Zusatz der philosophischen Betrachtung im Sinne von "Einfach etwas
nachbauen, ohne Grundlagen, in der Hoffnung, dass es auch funktioniert,
ist nicht meine Lebenseinstellung" verstehe ich nicht.

Ich kann Dich dennoch um Deine 2 Probleme erleichtern, denn um all das
mußt Du Dich ja gar nicht mehr kümmern weil es der XPORT (oder ein
ähnliches Gerät ;-( ) ja schon alles für Dich erledigt !

Der MC stellt eine simple HTML Seite als ASCII String an der RS232 Port
des XPORT zur Verfügung. Der Text kann hier bereits Meßwerte des
Controller's enthalten.

Auf der anderen Seite verbindet sich ein Webbrowser mit der IP des
XPORT vorzugsweise auf Port 80 (HTTP).
Schwups sendet der MC seinen ASCII String und schon zeigt Dein Browser
eine beliebig schick oder schlicht formatierte Webseite mit
Meßdaten Deine Wahl !

Den XPORT habe ich übrigens über meine Firma (Arbeitgeber) und nicht
als Privatperson für deutlich unter 50 € erworben (sogar die SSL
Variante).

Der Rückweg (Steuerungsanforderungen an den MC) sollte mit
enstprechenden HTML Methoden wie PUT etc. auch leicht zu implementieren
sein.

Jasmin

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Darauf kann man aufbauen !

"mehr" muß nicht umgesetzt werden.



HTTP request
The Hypertext Transfer Protocol (HTTP) defines a request-response
mechanism for obtaining documents from a web server. The web browser
sends a request to the server in the form of a multi-line string, each
line being terminated with Carriage Return and Line Feed (<CR> and
<LF>) characters. The first line specifies an upper-case "method"
(that is, command), followed by an argument string. The most common
method is "GET," followed by a filename to be fetched, and a protocol
version identifier. Subsequent lines contain additional information
about the browser configuration:


GET /index.htm HTTP/1.0
User-Agent: Mozilla/4.5 [en]
(Win95; I)
Pragma: no-cache
Host: 10.1.1.11
Accept: image/gif, image/x-
xbitmap, image/jpeg, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8


If we're keen to keep memory usage to a minimum, the question must be
asked: what use is the additional information? We don't care about the
type of browser, our server hasn't got sufficient resources to maintain
a cache or an access log, and if the file we're sending has an
unacceptable character set, there's nothing that can be done about it.
Even the HTTP version number on the first line isn't needed; we're
planning to use the simplest HTTP interface anyway.


It would seem that we can chop off the remainder of the command after
the filename, without losing any functionality, but what is the maximum
length of the filename? Surprisingly, this is largely under the control
of the server, for the following reason: when the user wishes to access
the server for the first time, an IP address is entered into a browser
window, such as:


http://172.16.1.2


The web client (browser) locates the given address, and submits the
request to that server using a null filename:


GET / HTTP/1.0


By convention, most web servers interpret this as a request for the
default index file, which is INDEX.HTM or INDEX.HTML. This, in turn,
contains pointers to other files on the server. While the user clicks
on pages we've provided, they will only be requesting filenames we've
defined, so if we keep these short, we won't have to handle any long
filenames.


A possible exception to this rule would occur if we included any HTML
forms on our server. When a form is submitted, all the
state-information is appended to the filename, making a much longer
string. Various other difficulties are associated with forms-handling
on a very small web server, so for the time being, we'll assume that
forms aren't being used.


HTTP response
The response from the server to the client consists of an HTTP header,
and, if the request succeeded, the document itself. The header consists
of several text lines, each terminated with a <CR> <LF> delimiter. The
header is separated from the document's contents by a single blank
line.


As a minimum, the header must identify the HTTP protocol version, the
success or failure status, and the content-type of the document (plain
text, HTML, GIF graphic). For example:


HTTP/1.0 200 OK
Content-type: text/html


<html>
<head>Test page</head>
<body>This is a test page</body>
</html>



Unfortunately, it isn't possible to send out the same HTTP header for
all files; it must be adapted to reflect the file's contents. A
minimum list of file formats would be:


text/plain
text/html
image/gif



though it would be highly desirable to add other formats to the list.
If the client's request fails, an appropriate HTTP error message must
be sent out, and it is also desirable to send out a document explaining
the problem, so that the browser has something to display. The simplest
explanation could be in the form of a plain text document, which has no
fancy formatting:


HTTP/1.0 404 Not found
Content-type: text/plain



File 'abc.htm' not found

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte konkretisiere doch mal die angedachte Aufgabe. Wie hoch ist die
Datenrate in beide Transferrichtungen, wie soll die Darstellung im
Browser sein, Messkurven, Text, Tortendiagramme ? Wie oft muß der
Browser aktualisieren, sind das Oszillogramme in quasi Echtzeit?

Ich denke, erst dann kann man entscheiden, ob ATmega und XPORT die
passende Lösung sind, oder ob es zwei Nummern kleiner oder größer sein
muß.
Der XPORT mit 48 MHz 80186 und 256kSRMA/512k Flash nur als
Hilfsarbeiter für einen 8-Bitter ist ähnlich seltsam wie der
"USBwiz", der einem 8-Bitter zu einer USB-Hostschnittstelle verhilft,
mittels Philips-ARM-Prozessor.
73
Christoph

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph:
Da ich den XPort und den ATMega schon hier habe, macht es für mich
schon Sinn, diese zu verwenden. Das ganze kann später auch für andere
Anwendungen verwendet werden, es wird ja nur der UART verwendet.

Ob das so in euren Augen Sinn macht oder nicht, ist mir egal, es geht
mir nur um das basteln. Wenn ich später noch Freude daran habe, kann
ich immer noch einen Schritt weiter gehen und den TCP/IP-Stack
implementieren und einen Realtek Chip oder WTW nehmen.


Jasmin:
Ich habe gestern mit einem kleinen Testprogramm begonnen, welches den
HTTP-Server bilden wird. Das ganze wird in C geschrieben und im Moment
verwende ich einen 90s8515, da ich für diesen noch ein
Experimentiertboard hier liegen habe. Der Code kann aber leicht für
einen Mega8 portiert werden. Leider bin ich diese Woche "leicht" im
Stress, ich melde mich wieder bei neuen Ergebnissen.

Gruss Thomas

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas
Ja fürs Hobby spielen die Kosten und die Frage wie sinnvol das ist
erstmal keine Rolle. Euer Projekt erinnert mich am ehesten an die
Laserdrucker hier im Firmannetz, die melden sich alle im Browser. Ich
kann den Papier- und Tonerstand abfragen und den Druckstatus, eine
Statistik und so weiter. Wenn man "Hilfe" anklickt wird man ins
Internet zum Hersteller verbunden

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehr soll das Teil (am Anfang) auch nicht machen, nur die gemessenen
Daten als Website mit Text und Zahlen darstellen.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

hallo Christoph Kessler ,

"Der XPORT mit 48 MHz 80186 und 256kSRMA/512k Flash nur als
Hilfsarbeiter für einen 8-Bitter ist ähnlich seltsam wie der
"USBwiz", der einem 8-Bitter zu einer USB-Hostschnittstelle
verhilft,
mittels Philips-ARM-Prozessor." "

Der von Dir so despektierlich beschriebene Hilfsarbeiter erledigt hier
den gesamten IP-Stack, mit SSL-Verschlüsselung, DHCP, NTP, TCP/UDP...
ich habe bstimmt noch etwas vergessen....

Somit ist er ein absoluter High Tech Hilfsarbeiter dessen Fähigkeiten
ich mich gern bediene.

Unter http://www.hw-group.com/products/hw_vsp/index_en.html

Mit einer Übertragungsrate von um die 900 kbit/s schaufelt der schon
einiges an HTML formatierten ASCII-Daten über die Leitung ist also für
die Übertragung von Meßdaten völligst ausreichend.


Thomas, ich habe gerade auch etwas mit Bascom zusammengebaut, was schon
grundsätzlich funktioniert !

(Es soll hier einige oberschlaue BASCOM-Hasser geben, bitte haltet Euch
aus diesem Thread heraus ;-( .... ,es scheint schon schwierig genug
transparent zu machen, welche potentiale hinter solch einer pragmatisch
einfachen Lösung liegen und wie somit das "WEBENABLEN" von MC's
kinderleicht und sehr preiswert wird ).

Wenn ich etwas vorzeigbares habe, werde ich es hier umgehend zur
Verfügung stellen.

Unter http://www.hw-group.com/products/hw_vsp/index_en.html
findet man übrigens eine Softwarelösung für einen virtuelle COM-Port
nach TCP/IP Wandler.
Damit kann jeder an der Lösung mitarbeiten auch wenn er keinen XPORT
oder ähnlich besitzt !


jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin nicht ein grosser Fan von Basic, daher nehme ich lieber C. ;o)

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jasmin

Ich verfolge den selben Ansatz wie du. Ich habe einen TCP/IP Converter
(Linkcom Xpress) den ich für einen einfachst Webserver einsetzen
möchte. Ein AVR soll die HTML Daten interpretieren resp. generieren.
Ich möchte nur die Temperatur und eine Schaltzustand im Web anzeigen.
Ich bin am noch am suchen von Informationen und bin gespannt, was hier
noch für Lösungen diskutiert werden.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Broadcast,


Stunkfille ???

Na, ja ..vielleicht dann über's Wochenende, wenn das Wetter mies ist
und mein Freund nervt  !?

Jasmin

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Beschreibung für einen einfachen Webserver hier:

http://www.embedded.com/story/OEG20010312S0103

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jasmin,

Ich habe dieses WE endlich Zeit gefunden um zu basteln.:o) Soweit habe
ich nun einen rudimentären HTTP-Server, welcher auf Anfrage eine
Webseite senden kann.

Ich habe aber noch ein kleines Problem: Der Browser lädt "ewig" nach,
ich habe im Moment noch keine Idee, wie ich die Verbindung als beendet
erklären kann. Ich sende nach der html-Datei zusätzlich ein CR und LF,
dann werden keine Daten mehr über den UART geschickt, der Browser
scheint aber noch auf etwas zu warten.

Der zweite Punkt ist, dass ich die Webseite nur explizit auf dem Port
10001 aufrufen kann. Ich denke aber, dass ich dies in den Einstellungen
des XPort noch ändern kann.

Gruss Thomas

Autor: jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

ich kann mir das nicht so recht vorstellen was du beschreibst.
Was meinst du mit "er lädt ewig nach" ?

Ich habe das Wochenende damit verbracht den XPORT mit neuer Firmware,
neuen COB-Dateien und neuen Tools aufzupeppen.
(lohnt sich übrigens !!)
Du kannst den Port (Standard 10001) beliebig verschieben.
Ich habe ihn auf Port 80 gelegt und den für die Webverwaltung auf port
443.

Mache mal ein Telnet in folgender Syntax:

                  telnet pabu19.dyndns.org 80

Damit landest Du bei mir im Keller ;-)
Das ist ein Xport den ich ins Internet gehängt habe.
Am seriellen Port hängt ein STK 500 und ein Atmega 8 macht nichts
anderes als die eingegangenen Zeichen als Echo zurückzusenden.

Der Xport kann immer nur eine zeitgleiche Verbindung ab, könnte also
mal besetzt sein ......
Wenn Du magst, sende doch einmal den Code Deines HTML-Servers.
Den könnte ich dann einmal hier dranhängen !

Ich werde am Wochenende nicht daran arbeiten können, da ich auf einer
Sportfreizeit unterwegs bin (macht auch Spass !!).

Jasmin

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher habt Ihr Eure Informationen zum XPORT? Lantronix hat da irgendwie
nichts.

>Ich werde am Wochenende nicht daran arbeiten können, da ich auf einer
>Sportfreizeit unterwegs bin (macht auch Spass !!).

Viel Spaß.

Autor: Lantronix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


Lantronix hält jegliche Informationen zum Download auf der Webseite
vor; http://www.lantronix.com


Welche Informationen suchen Sie denn ?



Bart Henson

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bekomme ich den HTML-Server zum Laufen?
Die Datenblätter etc. beschreiben immer nur die Konfiguration als
RS232-Verlängerung.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

entschuldige, aber du scheinst das gerät noch nicht so ganz zu
verstehen ;-).
lese dir die gute dokumentation durch...

der html server läuft immer (default port 80, für die konfiguration).
in diesem thread diskutieren wir aber andere dinge, oder was ist deine
intention ?



Jasmin

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, wieder eine Unklarheit beseitigt. Wie bekomme ich da dann eine
HTML-Seite drauf? (In welchem Dokument findet man da was?)
Auf der ct'-Seite werden zwar auch Probleme geschildert, aber
Ergebnisse scheinen nicht präsentiert zu werden.

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jasmin,
Der Fehler war so ähnlich, wie wenn die Webseite falsch ist, wenn z.B.
das </html> Tag fehlt. Der Browser wartet auf Daten, es kommt aber nix
mehr.

Ich habe das Problem mit dem "laden" behoben. :o) ich habe die
Angaben für die Grösse der html-Daten nicht korret angegeben, daher
fehlten dem Browser noch ein paar Zeichen, welche nicht mehr gesendet
wurden. nun funzt die Sache.

Deinen "Telnet-Echo-Server" werde ich heute Abend noch testen.

Gruss Thomas

Autor: Marek Swierzy (marekswierzy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen, hier mal mein senf ;) :

System1 sendet über die 232 den Wert "www1234"

Der 232 auf Ethernet converter sendet die daten weiter via Ethernet und
 den Port 4000 etwas an den RemoteServer mit der IP 192.168.1.100.

Auf dem Remot-Server läuft ein Programm welches die Daten des Ports
4000 in eine Datei schreibt.

Die index.php liest die daten aus und zeigt die messwerte an.... fertig
:)

habe ich alles richtig verstanden ?

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marek: Nö, in die andere Richtung. Ich gebe in meinem Browser die IP des
Xport an und der AVR generiert mir die Webseite, welche ich im Browser
sehe.

Deine Variante wäre auch machbar, ist aber nicht das, was ich möchte.

Gruss Thomas

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

was Du da möchtest ist genau der Weg den wir eben nicht gehen wollen.
Willst Du so an die Sache ran, dann besorge dir das SDK von Lantronix
und programmiere in java (wie im C't-Projekt).....

Wie Thomas gerade Marek beschrieben hat soll es laufen.
Ganz einfach; der MC sendet auf Browserrequest eine HTML-Seite an die
serielle Schnittstelle und der Browser holt das ganze dann ab und
stellt es dar.
Hier bietet sich dannn die gesamte HTML Vielfalt inclusive der
Möglichkeit auch java script einzusetzen.... aber das ist wieder nur
für "schön".

@Thomas

Der Rückweg; also Steuerbefehle vom Browser an den Xport und somit an
den MC zu senden muß auch funktionieren (HTML PUT oder ähnliche
Methoden; siehe selfhtml).
Dann kann man über den Browser auch "seine Heizung" fernsteuern.
Ich habe übrigens den Xport 3, dann kann das ganze auch via SSL laufen
und wird somit sicher !
In den MC könnte man sogar eine Passwortabfrage einbauen, oder mit SSL
Clientzertifikaten arbeiten ;-) fein, fein ..

Jasmin (von der Arbeit  ..;-(  )

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Besucher,

der Testlink  "telnet pabu19.dyndns.org 80" ist wegen heftiger
Lötarbeiten momentan offline.

Ich hoffe bald mit echten Ergebnissen wieder "online" zu sein.

@ Thomas,

kannst Du mit dem Quelltext Deiner bisherigen Versuche etwas beisteuern
? info at key-it.de, oder hier im Forum..
Ich stelle meine "Ergüsse" auch zur Verfügung.


Jasmin...
fährt jetzt bis Montag in Urlaub......

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jasmin: Kann ich machen, aber erst am Sonntag. Ich bin gerade eine etwas
interessantere Variante am basteln, welche auf dem atmega8 läuft und die
ADC-Kanäle auslesen wird. Ist aber, wie bereits erwähnt alles in C.

Gruss Thomas

Autor: Thomas Berger (tomb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,
Ich habe nun die erste Version meines XPort Webservers fertig gestellt.
:o)

Die Quellen sind im angefügten Zip-File verfügbar. Es handelt sich
dabei erst um eine sehr primitive Variante, die Einkommenden Daten des
Browsers werden noch nicht überprüft. Es wird auf jede Anfrage direkt
der HTTP-Header und die Webseite geschickt.

Die Webseite selber ist in einem Array abgelegt.
char Page[] = {
"<html><head><title>XPort Webserver 1.0beta</title>\
</head>\n\
<body bgcolor=\"#507EAE\">\
<font size=\"5\" face=\"helvetica,arial\"
color=\"#FFFFFF\">\
<b>XPort Webserver, 1.0beta</b><br><br>\
Uptime: $UPTIME s<br><br>\
ADC0: $ADC0<br>\
ADC1: $ADC1<br>\
ADC2: $ADC2<br>\
ADC3: $ADC3<br>\
ADC4: $ADC4<br>\
ADC5: $ADC5<br>\
</font>\
</body></html>\n"
}
Variablen (Mit einem $ gekennzeichnet) werden beim senden der Seite
dynamisch durch den Zahlenwert ersetzt.

Ein grosses Problem ist dass die Variable "char Page[]" eine gewisse
Grösse nicht überschreiten darf, ansonsten funzt das Programm nicht
mehr richtig. Beim Kompilieren gibt es keine Fehlermeldung, das
Programm läuft aber nicht mehr. nach etlichen Stunden suchen kam ich
darauf, dass das Problem einen Zusammenhang mit den Char Array hat, ich
weiss aber noch nicht wieso und bin somit für Tipps sehr dankbar.

Ich werde diese Woche noch weiter daran basteln und die neuen
Ergebnisse hier posten.
Gruss Thomas

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein char-Array wird nicht nur ins Flash-ROM geschrieben, sondern beim
Start des Programmes aus selbigen ins RAM kopiert, damit mit den
üblichen C-Funktionen darauf zugegriffen werden kann.
Das RAM ist aber bei Deinem Prozessor (mega8 steht wohl im Makefile)
nicht sonderlich groß ...

Das dürfte Dein Größenproblem erklären.

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus: Danke, ich habe etwas gegoogelt: Mit dem Attribut "PROGMEM"
werden die Daten dann direkt aus dem Flash gelesen.
Das habe ich kurz Probiert, es erscheint aber nun eine Warnung, wenn
ich das Array übergebe, das sollte ich vieleicht mit einer "const"
Deklaration lösen können.

Ich werde morgen weiter suchen.
Gruss Thomas

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oha, das wird doch etwas komplexer, als nur das Attribut zu setzen...
Um die Daten aus dem Flash zu lesen, muss man pgm_read_byte()
verwenden. D.h. ich muss Funktionen wie "strcat" mit einer ersetzen,
welche diese verwendet, sehe ich das richtig?

Gruss Thomas

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie macht ihr das mit der IP-Nummer des Webservers? Ich meine, man
müsste einen DynDNS-Account einrichten. Das Progr. DynDNS-Updater dient
zum Abgleich einer dynamischen IP Adresse mit einer festen Domain
Adresse und läuft auf dem PC. Wie geht das mit einem Webserver wie hier
diskutiert? Muss man eine feste IP-Nummer beim Provider beantragen? Das
kostet!

Autor: Th. B. (pomdas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du Deinen Inet-Zugang ueber einen Router machst, kannst Du dort
meist die Anmeldung beim DynDNS-Server durchführen lassen. Ansonsten
hilft es wohl nichts und Du muisst diese Anmeldung auch ueber den uC
machen...

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Guido,

ja dyndns oder ähnlich....

Aber für interne Zwecke ist das natürlich nicht nötig und wer es
"kommerziell" einsetzen möchte wird wohl "etwas frei haben".
Portforwarding würde ja auch schon genügen und keine IP Adresse
belegen.

Ich habe aber eine feste ip bei meiner Flatrate von VIA dazubekommen.
War "umsonst", schau mal nach ob das Angebot noch steht (viadsl).
Ich bekomme sogar interessante Rabatte, also wenn jemand soetwas
benötigt könntet ihr mich anfragen.

@thomas
Mit Bascom ist das (Flash-Zugriffe) ganz einfach ;-).....

Wenn ich einen kompletten Überblick über Deine Implementierung bekommen
möchte, soll ich dann alle *.c Dateien ausdrucken, oder wie bekomme ich
den Zusammenhang hin ?
Ich poste in den nächsten Tagen einmal meine "Codeschnipsel); nix
aktuelles aber funktionierte schon vor einem halben Jahr..

Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit Zusammenhang?
Flash zugriffe sind in C auch einfach, man muss halt erst wissen wie.
;o)

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas,

ich meine damit einen "zusammenhängenden" Quellcode.
Aber bemühe Dich nicht weiter.
Das soll ja kein Nachilfethread für C-Programmierung sein ;-)

Dennoch:
Wann sendet denn Dein Controller die Webseite an den Xport ?
Wodurch "fühlt" er sich angesprochen ?
Vielleicht komme ich mit diesen Hinweisen weiter.


Jasmin

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat von Jasmin:
Ich poste in den nächsten Tagen einmal meine "Codeschnipsel); nix
aktuelles aber funktionierte schon vor einem halben Jahr..


Gerne, würde mich auch interessieren.
Was ich noch nicht wußte:
eine Html-Seite wird durch eine extere Geschichte aktuallisiert?
Wie und wie löst man das in Bascom?
Bitte um die Codebeispiele.
Danke im Vorraus
MfG

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernd,

Bascom, oder was auch immer, ist da erst mal aussen vor.
Metatags (siehe Selfhtml) refreshen (fordern an) die Webseite
automatisch in beliebigen Intervallen.


Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend

Bernd:
Für das Refresh muss im Header der Html-Seite
<meta http-equiv="refresh" content="30;URL=">
eingetragen werden. Somit wird die Seite alle 30Sek aktualisiert. Durch
probieren habe ich herausgefunden, dass wenn ich keine Url angebe, die
aktuelle Seite wieder geladen wird.

Jasmin:
In der Datei interrupts.c ist die Funktionen SIGNAL (SIG_UART_RECV).
Nach dem das letzte Zeichen über den UART empfangen wurde wird nach
400ms in der Funkton SIGNAL (SIG_OUTPUT_COMPARE1A) die Funktion
web_init() und anschliessend web_sendchar() auf gerufen.
Dort wird ein Zeichen des HTTP-Headers oder der Webseite gesendet. nach
dem das Zeichen gesendet wurde, wird SIGNAL (SIG_UART_TRANS) auf
gerufen, welche dann wieder web_sendchar() aufruft, bis die komplette
Seite gesendet wurde.

Die SIGNAL-Funktionen sind für Interrupts.
SIGNAL (SIG_OUTPUT_COMPARE1A) ist bei mir so eingestellt, dass alle
100us ein Interrupt ausgelöst wird, daraus kann ich dann eine
Zeitinformation (z.B. den Uptime-Counter) ableiten.

Das mit den Daten aus dem Flash funzt. Ich arbeite nun meine Todo-Liste
ab, wobei diese ständig weiter am wachsen ist, weil mir immer neue Ideen
einfallen. :o)

Gruss Thomas

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,


wenn ich das richtig verstehe, kümmerst du dich eigentlich überhaupt
nicht um die http konventionen.
Du wartest also bis der browser sein letztes zeichen gesendet hat und
antwortest dann nach 400 ms mit dem senden (d)einer html seite.
Was passiert wenn der browser eigendeinen müll sendet, oder an einer
anderen stelle etwas schief läuft. Mann könnte sich natürlich auf den
transport-layer (tcp/ip) verlassen aber ...., kann natürlich noch auf
der seriellen übertragung etwas passieren ????
Wäre es nicht besser das relativ einfache HTTP Protokoll zu
berücksichtigen ?

Ich habe einfach den string "GET / HTTP/1.0" resp. das GET am anfang
und das HTTP/1.0 am ende herausgefiltert und als korrekte
browseranfrage interpretiert. ALLE zeichen danach bis zu einem erneuten
GET / HTTP/1.0 können dann ignoriert werden, allerdings fehlt eine
wirkliche "ENDE-Meldung" der GET-methode.....
Da scheint dein profanes 400 ms warten nicht schlecht.
Ist aber eben nicht ganz schlüssig bezüglich des protokolls.
ICH HABE ALLERDINGS AUCH KEINE BESSERE IDEE  !


Jasmin

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,

hier die Lösung zu meiner Bemerkung:

Browser sendet beispielsweise:
GET /infotext.html HTTP/1.1

Sobald der Header mit einer Leerzeile abgeschlossen wird, sendet dann
der Computer, der einen Web-Server (an Port 80) betreibt, seinerseits
eine HTTP-Antwort zurück.

Also fängt der Anfang des Browserrquest immer mit "GET ......HTTP/X.X
gefolgt von crlf an.
Das Ende des Browserrequests wird definitiv über eine Leerzeile mit
crlf (0XD,0XA)am Ende signalisiert.
Dazwischen können beliebig viel Zeichen stehen.

Jasmin

Quelle:
http://de.wikipedia.org/wiki/HTTP#Argument.C3.BCbertragung

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auf der Webseite http://web-sniffer.net/

kann man wunderbar den Protokollaufbau mit den steuerzeichen erkennen.
Hier ein Aufruf einer Webseite:

HTTP Request Header
Connect to 194.231.228.187 on port 80 ... ok

GET / HTTP/1.1[CRLF]
Host: www.key-it.de[CRLF]
Connection: close[CRLF]
Accept-Encoding: gzip[CRLF]
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/vnd.ms-excel, application/vnd.ms-powerpoint,
application/msword, application/x-shockwave-flash, */*[CRLF]
Accept-Language: de[CRLF]
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Web-Sniffer/1.0.24[CRLF]
Referer: http://web-sniffer.net/[CRLF]
[CRLF]

Hier kann man also wunderbar den Aufbau nebst Steuerzeichen erkennen.


Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jasmin:
Wie gesagt, es ist erst eine primitive Version eines HTTP-Servers.
;o)

Wie die Seite angefordert wird habe ich bereits an der seriellen
Leitung einem Terminal Programm "ausgemessen" und im Internet
gelesen, nur noch nicht implementiert.
Das wird der nächste Schritt werden. Zum senden von Kommandos (Schalten
von Ausgängen usw.) muss ich die eintreffenden Daten analysieren und Je
nach Kommando reagieren.

Der Trick mit der 400ms Verzögerung ist nur ein provisorium. Dies war
in meinen Augen der einfachste Weg.

Gruss Thomas

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Webseite http://web-sniffer.net habe ich schon gesehen, sehr
nützlich.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,

wenn es nicht schon so spät wäre, würde ich in den Keller gehen und
meinen PC anwerfen,,,,;-)

Die sich ergebenden Möglichkeiten sind doch schon toll, oder ?
Und das alles mit nem "billigen Xport o.ä.".
Wundersam, das so wenige mitziehen.

Ich hoffe mich auch bald wieder produktiver eingeben zu können; Die
Arbeit frißt mich gerade etwas auf ...........

Deine Vorgehensweise finde ich pragmatisch sympatisch. Ich pflege meist
auch erst den einfacheren Weg zu gehen...
Der Rest folg später.

Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ich denke es ist halt einfacher, wenn ich eine Baustelle nach der
anderen bearbeite als an mehreren Stellen zu beginnen.

Ein weiterer Vorteil ist, dass ich nun relativ einfach Variablen
auslesen kann: Einfach in den HTML-Code einbauen und ausgeben. Dies
erleichtert sehr die Fehlersuche.

Gruss Thomas

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wundersam, das so wenige mitziehen.

Interessantes Thema, an dem ich mich auch beteiligen würde, wenn ich
nicht ein anderes Projekt hätte.

Zum Thema "preiswert" fällt mir immer wieder der Siteplayer von
Netmedia ein. Mit dem habe ich damals meine Diplomarbeit gemacht und
erweitere das Projekt jetzt um eine UDP-Steuerung...


Einen XPort habe ich auch noch irgendwo rumliegen...

Eigentlich müsste es doch gehen, die festen Bestandteile der Website im
Flash abzulegen byteweise zu senden, und die Sachen, die durch das "$"
markiert werden (netmedia benutzt dafür das "^") während dieser
Sendung an den XPort aus dem SRAM zu lesen. Damit würde man sich ein
paar SRAM-Zellen sparen...

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rahul:
Mit einem Java-Applet kann man so etwas realisieren. Ich möchte aber
eine Java freie Lösung. Falls du eine andere Lösung gefunden hast, wäre
das schon interessant.

Gruss Thomas

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit einem Java-Applet kann man so etwas realisieren.

Bäh! JAVA!

(war das verständlich?) ;-)

Autor: Jasmin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Rahul, Thomas,


ich habe mich gerade einmal 10 Minuten mit dem Siteplayer beschäftigt.
(Tochter macht noch heia...)
Also das Prinzip ist hier genau das, was Thomas und ich ja gerade so
mit dem Xport umsetzen.
Die Doku zum Siteplayer ist klasse, geht sogar genau auf solche
Probleme ein die ich mit der Umsetzung am Xport habe. Ein super Fundus
zum Knowledgetransfer !

Danke Rahul...

Wo habt Ihr den damals bezogen ?

@JAVA:

Möchten wir hier an dieser Stelle einfach vermeiden, weil gar nicht
nötig !


Jasmin

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einziger Vertrieb in D scheint Lascar.com zu sein.
Siteplayer für ca. 30 Euro + 8 Euro RJ45-Trafodose + Versandkosten...

JAVA ist mir zu bunt...

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Java geht nicht mit lynx. ;o)

Ich werde das PDFin der Pause mal anschauen, danke!

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer benutzt denn noch lynx (reintextbasierter HTML-Browser?) ?

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich und alle die nur eine Text-Konsole zur verfügung haben.

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, Scherz beiseite, ich möchte etwas, das man mit jedem Browser
bedienen kann, also etwas ohne Java-Zeugs. Und wenn das mit Lynx
klappt, dann wohl mit jedem Browser.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bevorzuge übrigens auch nur reine Text E-Mails.
HTML Mails nehme ich erst gar nicht an.....
Lynx ist klasse, ebenso eine bash oder ksh...

Puristen gibt es überall !

Jasmin ;-)

Autor: Ecki Bär (ecki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ABO

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man seine ersten PC-Erfahrungen auf DOS-Maschinen gemacht hat (Ende
der 1980er), wird man auch gerne "Tastenkombinationsfuzzi" von den
"Mäuseschubsern" genannt... (Hat jetzt nicht wirklich was mit dem
Thread zu tun)

Autor: Bernardini (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abo

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jasmin:
Ich habe gestern damit begonnen, das generieren der HTML-Seite zu
verbessern. Im Moment ist die Grösse der Seite auf die Grösse des
Ausgabebuffers beschränkt.
Neu wird die Ausgabe in einzelne Blöcke unterteilt, dies schont die
RAM-Resourcen erheblich (im Prinzip gibt es so kein Grössenlimit mehr,
ausser die Grösse des Flash/EEprom).
Auch kann man so in Zukunft grössere Bilder (z.B. eine generierte
Messkurve) übertragen, oder Dokumente aus einem externen Speicher.

Hast du dich schon tiefer mit den Anfragen des Browsers an den Server
beschäftigt? Als nächster Schritt möchte ich gerne die Eintreffenden
Kommandos interpretieren.
Wenn man auf bei einem Formular einen Knopf drückt (z.B. "Submit"
hier im Forum), was wird dann genau an den Server geschickt?

Gruss Thomas

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn man auf bei einem Formular einen Knopf drückt (z.B. "Submit"
>hier im Forum), was wird dann genau an den Server geschickt?

Man bekommt die Seitenanfrage geschickt. Daran angehängt sind die
Parameter und Werte. (Zumindest ist das beim Siteplayer so...)

z.B.
www.blafasel.org/index.html?Name=Mueller&Vorname=Horst&submit=submit

auf selfhtml.org wird das Thema "Formulare" (zu denen der
Submit-button gehört) schön beschrieben.

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rahul:
An Selfhtml habe ich gar nicht gedacht... Danke!

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

ich werde etwas zur HTTP Verwurstelung an diesem Wochenende zur
Verfügungs stellen (BASCOM).

Lies einmal im Siteplayer Manual nach:
http://www.siteplayer.com/docs/web_enable.pdf

Dort ist es sehr scön erklärt, wie man mit der HTML input type Methode
per submit Daten vom Browser an den Xport sendet und wie diese dann
auch aussehen.

Im übrigen sei nochmal erwähnt, dass der Siteplayer konzeptionell genau
unsere Idee umsetzt.

Selfhtml lohnt sich imer zum nachschauen.


Jasmin

Autor: Jasmin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja,

zum Schnüffeln hattest Du doch den seriellen Port angezapft (die 2.
RS232 am PC ist Gold Wert !!!).

Unicom von http://www.shamrock.de/dostools.htm ist dazu immer noch
unübertroffen !!!


Jasmin

Autor: Jasmin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier ein bischen Programmgerüst.
Das ist ziemlich durcheinander, habe da auch schon seit Monaten nicht
mehr draufgeschaut.
Also bevor jemand überschnell Fragen stellt, bitte selber ein bischen
Hirnschmalz reinstecken.

Ich erinnere mich, das es mit Firefox problemloser lief als mit dem IE;

warum weiß ich nicht.

Bitte auf die CRLF Auswertung im HTTP Stream achten, scheint das A un O
zu sein ;-)


Jasmin

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
N'abend,

ich benötige eure Hilfe..............

Wenn ich eine Datei im JPEG Format über die serielle schnittstelle
senden möchte verlassen mich meine Ideen.
Ich möchte dazu kein Filsystem auf dem AVR hinterlegen.
Nehmen wir einmal an ich hätte die Datei im Binärformat irgendwo im
Flash abgelegt...
Na ja, bis dahin alles kein Problem, aber wie sende ich nun die Datei
auf Anfrage des Browsers ab ?
Jede Anregung ist willkommen !

Jasmin /D.S

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jasmin (oder Dietmar?):
Ich habe deinen Code kurz angeguckt, bist du der Dietmar Steiner (DS)
aus dem oben angesprochenen Thread?
http://www.mikrocontroller.net/forum/read-1-247578.html
Eure Notation scheint auf jeden Fall die selbe zu sein und beim whois
auf key-it.de ist als Admin auch Dietmar Steiner eingetragen. Ist aber
ne schlaue Idee, ist mir auch schon aufgefallen, dass man mit
"Tittenbonus" mehr Antworten erhält. ;o)

Zu den technischen Details:
Ich habe bis jetzt noch kein Formular in Html gebastelt, ist aber eine
gute Idee, ich kann eines auf den AVR Laden und dann abhorchen, was der
Browser an den XPort sendet.

Die Übertragung von Bildern ist(denke ich mal) das selbe wie von
HTML-Seiten. Der Header muss sicher angepasst werden, so dass der
Browser weiss, dass und welches Bild er empfängt. Mit den Bildern warte
ich noch bis der Rest zu 100% funzt.

Der Siteplayer scheint das selbe zu machen, was ich bis jetzt gelesen
habe. Aber wer will den schon eine fertige Lösung? :oP

Gruss Thomas

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Thomas,

mein comimg out !!!
War aber ursächlich so gar nicht meine Intention mit dem XXX-Bonus zu
spekulieren.
Aber so richtig angebaggert wurde ich allerdings auch nicht ;-(.
Wie Du aufgrund Deiner fachmännischen Recherchen feststellen kannst,
ist die MC-Fummelei reiner Zeitvertreib für die wenig verbleibenden
Wochenendstunden.

Ich nehme mittlerweile an, das die JPEG Übertragung reines
"Bitbanging" sein wird. Daher bei Browseranfrage einfach Byte für
Byte ein JPEG übertragen......
Im Moment bekomme ich den Hintern nicht hoch, sprich keine 10 Minuten
freie Zeit.
Habe mir in den letzten Tagen neue Fenster mit Rolladenmotoren einbauen
lassen (24 Stück !!). Auch wieder so ein MC-Thema. In jedem
Rolladenkasten liegt schon ein CAT 5 Kabel (BUS).
Testschaltung und Software ist schon fertig; für die ulrimative
Rolladensteuerung... (RS485 Bus mit kleinen Atmega im Rolladenkasten
und Steuereinheit mit größerem ATMEL).

Die kann ich ja dann mit unserer Idee WEB-Enablen !!!!



Gruß, "Jasmin", alias D.S.

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S.

Aus welchem Teil der Republik stammst Du ?


Dietmar

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dietmar:
Kein Problem, in vielen technischen Foren gibt es xxx-Bonus. Wenn ein
Mann etwas fragt, dann heisst es, RTFM, benutz doch Google, das hatten
wir schon 1000mal....

Bei einer Frau werden gleich die Lösungen präsentiert...  Zufall? Ich
weiss nicht... ;o)

Für Bilder muss im Header sicher der Content-Type angepasst werden,
irgend etwas wie "Content-Type: image/jpeg" und anschliessend das
Bild in einzelnen Bytes übertragen, das sollte schon alles sein. Ich
finden den Link nur nicht mehr, bei dem ich das gelesen habe.

> Aus welchem Teil der Republik stammst Du ?
Aus der Schweiz. :o)

Gruss Thomas

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,
ich habe die neue Variante für die Generierung der HTML-Seiten fertig
gestellt, scheint soweit zu funzen.

Nun hat mich die Neugierde doch gepackt und ich habe versucht, ein Bild
in die Webseite einzubinden. So wie ich das bis jetzt verstanden habe,
sendet der Browser die Anfrage für die Seite, diese wird vom
HTTP-Server an den Browser geschickt.
Nun müsste der Browser aber noch nach dem Bild "fragen", das macht er
aber nicht.
Googeln brint nicht viel, alle Beispiele die ich bis jetzt gefunden
haben beschreiben nur, wie man eine Seite sendet, wie das mit den
weiteren Dokumenten ablaufen sollte, habe ich keine Ahnung.

Kann mir jemand einen Tipp oder einen Link geben, wo das beschrieben
ist, ein Beispiel oder so?

Gruss Thomas

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist ein Interresantes Thema.

Hat man da Mehr Frei Leistung übrig als beim RTL oder Schluckt der
Xport noch mehr?

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcor:
Ich benutze nur RX und TX für den XPort.

Gruss Thomas

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich meinte Eignetlich ob der "HTTP-Server" viel Rechnenleistung
braucht oder ist das nur die byts über die UART raus schieben?
Gruß marco

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....

es benötig fast keine "Rechenleistung".
Reines schieben von Bytes... der Hardware UART der Atmels macht das mit
links !
Jasmin

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Leistung als Leitung gelesen...

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
macht nichts. Wenn du meine Handschrift lesen würdest währe das normal
das man da was anders liest.

Autor: Thomas Berger (tomb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin wieder einen Schritt weiter, das übertragen von Bildern klappt
nun auch. Da der Flash-Speicher im atmega8 etwas beschränkt ist,
reichte es nur für ein Smilie. :o)

Als nächsten Schritt muss ich unbedingt die Anfrage des Browsers
analysieren. Der Trick, mit der Zeitverzögerung nach dem Senden der
Daten vom Browser, ist nun definitiv nicht mehr brauchbar, hat sich für
die ersten Versuche aber gut bewährt.

Gruss Thomas

Autor: Thomas Berger (tomb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, das obere Bild ist ein bmp, kein jpg... hier das richtige.
Gruss Thomas

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,


wie funktioniert das nun prinzipiell mit der Dateiübertragung (JPEG)?
Ich gehe davon aus, das Du kein Filesystem implementiert hast sondern
es anders in den Griff bekommen hast..


Gruß Jasmin / DS

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Browser "fragt" nach dem Bild, dann sende ich den HTTP-Header für
ein Gif und anschliessend die Rohdaten.

Der "Zahlenfriedhof" als Char Array abgelegt, wie die Webseite oder
der Header.

Gruss Thomas

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab mal eine kleine Demo in C für einen Atmega8 programmiert. Es
wird dabei die angefragte Datei zurückgegeben. In dem angefügten
Beispiel sind 4 Test-HTML-Dateien enthalten.
Bei Änderungen an den HTML-Seiten ist es wichtig die Content-Lenght
anzupassen. Evtl. sollte man dazu doch mal ein kleines Programm
schreiben (ich hab das im GCC-Forum schonmal geftragt und das Ganze mit
sed probiert, aber das ist ja sowas von kryptisch...)

Den Xport sollte man auch noch so anpassen, dass der Puffer nicht nach
jedem Byte geleert wird. Ich habe mir die Übertragung eben mal mit
Ethereal angeschaut und gesehen, dass der Xport in Werkseinstellung
jedes Byte einzeln überträgt. Da jedes Byte in einen komplettes
TCP-Paket gepackt wird ist das natürlich ein ziemlicher Overhead.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seh grad, in den html-Dateien fehlt noch ein \r vor dem \n.
Seltsamerweise funktioniert es bei mir auch nur im Firefox, aber wieso?

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,

das Problem hatte ich ja auch, Firefox funktioniert und IE nicht.
Ich hatte und habe keine Idee.

Wieseo SED ? Ich kenne  SED Implementierungen nur von Unix/Linux.
Wie willst Du mit dem Atmega ein SED Kommando absetzen ?
Die Größe einer Datei in C zu ermitteln sollte doch eine KLeinigkeit
sein; selbst wenn sie irgendwo im Flash steht und kein Filesystem
zugrunde liegt.
Meines Erachtens konnte man die contenth length , zumindest bei reinen
html ohne Dateidownload völlig Mißachten.
Oder wie sind Deine Erkenntnisse ?


D.S.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit sed habe ich mir das so gedacht, eine normale nicht angepasste
html-Seite mit sed z.B. über das makefile so anzupassen, dass es direkt
mit einkompiliert werden kann. Also Sonderzeichen escapen, Newlines
durch \n ersetzen etc.


Die Content-Length aus dem Flash zu ermitteln ist nicht schwer. Jedoch
hab ich ja auch die Funktion drin, in der Seite Werte dynamisch
anzeigen zu lassen. Folglich müsste ich zumindest Teile der Seite im
RAM aufbauen um die Länge zu bestimmen. Davon hat der Atmega8 aber
nicht so viel.

Ohne Angabe der Länge bleibt beim Firefox immmer der Ladebalken
bestehen. So sieht es auch aus, wenn ich eine zu kleine Content-Length
angebe.

Warum es bei mir beim IE generell nicht funktioniert ist mir ein
Rätsel. Wenn man sich das mit Ethereal anschaut werden auch die
kompletten Daten übertragen. Auf irgendwas scheint er dann aber noch zu
warten.

Wenn ich herausgefunden habe, woran es liegt melde ich mich nochmal.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Content-Length-Header ist nicht zwingend notwendig. Normalerweise
beendet der Server dann einfach die TCP Connection. Ich vermute, dass
das Problem hier ist, dass genau das nicht passiert. Dann läuft das
Teil in einen TCP-Timeout, der üblicherweise im Bereich 1-2 Stunden
liegt ;)

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Daniel, Thomas,

genau das habe ich so auch beobachtet, wenngleich die Timeouts nur ca.
10-15 Minuten dauerten.
Ich meine auch gelesen zu haben, das dies von der Version des HTTP
Protokolls abhängt.
Neuere Versionen arbeiten "zustandslos", daher wird die TCP
Verbindung sofort beendet.
Vielleicht gibt es auch ein Metatag mit "Hangup-Funktion".

Aber im Grunde bin ich ziemlich sicher, das der Header eben nicht
erforderlich ist, also können evtl. Probleme nicht daher rühren.

Generell kritisch sind immer die nötigen CR/LF und die Leerzeile mit
CR/LF am Ende. Offenbar reagieren da die Browser etwas unterschiedlich.


Kann das jemand so bestätigen ?


Was Du mit dem SED vorhattest habe ich jetzt verstanden.
Bei dynamischen Webseiten ist das natürlich keine Option.


D.S.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.faqs.org/rfcs/rfc1945.html

Zitat: "Except for experimental applications, current practice
requires that the connection be established by the client prior to each
request and closed by the server after sending the response."

HTTP/1.1 führt Erweiterungen ein, die es ermöglichen die Verbindung
offen zu lassen, aber auch dort entscheidet der CLIENT, ob er das will.
Also auch bei HTTP/1.1 kommt man nicht um ein Schliessen der Verbindung
herum.

Autor: Thomas Berger (tomb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,
bei dem schönen Wetter hatte ich keine Lust zum basteln. :o)

Thomas: Die HTML-Datei mit #include in den Code einzubauen ist eine
sehr gute Idee, muss ich auch machen, danke.

Die Content-Length ist nach meinen Erkenntnissen wichtig, wenn eine
Seite aus mehreren Dokumenten besteht (html und Bilder), muss die Länge
stimmen, sonst kann man lange warten bis die Bilder übertragen werden.

Ich habe das so gelöst, dass ich die Seite generiere und so die Länge
bestimme, dann wird die Content-Length in den Header eingesetzt, der
Header gesendet und anschliessend die Webseite.

Gruss Thomas

Autor: jottafcabrera (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
it excuses but not if tendras the code to test USBWIZ with a 
microcontroller AVR

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.