Hallo zusammen! Ich habe ein Bus-System für eine Modelleisenbahn-Anlage eines bekannten entwickelt. Diese bekommt ihre Befehle über die serielle Schnittstelle eines PC. Unter Zeitdruck vor einer Ausstellung habe ich die PC-Software mit den mir verfügbaren und mir gewohnten Mitteln geschrieben: In PHP und MySQL. Es lief reibungslos ohne Zwischenfälle, aber es ist einfach nicht das Wahre. Die grundsätzlichen Funktionen waren die Darstellung eines Gleisbildes und den dazugehörigen Buttons zur Steuerung, sowie eine Datenbank mit dem aktuellen Status jeder Weiche etc. Womit programmiert man soetwas "richtig"? Ich kann nicht viel mehr als C und PHP (inkl MySQL), bin aber gewillt, mich in dazu benötigte objektorientierte Sprachen (am besten basierend auf C) einzuarbeiten. MfG, Horst
So schwer mir das auch fällt, aber bei den Stichworten "Windows" und "grafische Oberfläche programmieren" führt meiner Meinung nach mitlerweile kein Weg mehr an C# vorbei. Lass dich nicht vom Namen täuschen: C# hat mehr mit Java zu tun als mit C. Aber so wild sind die Unterschiede auch wieder nicht. An einem vernünftigem Buch, welches dich durch C# und vor allen Dingen der .Net Klassenbibliothek leitet führt sowieso kein Weg vorbei. C# ist in der Hinsicht immer noch besser, als das was Microsoft als 'managed C++' bezeichnet - ein Krüppel der weder C++ noch sonst irgendeine andere Sprache ist. Und C++ mit der MFC willst du wahrscheinlich nicht mehr antun. zu C++ gibt es dann noch einige andere Frameworks, die absolut brauchbar sind. Zb Qt. Aufwand und lernen muss man aber da wie dort und C# (bzw. .Net) hat dann halt den Vorteil, dass der ganze graphische Unterbau dort sauber eingebaut ist und vom Hersteller des graphischen Systems gewartet wird.
also das ist jetzt "kurios" also gerade in DIESEM Zusammenhang ist doch eine WEB-basierte Geschichte ideal Steuerung der Modelleisenbahn mit z.b. IPad anzeige von Status der weichen/Ampeln auf einem andere PC (z.b großen display) für die zuschauer speichern des ganzen in (MySQL) Datenbank: als LOG (um bei Kollisionen die Ursache feststellen zu können) ich kann im ausgangsposting auch nirgends etwas von WINDOWS lesen...
Robert L. schrieb: > ich kann im ausgangsposting auch nirgends etwas von WINDOWS lesen... Oops, du hast recht. Da hab ich was gelesen, was gar nicht dort steht.
Karl Heinz Buchegger schrieb: > Lass dich nicht vom Namen täuschen: C# hat mehr mit Java zu tun als mit > C. Aber so wild sind die Unterschiede auch wieder nicht. An einem > vernünftigem Buch, welches dich durch C# und vor allen Dingen der .Net > Klassenbibliothek leitet führt sowieso kein Weg vorbei. Da ich in der Richtung leider (gottseidank?) noch ziemlich jungfräulich bin. Was gibts denn für Empfehlungen hier für .net oder c# Literatur. Mit Schwerpunkt auf "strukturiert" und "fundiert", nicht Anfänger.
ist halt die frage was einfacher ist eine (komplett) neue Programmiersprache lernen oder das was du jetzt hast, "aufpeppen" und z.b. auf html5 mit WebSocket umbaust (das geht angeblich auch mit PHP)
Hallo Udo, wenn es Platformunabhängig sein darf, dann nimm doch Java. Das Buch "Java ist auch eine Insel" bietet eine prima Einführung. Ist auch frei im Netz einsehbar. Die freie Eclipse IDE ist ebenfalls Klasse und schreibt den Code fast von alleine. Gruß, Arno
Robert L. schrieb: > also gerade in DIESEM Zusammenhang ist doch eine WEB-basierte Geschichte > ideal > > Steuerung der Modelleisenbahn mit z.b. IPad Dafür bräuchte man erstmal einen Server. Mit C# dürfted dein Vorhaben deutlich einfacher sein, als mit PHP. Solang keine aufwändige grafische Animtionen vorkommen, kann man das auch ganz ohne MDX bzw. XNA machen.
Hast du schonmal an RocRail gedacht? Ist eine freie Modellbahnsteuerung, geschrieben in C/C++, aufgebaut als Client/Server-Modell, d.h. du hast einen Steuer-PC als Server und kannst vom Laptop, PC, Smartphone, Tablet die Anlage steuern. Link: http://wiki.rocrail.net/doku.php ...man muss das Rad ja nicht mehrmals erfinden :-)
Arno schrieb: > Hallo Udo, > > wenn es Platformunabhängig sein darf, dann nimm doch Java. Das Buch > "Java ist auch eine Insel" bietet eine prima Einführung. Ist auch frei > im Netz einsehbar. Die freie Eclipse IDE ist ebenfalls Klasse und > schreibt den Code fast von alleine. Hallo Arno, das ist jetzt ein Missverständis. Mit Eclipse und Java verdiene ich mir inden letzten Jahren meine Brötchen, allerdings Backoffice ohne Benutzeroberfläche :-) Mir gings eher drum für .net und c# Tipps für richtig gute Bücher und/oder Tutorials zu bekommen, und zwar für jemand der programmieren kann, nur die Sprache und die API noch nicht kennt. Aber da es hier doch nicht um PC Programmierung geht wollen wir den Thread nicht kapern. Trotzdem Danke.
Webbasiert ist in diesem Fall eine wunderbare Lösung gewesen, vor allem weil auch alle anderen Funktionen (sämtlicher Schnickschnack auf der Anlage) auch von einem anderen PC aus bedient werden konnten. Basiert hatte das alles auf easyPHP. ABER: -Das senden eines Befehls wurde in einem anderen Frame ausgeführt, was ein Neuladen des Gleisbildes überflüssig machte. Eine Rückmeldung (andere grafische Darstellung) musste aber trotzdem irgendwie erfolgen. -> doch jedesmal neu laden. -Zeitverzögerung: Ich habe ALLES ausprobiert, aber das laden des Gleisbildes dauerte einfach zu lange, genauer gesagt nicht das Laden, sondern es brauchte zu lange bis nach dem Laden und korrektem Anzeigen der Browser fertig war um einen neuen Befehl entgegen zu nehmen. (alle üblichen Browser ausprobiert, Rechner 2GHz Core2Duo). Ich rede hier von Klick > 1sek > Befehl ausgeführt > 1sek > Gleisbild wieder sichtbar > 3-5sek > Browser ist fertig. Das machte ein flüssiges Arbeiten unmöglich. -Man ist Grafisch eingeschränkt. Ich habe z.B. mit 3 Ebenen <div> arbeiten müssen, was ca. 300 Objekte zur Folge hatte. Eine Version mit Tabelle wurde wegen massiven Schwierigkeiten bei der Positionierung aufgegeben. C# hatte man mir auch empfohlen, deshalb mal einige Fragen an Kenner: -Kann ich Bitmaps an beliebiger Stelle (natürlich in einem begrenzen Bereich) einfügen? -Kann ich Punkte/Linien/Polygone/Text frei Positionieren und während der Laufzeit ändern/löschen? -Funktionen aufrufen durch Klick auf Punkte/Linien/Polygone/Text? -Anbindung an Datenbank, um über mehrere Rechner zugreifen zu können? Verzeiht mir die dümmlich klingenden Fragen, aber vielleicht kann mir ein Wissender die Fragen beantworten. Ich habe selbst schon im Internet gesucht, aber als Prä-Neuling ist das Suchen, vor Allem aber das Deuten der Antworten etwas schwierig. mit Java habe ich mich noch nicht befasst, dadurch möchte ich die o.g. Fragen auch für Java stellen. Fertige Lösungen habe ich mir auch angesehen, allerdings habe ich da meist Probleme mein eigenes Bus-System einzubinden. Weiterhin sind diese Programme meist nur auf Fahrbetrieb ausgelegt, ich aber auch zig Sonderfunktionen habe, die ich nicht ins Gleisbild einbauen kann.
Da könnte man eher an der Clientseite der Webanwendung optimieren... stichwort AJAX. dAnn musst du dein PHP-Zeug nicht komplett wegwerfen, solange es halbwegs brauchbar geschrieben ist. Oder wie gesagt doch schauen ob man RocRail erweitern kann.
Horst schrieb: > C# hatte man mir auch empfohlen, deshalb mal einige Fragen an Kenner: > -Kann ich Bitmaps an beliebiger Stelle (natürlich in einem begrenzen > Bereich) einfügen? Ja, Zeichnenfunktionen bei allen Steuerelementen vorhanden. > -Kann ich Punkte/Linien/Polygone/Text frei Positionieren und während der > Laufzeit ändern/löschen? Man könnte es durch ein gefärbtes Steuerelement realisieren, das ist aber nicht zu empfehlen. Die Punkte sollten in einer Tabelle gespeichert werden und beim Refresh neugezeichnet werden. > -Funktionen aufrufen durch Klick auf Punkte/Linien/Polygone/Text? Das fällt unter Kollisionserkennung und wirst du selbst machen müssen (aufgrund von Mausposition). > -Anbindung an Datenbank, um über mehrere Rechner zugreifen zu können? Ja, darüber weiß ich aber selbst nichts genaueres. Der Umfang .Nets ist riesig, selten muss man etwas selbst implementieren.
Horst schrieb: > -Das senden eines Befehls wurde in einem anderen Frame ausgeführt, was > ein Neuladen des Gleisbildes überflüssig machte. Eine Rückmeldung > (andere grafische Darstellung) musste aber trotzdem irgendwie erfolgen. > -> doch jedesmal neu laden. Das macht man über JavaScript ("AJAX" wie schon oben gesagt). Frameworks wie jQuery machen das einfach, sauber und ratzfatzschnell. > -Zeitverzögerung: Ich habe ALLES ausprobiert, aber das laden des > Gleisbildes dauerte einfach zu lange, genauer gesagt nicht das Laden, > sondern es brauchte zu lange bis nach dem Laden und korrektem Anzeigen Mit JavaScript je nach Antwort die Seite umzubauen ist sicher viel flotter. > -Man ist Grafisch eingeschränkt. Ich habe z.B. mit 3 Ebenen <div> > arbeiten müssen, was ca. 300 Objekte zur Folge hatte. Eine Version mit > Tabelle wurde wegen massiven Schwierigkeiten bei der Positionierung > aufgegeben. Klar, HTML ist eben nicht dafür gedacht, Grafiken zu zeichnen. Da nimmt man z.B. SVG oder Canvas und zeichnet das am Client entsprechend um. Oder nach deiner Methode hätte man das Bild am Server als Bild gerendert und direkt ausgeliefert. > C# hatte man mir auch empfohlen, deshalb mal einige Fragen an Kenner: > -Kann ich Bitmaps an beliebiger Stelle (natürlich in einem begrenzen > Bereich) einfügen? > -Kann ich Punkte/Linien/Polygone/Text frei Positionieren und während der > Laufzeit ändern/löschen? > -Funktionen aufrufen durch Klick auf Punkte/Linien/Polygone/Text? > -Anbindung an Datenbank, um über mehrere Rechner zugreifen zu können? Kann ich dir leider nicht beantworten, aber mit JavaScript + Server geht das alles recht leicht, sauber und schnell.
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.