Hallo, ich habe ein Problem, dass wohl viele "Hardwerker" haben: Ich habe eine eigene HW gebaut mit RS232(bzw. USB) Interface zum PC. Die Steuerung erfolgt derzeit über ein Terminalprogramm mit propritären Befehlen. Also eine Art Kommandozeilenbedienung. Nun möchte ich aber die Befehle, Werte etc. komfortabler über eine Webseite steuern, habe von des (Web/PC-)Programmierung aber nur wenig Ahnung. Meine Controller-SW schreibe ich in ASM und C. Also im wesentlichen geht es darum Werte darzustellen die per RS232/USB-String ankommen und Werte die man in ein Feld eintragen kann, dann per Mausklick und bestimmtem Befehl versenden. Später dann noch irgendwelche grafischen Gimmiks (Temperaturkurven etc.)- das ist aber erst mal nicht das Thema. Kennt irgendjemand ein gutes Tool oder Beispiele die einem Anfänger da schnell zu Ergebnissen kommen lassen? Idealerweise natürlich Freeware-Tools. Für jeden Tip / Link wäre ich dankbar. Über die Forumssuche war ich nicht erfolgreich.
XAMMP als webserver Perl oder PHP als Programmiersprache.
@Vlad: Irgendwelche links / Seiten als Einstiegshilfe zum schnellen erlernen? Vielleicht eine Beispielseite mit ählichem Inhalt um sich das mal anzuschauen?
Im Grunde genommen brauchst Du einen kleine webserver. Die gibt es haufenweise, auch gut dokumentiert http://www.mikrocontroller.net/articles/Miniwebserver vielleicht kann so ein Server Deine Hardware steuern.
er sucht ja keinen Server für seine Hardware, sondern ein PC-Programm. Aber der Apache ist vielleicht ein bisschen dick. man findet doch bestimmt was kleines, was cgi kann. den Rest erledigt man in Perl
Ich meinte das so, dass er keine neue Hardware baut - die hat er ja schon - sondern dass er die Software auf seine Hardware anpasst. Hab mich da etwas unklar ausgedrückt.
Vlad Tepesch schrieb: > Aber der Apache ist vielleicht ein bisschen dick Ist zwar im PC Umfeld sowas von egal, da sollte man sich überlegen ob man ein "dickes" (weswegen eigentlich? Apache ist recht modular...) Paket holt was viele kennen oder irgendwas schlankes wo man Mühevoll sich die Infos zusammen suchen muß. Etwas das von sich behauptet sehr schlank zu sein und auch PHP unterstützt ist z.B. http://www.lighttpd.net/
usuru schrieb: > Ich meinte das so, dass er keine neue Hardware baut - die hat er ja > schon - sondern dass er die Software auf seine Hardware anpasst. Hab > mich da etwas unklar ausgedrückt. er hat ja aber eine Serielle Verbingung, kein Ethernet. Läubi .. schrieb: > Vlad Tepesch schrieb: >> Aber der Apache ist vielleicht ein bisschen dick > > Ist zwar im PC Umfeld sowas von egal, da sollte man sich überlegen ob > man ein "dickes" (weswegen eigentlich? Apache ist recht modular...) Ich bin davon ausgegangen, dass er keine Erfahrungen hat. da ist der Apache schon ein Monster, was Konfiguration an geht. Da ist eine kleine Fire-And-Forget-Lösung besser, die man startet und die dann einfach alle Dokumenten eines Verzeichnisses ausliefert, ohne, dass erst 1000 Configeinträge angepasst und Rechte gesetzt werden müssen.
DU lädst dir XAMP (oder Apache Webserver alleine) runter, folgst dem Setup und kopierts dann die gewünschte Datei in den ordner htdocs da muß man nichts konfigurieren oder rechte setzen. Das schlägst du doch selbst im ersten Post vor?? Und wem das schon zu viel ist der Scheitert garantiert an: Newby schrieb: > Nun möchte ich aber die Befehle, Werte etc. komfortabler über eine > Webseite steuern, habe von des (Web/PC-)Programmierung aber nur wenig > Ahnung. und sollte erst recht nicht einen Port ggf. ins Weltweite Netz öffnen...
@Vlad, ja du hast mich 100% verstanden -> endlich mal jemand ;-) Mein serielles Protokoll kann ich easy anpassen, das ist kein Problem. Nur auf der PC-Seite möchte ich es einfach haben, nach dem Motto: Ein Button drücken auf PC-Seite und der schickt einen propritären Befehl an meine HW, die dann wiederum eine Antwort liefert die in einem Feld angezeigt wird: PC: Befehl "Schicke mir Termperaturwert von Sensor_1" MC: Antwort "Sensor_1 : 25,4°C" Irgendwelche öffentliche Seiten/Beispiele?
Newby schrieb: > Irgendwelche öffentliche Seiten/Beispiele? Für die Babybrei Lösung muss man i.A. zahlen, für alles andere gilt: Selbst nachdenken. Du hast doch schon die "Lösung" (dein Terminal) Newby schrieb: > PC: Befehl "Schicke mir Termperaturwert von Sensor_1" > MC: Antwort "Sensor_1 : 25,4°C" Du musst nur dies jetzt in eine Form bringen das es als Website ausgeliefert wird, dafür wirst du nur nix vorgekautes finden! Und da du nicht mal sagst ob du unter Linux oder Win, Mac os oder wasweißich arbeitest ist es auch schwer dir Tipps zu geben.
Läubi .. schrieb: > DU lädst dir XAMP (oder Apache Webserver alleine) runter, folgst dem > Setup und kopierts dann die gewünschte Datei in den ordner htdocs da muß > man nichts konfigurieren oder rechte setzen. Das schlägst du doch selbst > im ersten Post vor?? genau, wenn ich mich recht entsinne, war es als ich damals den XAMP aufgesetzt hatte, nicht ganz so einfach mit den Perl Skripten zum laufen bekommen. da mussten noch Ordner definiert werden, in denen die Ausführung von cgi-Skripten erlaubt ist. Kann mich aber auch täuschen, ist schon 6-7 Jahre her ;)
@Laeubi: Windows - vorzugsweise! >Du musst nur dies jetzt in eine Form bringen das es als Website >ausgeliefert wird, dafür wirst du nur nix vorgekautes finden! >Und da du nicht mal sagst ob du unter Linux oder Win, Mac os oder >wasweißich arbeitest ist es auch schwer dir Tipps zu geben. Entschuldige mein "Unwissen" an der Ecke. Aber wäre mir alles klar, hätte ich auch keinen Eintrag im Forum generiert ;-) Andersrum: Könnte ich über meine Schnittstelle einfach eine Art html-Protokoll ausgeben und mir das dann im Webbrowser anzeigen lassen? Oder benötige ich dann einen Server bzw. Ethernet?
Es gibt von Lantronix passende Konverter RS232 auf HTML für die welche es sich einfach machen wollen. Günstig oder gar Kostenlos ist das aber nicht. http://www.lantronix.com/device-networking/embedded-device-servers/xport.html Dann kannst du ein HTTP Protokoll nutzen und darüber ein *HTML Dokument* ausgeben...
Nimm dir Windows mit IIS und .net 2.0, da kannst du dann ASP.net drauf laufen lassen. Zur Entwicklung dann Visual Studio Web Developer 2010. Hat den Vorteil, dass du via .net Framework sofort auf den COM Port zugreiffen kannst und du die einzelnen Webpages einfach "zusammen klickst". Ausserdem bietet das Visual Studio eine Funktion die so enstandene Homepage sofort auf deinen IIS zu laden. Ist nach meiner Erfahrung eine sehr schnelle und komfortable Lösung, da du z.B. mit PHP keinen direkten COM-Port Zugriff hast. Steuere über eine so entwickelte WEB-Oberfläche mehrere über RS232 verbundene RGB Leds an, funktioniert super!
Newby schrieb: > Andersrum: > Könnte ich über meine Schnittstelle einfach eine Art html-Protokoll > ausgeben und mir das dann im Webbrowser anzeigen lassen? > Oder benötige ich dann einen Server bzw. Ethernet? das macht nicht viel Sinn, wenn du nicht auch die Anfragen in der Form behandeln willst - und das willst du nicht. da du (vorerst) sowieso einen PC für die Umsetzung Seriell<->Netzwerk brauchst, kannst du die Übersetzung htmlsprech<->dein Protokoll auch da machen.
Vlad Tepesch schrieb: > da du (vorerst) sowieso einen PC für die Umsetzung Seriell<->Netzwerk Nein, siehe XPORT. Dieser hat auch einen Modus in welchem man mittels einem Java Applet welches einfach einen Stream öffnet auf welchem die Serielle Verbindung umgeleitet wird wenn man nun partou sich die paar Zeilen Code für ein http Protokoll sparen will. Diesen "Modus" könnte man auch nutzen um das ganze einfach in PHP mittels fopen als Datei zu öffnen.
Ähhhmmm: IIS sagt mir leider auch nichts. Visaul Studio hatte ich testweise schon am Laufen; auch eine Verbindung über COM.Port hatte ich hin bekommen; dann war mir aber der weitere Aufwand zu groß, deshalb suche ich jetzt einen einfachere Lösung. Vielleicht gibts die auch nicht!
IIS: Internet Information Service, ist der Server welcher die ASP.net Seiten ausliefert. Eigentlich ist das ganze mit Visual Studio schon sehr einfach... 1. Neue ASPX Seite erstellen 2. Button aus der Toolbox auf die Seite ziehen 3. Button doppelklicken 4. In die enstandene Methode eine Instanz von Serialport erstellen. 5. Alle benötigten Parameter (Baudrate usw.) definieren 6. Mit WriteLine den gewünschten Text senden. Fertig!
Newby schrieb: > Vielleicht gibts die auch nicht! Jetzt schon ;) Ich habe mal eine kleine Demo auf Java Basis mit Jetty und der RXTX Lib gebaut: http://laeubi-soft.de/downloads/tools/serieller-webserver.html Die Demo sendet den eingegeben String an der Seriellen Schnittstelle raus und gibt die Antwort wieder aus. Wichtig! Der Controller muss antworten mit einem \n terminiertem String auch wenn er das Kommando nicht kennt! Die Version enthält nur die DLL für Windows für andere Betriebssysteme muß die passende nativeLib von RXTX genutzt werden. Ich konnte das bisher nicht vollständig testen, da ich kein Serielles Gerät hab mit dem sich das testen ließe... ... ein Feedback wäre also nicht schlecht.
wie wärs einfach mit ein bisschen C(++)? liefert ein schlankes programm, das genau das kann was du willst. und das ganze läuft dann auch noch ohne zig-mb lufzeitumgebung. und wenn sorgfältig programmiert kann man (bis auf kleine teile) das ganze auf ein anderes os portieren...
Ich hab mal genau so einen Server auf dem Mega644 controller gebaut. Die Seiten wurden hochgeladen und waren auf einem externen Flash gespeichert. Daher ist es machbar. Aber nicht einfach oder kostenlos. Wir wollten dann ein devkit dazu verkloppen. Die Nachfrage war aber bescheiden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.