Hallo zusammen. Ich möchte hier auch mal mein Projekt vorstellen an dem ich schon eine weile sitze. Wer kennt es nicht? Man hat ein Grafikdisplay und möchte die Anzeige auf dem Display gut aussehen lassen. Also sitzt man Stunden davor um ein einigermaßen gutes UI-Design manuell zu programmieren. Ehrlich gesagt finde ich es für mich schon lästig immer wieder das ganze aufzubauen, copy und paste, anpassen, kompilieren und aufspielen, schauen ob es passt usw. usw. Im Internet habe ich nichts gefunden das einem die Arbeit für meine Bedürfnisse erleichtert. Also kurzer Hand beschlossen... Ich mach mir ein eigenes Programm... VSD - Virtual Screen Designer Viele kennen es, dass "Virtual" in der Programmierung eine drag'n'drop Programmierung von Benutzersteuerelemente ist. Ein sogenannter WYSIWYG-Editor (WhatYouSeeIsWhatYouGet). Dieses Programm soll es mir zukünftig erleichtern Projektbasierend und Objektorientierte Screens, Menüs, etc. für Grafiksiplays zu erstellen. Als Background-Programmierung habe ich mir meine eigene Display-Lib erstellt. Was soll der VSD können und was kann er bis jetzt Können soll er eigentlich alles... aber mal schauen was ich alles reinpcke. Was soll VSD können : - Auswahl verschiedener Displays - Projekterstellung mit mehreren Screens - Aktive Speicherplatz Berechnung - Code-Erzeugung: - für ArduinoIDE und AtmelStudio - als Selbstlaufendes Projekt oder nur als Include - So ziemlich alle Benutzersteuerelemente mit Eigenschaften-Einstellungen (Button, Lable, Rechtecke, Linien, Kreise, usw...) - Button-Touch funktionen und vielleicht noch anderes was mir bis jetzt noch nicht in den Sinn gekommen ist. Vielleicht habt ihr noch Vorschläge. Was kann VSD bis jetzt : - Projekterstellung - Auswahlmöglichkeit von verschiedenen Displays - Erstellen von mehreren Screens in einem Projekt - Eigenschaften verändern von Benutzersteuerelmente - Erstellen von Buttons (Press-Funktion noch in Arbeit) - Erstellen von Rechtecken - Code-Generierung (momentan nur als Copy/Paste möglich) Gerne könnt Ihr eure Meinung, Vorschläge mir mitteilen. Den Fortschritt werde ich hier zukünftig weiter posten. Gruß Alex
:
Verschoben durch Admin
Nachtrag: Hab vergessen eindeutig zu erwähnen, dass der VSD nur für ATMEL µC ist. Mir stehen nur µC zur Verfügung die in den Arduino Uno (28Pin) passen. Andere Boards zum testen habe ich leider keine. Deshalb würde ich mich sehr freuen wenn sich der eine oder andere dazu bereit erklärt, hin und wieder meine Software auf andere Boards bzw. Atmel-µC zu testen. Um auch später die Display-Auswahl zu erweitern, würde ich mich auf eine Zusammenarbeit sehr freuen. Momentan besitze ich nur die im Projekt enthaltenen Displays (das PIXNOR und DOG-M). Wer interesse hat bitte per PM melden.
Super Idee, ganz ehrlich. Was hast du als Sprache gewählt? Sieht etwas nach Delphi (Lazarus) aus. Grüsse, René
Vielen Dank René. Ich benutze Visual Basic. Gruß Alex
Sieht gut aus, so etwas in der Art habe ich auch schon gesucht, allerdings µC- und TFT-Unabhängig. Leider habe ich nichts gefunden was mich so richtig zufriedengestellt hätte, da zuviel Gimmicks im Spiel waren. Ich bräuchte einen Designer der nackten Code erzeugt und ich den dann händisch in mein System einbinden kann, wenn du verstehst was ich meine. Ansonsten würde ich mich und mein Equipment anbieten: STM32F429 über eigenen LTDC an 7" 800x480 TFT. Und wie gesagt, ich fände es sehr interessant, wenn der Designer nur das Nötigste erzeugt, um das händisch auf dem Controller zu implementieren. Grüße Reggie
Ohne selbst sowas zu benötigen, aber da wäre eine XHTML+CSS Kombination was nettes. Im Browser kann man sich das Ergebnis ansehen. Eine XSL-Transformation wandelt dann die XHTML Datei in C oder was auch immer um. Da könnte man dann bei den Buttons und sonst was auch direkt gleich C-Code in HTML als Tag reinschreiben, der dann in das Ziel-File rumgebogen wird. Lg PS: Delphi ist super. Habe mir eine Delphi 7 Lizenz gegönnt. Vor vielen Jahren.
Reginald L. schrieb: > µC- und TFT-Unabhängig µC unabhängig ist es im indirektem Sinne auch. Mit geringem Aufwand kann man auch andere Lib's einbinden die für andere µC gedacht sind. Ausgeben kann man dann ja einfach include-Files in C++. TFT unabhängig wird es auch. Statt ein Display auszuwählen wählt man die Auswahl "Eigenes Display" aus. Reginald L. schrieb: > Ich bräuchte einen Designer der nackten Code erzeugt Wie nackt meinst du? Ausgegeben wird der ganze Quellcode. Also Funktionsaufruf und Parameterübergabe. Reginald L. schrieb: > würde ich mich und mein Equipment anbieten Vielen dank, werde gerne mal darauf zurück kommen. Momentan ist die Programmierung noch nicht so weit um jetzt schon weitere Displays einzubinden.
Alex R. schrieb: > Wie nackt meinst du? > Ausgegeben wird der ganze Quellcode. Also Funktionsaufruf und > Parameterübergabe. Damit meinte ich, dass man selber einen simplen Scheduler programmieren kann. Einfach um die eigenen Wünsche erfüllen kann. Alex R. schrieb: >> würde ich mich und mein Equipment anbieten > Vielen dank, werde gerne mal darauf zurück kommen. Momentan ist die > Programmierung noch nicht so weit um jetzt schon weitere Displays > einzubinden. Gerne doch, kannst mich dann auch per PM erreichen. Ich habe vor einiger Zeit mal eine Textausgabe-Funktion für den STM32 geschrieben (mit Antialiasing, Fonts können mit FontConverter oder TheDotFactory erstellt werden) und eine Console implementiert. Ist jetzt nichts großartiges, aber wenn da Interesse besteht kannst dich auch gerne melden. Dein Vorhaben finde ich allerdings grandios, wäre cool, wenn da was draus wird.
So etwas gibt es unter den Namen HMI, HMI display, HMI display design oder ähnlichen. Dennoch wäre dieses Projekt nicht weniger interessant. Vor allem für kleine uC und auch, weil es bisher bei wenig bekannten Insellösungen geblieben ist. Konsequent fände ich bei dem GUI-Feeling, dass Du anhand der ersten Bilder scheinbar anstrebst, die Nutzung des QT-Designer mit einer Einschränkung (Liste) der benutzbaren Elemente und Attribute. Dann braucht man sich mit der (Weiter-)Entwicklung und Wartung des GUI-Designers nicht befassen und setzt beim Parsing des oder der QT-Files an. Idealerweise hat Deine Wunschprogrammiersprache bereits einen passenden Parser dafür. Und Du kannst alle QT-Nutzer ansprechen. https://de.wikipedia.org/wiki/Qt_%28Bibliothek%29 Falls Du Bitmaps speicherst, so könntest Du (automatisiert) auch gleich Sceenshots am PC machen.
Hallo zusammen, ich möchte mal kurz den aktuellen stand mitteilen. Anfangs kam ich leider nicht mehr dazu weiter zu machen. Die letzte Zeit habe ich meine Display-Lib etwas umgeschrieben um andere Displays besser und einfacher implementieren zu können. Des weiteren bin ich gerade dabei einen Einrichtungs-Assistenten zu machen. Sobald dieser fertig ist und die größten Bugs beseitigt sind werde ich den VSD zum download einstellen. Bis dahin dauert es noch eine Weile. Gruß Alex
:
Bearbeitet durch User
OHA... Danke für den Link. Habe früher wirklich lange recherchiert aber bin noch nie auf dieses Seite gestoßen. Werde es mir heute Abend mal anschauen. Dann werde ich mich entscheiden ob ich mein Projekt einstampfen kann :/
Alex R. schrieb: > Dann werde ich mich entscheiden ob ich mein Projekt einstampfen kann :/ Wenn du in Richtung MIT-Lizenz gehst, stampf es nicht ein. Wenn du damit Geld verdienen möchtest, gibt es allerdings schon einige Projekte dieser Art. Ich bin für nicht-einstampfen.
Ich werde es nicht einstampfen. Ich habe uGFX ausprobiert. Es ist zwar nice to use aber zu kompliziert um sofort ein brauchbares Ergebnis zu haben. Ich möchte das Ziel-Display und Microcontroller auswählen, Screens erstellen und dann den Code ausgeben und hochladen. Fertig. Ohne im Quellcode rumpfuschen zu müssen.
Prinzipiell finde ich die Idee gut, aaaaaber: Bitte zur Entwicklung unbedingt !!! ein Werkzueg verwenden, welches plattformunabhängig einsetzbar ist! Ich finde diese einseitige Windows-Zentriertheit dumm, unangemessen und zudem vollkommen unnötig Es ist einfach schade, wie viele gute Ideen dadurch für Entwickler auf anderen Plattformen (Mac, Linux, ...) verloren gehen. Mit ein wenig Überlegung im Vorfeld ist das kein großes Ding (Java, Xojo, HTML/CSS ....) ERST DENKEN, DANN MACHEN, bitte ...
Hallo, ich verstehe zwar Deinen Wunsch, aber: warum sollte er? Er braucht dieses Programm und erstellt es mit den Mitteln, die er beherrscht auf seinem System. Er stellt es zur Verfügung, jeder kann die Ideen und Abläufe nutzen und für ein eigenes Tool nutzen. Vielleicht gibt es auch den Source-Code, dann hat man es etwas einfacher es zu protieren. Habe ich vor Jahren mit meinem Logic-Analyzer auch so gehalten. War in VB6 und spielt (auch bei ein paar anderen leuten) heute noch. >Ich finde diese einseitige Windows-Zentriertheit dumm, unangemessen und >zudem vollkommen unnötig Ah ja. RasPi Jessie, USB-Soundkarte. Schnell ein paar Einstellungen noch ändern. Ach? Der alsa-Kram ist inzwischen ganz anders organisiert? WLAN-Stick noch ran. Nanu, Nichtmehr network sondern ein dhcpcd als Dämon. ok, hat ja irgendwo eine config. Achso, die Einstellungen werden durch irgendwelche hidden-Dateien im $home sowiese überschreiben??? Natürlich stört das keinen Linuxer, wenn damit etliche Anwender auf die Schnauze fallen, die haupsächlich nur anwenden. Die paar dutzend Seiten man-pages wird der User ja mal schnell lesen können und seine Linuxkenntnisse gleich aufbessern. Wie jetzt? Ich wollte nur den MPD und die Soundkarte anpassen und WLAN statt LAN nehmen? Ich wollte Debian auf einem neuen RasPi nur genauso nutzen wie Windows auf einem neuen PC. Komischweise habe ich seit Ende von Win98 dort diese Probleme so nicht. Sorry, hat mich nur letzte Woche ziemlich geärgert der beachtliche zusätzliche Zeitaufwand. Gruß aus Berlin Michael
Hallo, grundsätzlich muss ich Michael recht geben. Jeder sollte in dem System entwickeln, in dem er zu Hause ist. Ich würde auch gerne mit einem anderen System als Windows arbeiten und ich habe schon so ziemlich alles hinter mir, angefangen von Windows mit mehren VMs über Linux mit VMs, Mac mit Fusion. Letztlich bin ich wieder auf einem Windows Notebook gelandet. Warum? Alle meine Kunden haben Windows meine primäre Entwicklung ist .NET. So jetzt aber zu diesem Projekt. Geile Idee!!! Mein Verbesserungsvorschlag, wäre lediglich direkt eine Skripting Umgebung vorzusehen. D.h. Der Zielcode wird nicht durch einen festen Algorithmus erzeugt sondern durch eine Skripting Engine, der Output sich jeder anpassen kann. Also seine eigenen Scripte für die jeweilige Zielplattform bauen. Ich habe schon mehrfach solche Dinge programmiert um die verschiedenen Anforderungen in Projekten abzubilden. Wenn Du da Tipps haben möchtest, stehe ich gerne zur Verfügung. Gruß Frank
Frank E. schrieb: > ein Werkzueg verwenden, welches > plattformunabhängig einsetzbar ist! Sorry, dass es dich ärgert aber ich benutze nur Windows und habe es damals in VB schon angefangen. Der Aufwand wäre für mich persönlich viel zu groß. Ansonsten stimme ich auch Michael und Frank zu. Frank L. schrieb: > Mein > Verbesserungsvorschlag, wäre lediglich direkt eine Skripting Umgebung > vorzusehen. D.h. Der Zielcode wird nicht durch einen festen Algorithmus > erzeugt sondern durch eine Skripting Engine, der Output sich jeder > anpassen kann. Also seine eigenen Scripte für die jeweilige > Zielplattform bauen. Hab ich schon von Anfang an mit eingeplant ;) Aber trotzdem Danke für deinen Vorschlag. Du könntest mir vielleicht sagen wie du das gelöst hast. Ich mache das mit xml.
:
Bearbeitet durch User
Hallo Alex, da gibt es verschiedene Möglichkeiten. D.h. XML und Transformation ist eine Lösung. Die aus meiner persönlichen Sicht sauberste Lösung ist der Einsatz von VB-Script, CS-Script oder ähnlichem direkt in der Anwendung. Hierzu baue ich mein Datenmodell so auf, dass ich es aus einer Scriptengine heraus direkt ansprechen kann. Ich persönlich setze zu diesem Zweck CSscript ein: http://www.csscript.net/ In Netz findest Du zum Thema einiges. Ich habe mal ein Template angehangen, welches wir benutzten, um Hostmasken die wir auslesen in C# ansprechen zu können. Es ist nur eins von insgesamt 7 Skripten die zusammen genommen die Zugriffsschicht generieren. Für die Freunde von XML Transformation, ja geht auch, ist mir aber zu aufwendig und teilweise nicht flexibel genug. Gruß Frank
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.