Hallo, ich habe eine softwaretechnische Frage und hoffe ich bin hier richtig. Ich würde gern Daten die über eine serielle Schnittstelle ankommen zum einen in einer selbst programmierten Software darstellen (das bekomme ich wohl hin) und zum anderen in einem Web-Interface, eventuell auch nur in einem Web-Interface. Meine frage ist nun in welcher Sprache und/oder wie programmiere ich das und wie greife ich mit dem Web-Interface auf die serielle Schnittstelle zu? Ich kenne mich recht gut mit C und C# aus habe sonst aber noch nicht groß an Homepages oder ähnlichem gearbeitet. Natürlich erwarte ich keinen Quellcode der mir hier zu Verfügung gestellt wird sondern nur ein paar theoretische Lösungsansätze bzw. Vorgehensweisen. Vielen Dank im Voraus!
mit C# kannst du einen webservice schreiben. Dies ist dann ein Programm was innerhalb eines Webservers läuft und dort kann man ganz normal auf die Serielle Schnittstelle zugreifen und als Output musst du halt html generieren. Oder die schreibst mit C# einen Dienst (Windows-Service) und stellt damit einen Webserver bereit. In Prinzip das gleiche wie oben nur das du dann keinen IIS brauchst.
Das Webinterface moechte HTTP, also muss die Quelle HTTP koennen. Falls das nicht geht, muss man einen Umsetzer schreiben, der die Kommunikation macht und einen Websocket zur Verfuegung stellt. So einen Umsetzer zu schreiben ist eine groessere Sache. Auch fuer den Client, dh den PC. Fuer einen Server PC eher nicht machbar. Wenn man ein neues Geraet entwickelt, welches ein webbasiertes Interface haben soll, sollte man dem Geraet auch gleich HTTP beibringen.
Also, wenn ich das lösen müsste, würde ich einen Sioux (open source HTTP Server) nehmen (https://github.com/TorstenRobitzki/Sioux). Der kann comet, damit kannst Du dann angeschlossene Browser live mit hereintrudelnden Daten versorgen. Ist allerdings C++. Sioux nutzt eh schon Boost.asio und Asio kann auch serielle Schnittstellen lesen. Die Web-Seite wäre dann entweder statisches HTML plus ein bisschen JavaScript, oder wenn es komplizierter sein muss, würde auch Ruby on Rails gehen. mfg Torsten
Und wenn ich das ganze auf dem Raspberry Pi 2 laufen lasse? Gibt es da Probleme? Also die Daten sollen an der seriellen Schnittstelle des Pi's ausgelesen werden und dann online angezeigt werden. Kann man das auch mit asp.net realisieren ?
bass schrieb: > Und wenn ich das ganze auf dem Raspberry Pi 2 laufen lasse? Gibt es da > Probleme? > > Also die Daten sollen an der seriellen Schnittstelle des Pi's ausgelesen > werden und dann online angezeigt werden. Kann man das auch mit asp.net > realisieren ? ja, sollte unter mono (.net for Linux) laufen.
bass schrieb: > Und wenn ich das ganze auf dem Raspberry Pi 2 laufen lasse? Gibt es da > Probleme? > > Also die Daten sollen an der seriellen Schnittstelle des Pi's ausgelesen > werden und dann online angezeigt werden. Kann man das auch mit asp.net > realisieren ? Ganz ehrlich ... guck dir bitte Django/Python/PySerial oder Node.js/node-serialport an. Du hast mit Node oder Django so beängstigend schnell einen Server "online" um erstmal was am zu am laufen zu haben. Und die Anbindung an deinen SerialPort bekommst du auch mit wenig Aufwand hin. Und tonnenweise Beispiele findest du obendrein. Okay, ich kenne das von den anderen genannte Zeug nicht, aber noch einfacher und schneller als das mit Node/Django zu realiseren kann ich mir nur schwer vorstellen.
..,- schrieb: > Ganz ehrlich ... guck dir bitte Django/Python/PySerial oder > Node.js/node-serialport an. > > Du hast mit Node oder Django so beängstigend schnell einen Server > "online" um erstmal was am zu am laufen zu haben. Und die Anbindung an > deinen SerialPort bekommst du auch mit wenig Aufwand hin. Egal was du nimmst, trenne die Daten vom html-Code. Für so was ist JSON und Ajax das Mittel der Wahl. Zu klären wäre aber erst mal, ob die seriellen Daten mit dem Request synchron geholt werden oder ob das 2 Paar Schuhe sind. Wenn das asynchron kommt, dann musst du entweder im Speicher oder auf Platte den aktuellen Zustand vorhalten, und beim http-Request diesen Zustand ausliefern. Das sind in Json nur ganz wenig Daten und du brauchst dir um den ganzen html-Kram an dieser Stelle keine Gedanken machen. In der Regel hat man schon eine http-Server Umgebung. Alles was sicherheitsrelevant ist kann da verbleiben. Dieser Server kann dann alle html-Seiten, Bilder u.s.w. ausliefern. Für die paar Byte reinen Daten macht dieser Server dann einen Request zu dem o.g. Servern oder liest sich die Daten nur von der Platte. Auf alle Fälle besser als einen nodejs oder Python-Server direkt online in die Welt zu stellen.
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.