Forum: Mikrocontroller und Digitale Elektronik LWIP Website in fsdata umwandeln


von janusch (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich versuche nun schon eine weile meine seite in fsdata 
umzuwandeln, aber das geht nicht.

ich hab mir Active Perl installiert
und dann auf makefsdata aber nix passiert.
im Anhang die beiden Dateien

hat denn vielleicht jemand eine solche makefsdata für lwip

von janusch (Gast)


Lesenswert?

ist denn hier niemand in der Lage zu helfen wie das über setzt wird?

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Versuch mal den Anhang.

von Stefan F. (Gast)


Lesenswert?

> ist denn hier niemand in der Lage zu helfen wie das über setzt wird?

Wahrscheinlich ja, aber dazu solltest du das Problem besser beschreiben. 
Was hast du versucht, was hast du erwartet, was ist stattdessen 
passiert? Welche Meldungen erscheinen auf deinem Bildschirm?

von janusch (Gast)


Lesenswert?

ich habe mir von der Seite dieses Beispiel runtergeladen:
http://www.openedv.com/thread-25178-1-1.html
darin sind die Rar Files:

Makefsfile.rar
atk.rar
Alientek ENC28J60 LWIP

in den Archiv Makefsfile sind diese beiden Dateien :
Beitrag "LWIP Website in fsdata umwandeln"

ABER ICH BEKOMME DAS NICHT ALS fsdata.c Über setzt.

von janusch (Gast)


Lesenswert?

Perl ist bei mir Installiert und ich benutze Win7

von Tim (Gast)


Lesenswert?

Dann würde es sich anbieten, endlich zu verraten, was du eingibst, was 
der Computer ausgibt, und was sonst noch so passiert.

Kriegst du das wohl noch hin?

von janusch (Gast)


Lesenswert?

ich habe das nach der Anleitung gemacht
Funktioniert aber nicht.

1)First, you have to install Perl on your PC;
2)create a folder named for example "MyFolder" and put the script in 
this folder;
3)In the same folder "MyFolder" create a folder "fs" (the name is 
mandatory)
4)put in the "fs" folder the file you want to convert to fsdata.c
5)launch MS-DOS prompt, go to the folder "MyFolder";
6)write the command "perl makefsdat.pl"
7)the file "fsdata.c" is created in the folder "Myfolder".

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Moin,
habe mal mit deinem perl script von oben deine atk.rar unter perl/Linux 
entpackt und nach der Beschreibung gewandelt.

Ergebnis siehe Anhang.

von Stefan F. (Gast)


Lesenswert?

Mach doch mal einen Screenshot von deinem MS-DOS Prompt (so heisst doch 
schon lange nicht mehr, oder ?), wo man sehen kann, was du da eingegeben 
hast und was danach erschien, sowie vom Dateimanager.

von janusch (Gast)


Lesenswert?

hp-freund schrieb:
> Moin, habe mal mit deinem perl script von oben deine atk.rar unter
> perl/Linux entpackt und nach der Beschreibung gewandelt.
>
> Ergebnis siehe Anhang.

und mach ich das unter Windows.

Stefan U. schrieb:
> Mach doch mal einen Screenshot von deinem MS-DOS Prompt (so heisst
> doch schon lange nicht mehr, oder ?), wo man sehen kann, was du da
> eingegeben hast und was danach erschien, sowie vom Dateimanager.

kann ich erst morgen früh machen

von hp-freund (Gast)


Lesenswert?

Sooo,
sollte eigentlich genau so mit Win cmd funktionieren.

Aber beim Ausführen des perl script kommt die Meldung:
1
FIND: Parameterformat falsch
Die erzeugte fsdata.c ist dann nur 47byte groß.

****************************************************

Mit der makefsdata.exe von holger scheint es zu funktionieren.

von Stefan F. (Gast)


Lesenswert?

Wie genau hast du das Script aufgerufen?
Was hast du eingegeben?

Unter Linux/Windows geht das ein bisschen unterschiedlich!

von Stefan F. (Gast)


Lesenswert?

Das Perl Script benutzt den Shell befehl "find . -type f", den gibt es 
unter Windows nicht.

Du kannst CygWin installieren und das Script in einer CygWin Shell 
ausführen. Dann hast du auch alle gängigen Unix Befehle verfügbar, bzw 
kannst sie nachinstallieren.

von janusch (Gast)


Lesenswert?

Stefan U. schrieb:
> Das Perl Script benutzt den Shell befehl "find . -type f", den
> gibt es
> unter Windows nicht.
>
> Du kannst CygWin installieren und das Script in einer CygWin Shell
> ausführen. Dann hast du auch alle gängigen Unix Befehle verfügbar, bzw
> kannst sie nachinstallieren.

wie führe ich das unter CygWin Shell
wie wechsele ich in mein Ordner und wie führe ich das aus

von janusch (Gast)


Angehängte Dateien:

Lesenswert?

unter windows

von janusch (Gast)


Lesenswert?

ich habe mir cygwin installiert aber "das Script in einer CygWin Shell 
ausführen"
wie ich das machen soll weiss ich nicht .

von janusch (Gast)


Angehängte Dateien:

Lesenswert?

ich bekomme das nicht hin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

./makefsdate.pl

von janusch (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> ./makefsdate.pl

geht auch nicht
-bash: ./makefsdate.pl: No such file or directory

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann wirst Du halt selbst nachsehen müssen, wo das Perl-Script auf 
Deinem Rechner ist.

von Stefan F. (Gast)


Lesenswert?

> -bash: ./makefsdate.pl: No such file or directory

Ich dachte, dass Script heisst makefsdata (mit "a" und ohne ".pl")

Möglicherweise musst die die Datei als "ausführbar" kennzeichnen, mit 
dem Befehl:

chmod a+rx makefsdata

Um sie auszuführen musst du "./" davor schreiben, weil Unix (im 
Gegensatz zu Windows) die Befehle nicht automatisch im 
Arbeitsverzeichnis sucht. Unter Unix muss man Befehle entweder mit Pfad 
aufrufen oder das Arbeisverzeichnis in die PATH variable setzen. Aber 
lass das mal besser bleiben, das wäre sehr unüblich.

"." Steht für das aktuele Arbeitsverzeichnis, das war schon klar, oder?

von janusch (Gast)


Lesenswert?

mit ./makefsdate wird mir nur eine Lehre fsdata.c erzeugt.

von Stefan F. (Gast)


Lesenswert?

Dann führe mal den find Befehl aus dem Script manuell aus und schaue, ob 
er die gewünschten Dateien findet:

cd "fs"
find . -type f

Es müssten alle Dateien im Unterverzeichnis "fs" aufgelistet werden.

von janusch (Gast)


Lesenswert?

Ich habe ein Ordner MyFolder in dem sind die makefsdata.c makfsdata  , 
so im Ordner MyFolder ist der FS Ordner in dem ist die HTML und Bilder 
drin.

oder muss alles in einem Ordner liegen?

Stefan U. schrieb:
> Dann führe mal den find Befehl aus dem Script manuell aus und
> schaue, ob er die gewünschten Dateien findet:
>
> cd "fs"
> find . -type f
> Es müssten alle Dateien im Unterverzeichnis "fs" aufgelistet werden.

da ist meine index.HTML und paar GIF bilder mehr is da nocht.
Es wird richtig aufgelistet.

von janusch (Gast)


Angehängte Dateien:

Lesenswert?

so siehe anhang

bei ./makefsdata bekomme ich eine Fehlermeldung

in der datei makefsdata hab ich den Pfad eingetragen wo Perl installiert 
ist
#!c/Perl/bin/

von hp-freund (Gast)


Lesenswert?

janusch schrieb:
> #!c/Perl/bin/

Was hat dich dazu bewegt?
Lass das mal so wie es war.

janusch schrieb:
> makefsdata

gehört in MyFolder und nicht in fs/, denn das script sucht im aktuellen 
Verzeichnis nach einem Unterverzeichnis Namens fs/.

von janusch (Gast)


Lesenswert?

es kommt aber immer die Fehlermeldung -bash: ./makefsdata: 
/usr/bin/perl: Defekter Interpreter: No such file or directory

von hp-freund (Gast)


Lesenswert?

also:

1. wechsel zu MyFolder
2. da drin sollte sich makefsdata befinden
3. ruf perl-script direkt auf: perl makefsdata

x. wenn das wieder nichts wird, nimm die exe von Holger

von Stefan F. (Gast)


Lesenswert?

Dann hast noch kein Perl installiert.
Schau mal im Setup Programm von Cygwin nach, da kannst du es suchen und 
nachinstallieren.

von hp-freund (Gast)


Lesenswert?

Stefan U. schrieb:
> Dann hast noch kein Perl installiert.

Wird das installierte active perl nicht von Cygwin verwendet?

von janusch (Gast)


Lesenswert?

hp-freund schrieb:
> also:
>
> 1. wechsel zu MyFolder
> 2. da drin sollte sich makefsdata befinden
> 3. ruf perl-script direkt auf: perl makefsdata
>
> x. wenn das wieder nichts wird, nimm die exe von Holger

$ perl makefsdata
No such file or directory at makefsdata line 17, <FILES> line 1.

von janusch (Gast)


Lesenswert?

mit der exe von Holger hab ich aber im Array eine ander Structur damit 
läuft der Webserver nicht.

von Stefan F. (Gast)


Lesenswert?

> Wird das installierte active perl nicht von Cygwin verwendet?

Ja schon, aber nicht, wenn das Script als ./makefsdata aufgerufen wird 
und der Pfad zur perl.exe sich aus der ersten Zeile des Scriptes 
ergbibt, die da lautet: #!/usr/bin/perl

Dann müsste man es schon so aufrufen: perl makefsdata

Allerdings bin ich unsicher, ob die Windows Version von Perl dann den 
find Befehl vom Cygwin finden würde. Ich glaube, es ist sicherer, Perl 
von Cygwin zu installieren und zu verwenden.

> No such file or directory at makefsdata line 17, <FILES> line 1.

Warum schaust du nicht einfach nach, was in zeile 17 steht?

> open(HEADER, "> /tmp/header") || die $!;

Also fehlt ihm wohl das Verzeichnis /tmp. Das kannst du ja ggf selbst 
anlegen: mkdir /tmp  (im CygWin Fenster)

von janusch (Gast)


Lesenswert?

mkdir: das Verzeichnis „/tmp“ kann nicht angelegt werden: File exists

von janusch (Gast)


Lesenswert?

ich habe den Ordner tmp von hand angelegt C:\webserver\makefsdata\tmp 
und troztdem kommt die Fehlermeldung

von hp-freund (Gast)


Lesenswert?

Irgendwie feht dir das Gesamtkonzept bzw. Versändnis der Umgebung/Pfade.

Ich würde auch noch Cygwin installieren, gehe aber davon aus das Stefan 
das schon hat und schneller mit der Lösung ist.

von janusch (Gast)


Lesenswert?

hp-freund schrieb:
> Irgendwie feht dir das Gesamtkonzept bzw. Versändnis der
> Umgebung/Pfade.
>
> Ich würde auch noch Cygwin installieren, gehe aber davon aus das Stefan
> das schon hat und schneller mit der Lösung ist.

Cygwin hab ich installiert

von hp-freund (Gast)


Lesenswert?

janusch schrieb:
> Cygwin hab ich installiert

Jepp, ich meinte bei mir, um jeden Schritt nachzuvollziehen.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Verstehe ich dich nun richtig, das das /tmp Verzeichnis existiert, aber 
der Open Befehl in zeile 17 dennoch fehlschlägt?

Das ist schon seltsam. Versuche es mal manuell:

echo "Hallo" > /tmp/header

Bekommst du dann eine hilfreichere Fehlermeldung?
Vielleicht hast du ein Problem mit Zugriffsrechten auf die 
Verzeichnisse.


Bei mir funktioniert dieser Perl befehl einwandfrei. Siehe angehängter 
Screenshot.

Kleine Anmerkunf dazu: Nach Eingabe des open Befehls habe ich Strg-D 
gedrückt, um die interaktive Eingabe des einzeiligen Pearl Scriptes zu 
beenden.

> Irgendwie feht dir das Gesamtkonzept bzw. Versändnis der Umgebung/Pfade.

C:\webserver\makefsdata\tmp ist jedenfalls falsch. Deas Verzeichnis 
heisst /tmp, wie man an Zeile 17 vom Perl Script erkennen kann.

Bei Unix ist das so, dass es keine Laufwerksbuchstaben (wie C:) gibt. Es 
gibt nur ein Dateisystem, und dessen Hauptverzeichnis heisst "/". Alle 
andere Verzeichnisse liegen irgendwo darunter, auch alle physikalischen 
Laufwerke werden dort eingeblendet. Bei CygWin geht das so:

/ ist das Hauptverzeichnis (= c:\cygwin64).

/home/stefan ist mein Cygwin Arbeitsverzeichnis, dass beim öffnen des 
CygWin Fensters aktiv ist (= c:\cygwin64\home\stefan).

/tmp ist das verzeichnis für temporäre Dateien (= c:\cygwin64\tmp).

Und dann blendet CygWin noch "virtuelle Verzeichnisse" ein, die du im 
Windows Dateimanger so nicht sehen kannst. Zum Beispiel

/cygdrive/c (= c:\)
/cygdrive/d (= d:\)
und so weiter

/proc (gibt es auf der Festplatte gar nicht, wird von Software beim 
Zugriff generiert).

Mein persönlicher Dokumente Order von Windows ist in Cygwin so 
erreichbar:

cd /cygdrive/c/Users/stefan/Documents/ (=C:\Users\stefan\Documents)

Wobei erschwerend hinzu kommt, dass das Verzeichnis auf der Festplatte 
"Users" heisst, aber vom Dateimanager an einigen Stellen als "Benutzer" 
angezeigt wird.

von janusch (Gast)


Lesenswert?

Stefan U. schrieb:
> Verstehe ich dich nun richtig, das das /tmp Verzeichnis existiert,
> aber der Open Befehl in zeile 17 dennoch fehlschlägt?

ja das Funktioniert nicht.
>
> Das ist schon seltsam. Versuche es mal manuell:
>
> echo "Hallo" > /tmp/header
>
> Bekommst du dann eine hilfreichere Fehlermeldung?
> Vielleicht hast du ein Problem mit Zugriffsrechten auf die
> Verzeichnisse.
>
> Bei mir funktioniert dieser Perl befehl einwandfrei. Siehe angehängter
> Screenshot.
> Kleine Anmerkunf dazu: Nach Eingabe des open Befehls habe ich Strg-D
> gedrückt, um die interaktive Eingabe des einzeiligen Pearl Scriptes zu
> beenden.
>
> Irgendwie feht dir das Gesamtkonzept bzw. Versändnis der Umgebung/Pfade.
>
> C:\webserver\makefsdata\tmp ist jedenfalls falsch. Deas Verzeichnis
> heisst /tmp, wie man an Zeile 17 vom Perl Script erkennen kann.
>
> Bei Unix ist das so, dass es keine Laufwerksbuchstaben (wie C:) gibt. Es
> gibt nur ein Dateisystem, und dessen Hauptverzeichnis heisst "/". Alle
> andere Verzeichnisse liegen irgendwo darunter, auch alle physikalischen
> Laufwerke werden dort eingeblendet. Bei CygWin geht das so:
>
> / ist das Hauptverzeichnis (= c:\cygwin64).
>
> /home/stefan ist mein Cygwin Arbeitsverzeichnis, dass beim öffnen des
> CygWin Fensters aktiv ist (= c:\cygwin64\home\stefan).
>
> /tmp ist das verzeichnis für temporäre Dateien (= c:\cygwin64\tmp).
>
> Und dann blendet CygWin noch "virtuelle Verzeichnisse" ein, die du im
> Windows Dateimanger so nicht sehen kannst. Zum Beispiel
>
> /cygdrive/c (= c:\)
> /cygdrive/d (= d:\)
> und so weiter
>
> /proc (gibt es auf der Festplatte gar nicht, wird von Software beim
> Zugriff generiert).
>
> Mein persönlicher Dokumente Order von Windows ist in Cygwin so
> erreichbar:
>
> cd /cygdrive/c/Users/stefan/Documents/ (=C:\Users\stefan\Documents)
>
> Wobei erschwerend hinzu kommt, dass das Verzeichnis auf der Festplatte
> "Users" heisst, aber vom Dateimanager an einigen Stellen als "Benutzer"
> angezeigt wird.

Unter
C:\webserver\makefsdata
sind die makefsdata und makefsdata.c und ein Ordner mit fs darin sind 
die Bilder und die Webseite.


könntest du wenn es denn geht vielleicht nochmal sagen wo der tmp Ordner 
hingehört.

wie gesagt es kommt die Fehlermeldung
./makefsdata: /usr/bin/perl: Defekter Interpreter: No such file or 
directory

Perl ist bei mir unter C:\Programme\Perl
installiert.

von janusch (Gast)


Lesenswert?

gibt es denn eine makefsdata.exe die mir das Array passend ausgibt.
Die exe von Holger funktioniert nicht das die structure vom array anders 
ist.

von janusch (Gast)


Angehängte Dateien:

Lesenswert?

Das Array muss dies structure haben.

von Stefan F. (Gast)


Lesenswert?

> könntest du wenn es denn geht vielleicht nochmal
> sagen wo der tmp Ordner hingehört.

Habe ich doch geschrieben, der Order muss in der CygWin Shell /tmp 
heissen, wass unter Windows c:\cygwin64\tmp entspricht.

> wie gesagt es kommt die Fehlermeldung
> ./makefsdata: /usr/bin/perl: Defekter Interpreter:
> No such file or directory

Jetzt bin ich aber verwirrt. Ich habe Dir bereits geschrieben, dass du 
Perl mit dem Cygwin Setup Programm installieren sollst. Und daraufhin 
hast du geschrieben, dass nun der Open Befehl in Zeile 17 fehlschlägt.

Nun scheint es wohl so, dass du eben nicht den Perl Interpreter von 
Cygwin verwendet hast, sondern den von Windows. Und der kann mit /tmp 
nichts anfangen, weil das kein gültiger Windows Pfad ist.

Das Script verwenden den Unix spezifischen "find" Befehl und Unix 
spezifische Pfade. Deswegen funktioniert es nicht mit der Windows 
Version von Perl. Du musst die Unix Version von Perl verwenden - in 
deinem Fall als Bestandteil von Cygwin.

>>> /usr/bin/perl: Defekter Interpreter: No such file or directory
>> Schau mal im Setup Programm von Cygwin nach, da kannst du es
>> suchen und nachinstallieren.
> Perl ist bei mir unter C:\Programme\Perl installiert.

Du musst schon tun, was man Dir sagt, sonst reden wir aneinander vorbei 
und dann verliere ich die Lust, Dir zu helfen.

von janusch (Gast)


Lesenswert?

OK danke.
ich hab cygwin installiert und ich dachte das wäre alles komplett.

dann mach ich das nach installieren von perl noch .

vielmals danke

von janusch (Gast)


Angehängte Dateien:

Lesenswert?

So ich hab jetzt alles installiert ich kann auch die fsdata.c erstellen 
allerdings ist das fsdata anders als in dem Projekt was ich habe und 
Kompilieren kanns ich auch nicht.
Ich habe mal das Projekt im Anhang.

Mir geht es eigentlich darum wie ich mit dem LWIP wenn ich auf der 
Webseite den Button LED ON drücke mir auch ein Bild angezeigt wird.
Doch leider finde ich nirgends ein Beispiel dafür, bis auf das Alientek 
beispiel welches ich aber nich gebrauchen kann.

mfg

von Stefan F. (Gast)


Lesenswert?

Ja dann musst du halt das Perl Script so umschreiben, dass es den 
gewünschten Output erzeugt.

Und du musst dein Programm so schreiben, dass es den Link zum Bild 
einfügt.

Wenn du das nicht hinbekommst, bleibt Dir nichts anderes übrig, als 
einen Programmierer für diese Dienstleistung zu bezahlen.

Die Einsteigshürden (Tools benutzen) hast du ja nun mit unserer Hilfe 
überwunden. Ich denke, viel mehr Hilfe können wir Dir dazu an dieser 
Stelle nicht geben.

Webserver auf Mikrocontrollern (auch lwIP) sind eine exotische 
Anwendung. Es gibt nur wenige Leute, die damit überhaupt Erfahrung 
haben, und nur ein Bruchteil dieser Leute wird Dir hier kostenlos 
Programmier-Dienste anbieten.

Also solltest Du dich nun Stück für Stück in HTML, HTTP und lwIP 
einarbeiten, bis Du die Materie so gut verstehst, dass Du dein Programm 
selbst schreiben kannst.

Für die Sache mit dem Bildern hast Du ja schon einen separaten Thread 
eröffnet. Wir sollten das Thema also hiermit beenden.

von janusch (Gast)


Lesenswert?

ich bedankte mich trotzdem erstmal ganz herzlich für die Hilfe.

Das Thema kann dann hier beendet werden.

mfg

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.