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
> 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?
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?
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".
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.
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
Sooo,
sollte eigentlich genau so mit Win cmd funktionieren.
Aber beim Ausführen des perl script kommt die Meldung:
1
FIND:Parameterformatfalsch
Die erzeugte fsdata.c ist dann nur 47byte groß.
****************************************************
Mit der makefsdata.exe von holger scheint es zu funktionieren.
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.
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
> -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?
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.
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.
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/
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/.
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
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.
> 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)
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.
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
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.
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.
> 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.
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
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.