Hallo, ich bin Windoof-Benutzer und habe bisher meine kleinen PC-Progrämmchen unter VB6 geschrieben. Dies wird aber seit Vista nicht mehr unterstützt und das .net-Geraffel will ich mir nicht antun. Also habe ich mir PureBasic mal angesehen und ein kleines Programm zur Kommunikation mit einem ATTiny2313 über die serielle Schnittstelle geschrieben. Es dient zum Parametrieren von Lokfahrtreglern für RC-gesteuerte Gartenbahn: http://www.hanneslux.de/planet5b/index.html Dieses Steuerungs-System hat inzwischen auch Benutzer, deren PCs unter Linux oder Mac-OSX laufen, somit wird die vielgepriesene Portablität interessant. Ist hier jemand, der mit PureBasic unter Linux oder Mac-OS arbeitet und mir mal den beiliegenden Quelltext für Linux bzw. Mac-OS compiliert? Der Quelltext hat knapp 450 Zeilen, liegt also noch weit unter der 800-Zeilen-Grenze der Demo-Version. Vielen Dank ...
sorry, ich nix basic. warum machst du das nicht z.B. in Python? Mit Pyserial kannst du das für jede Platform sehr einfach machen
Heinz schrieb: > sorry, ich nix basic. Sorry, ich nix Python. Dafür aber Basic seit 1989. Und Basic ist besser als sein Ruf, es geht sogar ganz ohne "Goto". Heinz schrieb: > warum machst du das nicht z.B. in Python? Weil ich Python nicht kann und mich damit auch nicht verzetteln will. Jenseits der Sechzig lernt es sich nunmal nicht mehr so leicht, diese Erfahrung wirst Du aber auch noch irgendwann machen... Und es funktioniert ja, zumindest unter Windoof. Und nur um ein Executable für Linux und Mac-Unix zu bekommen muss ich doch nicht unbedingt Linux und Mac-OS lernen... :-)) So, und nun kann der Nächste fragen, warum ich es nicht in Java, C++ oder C# mache... ...
Hallo, Hannes. Auch wenn dieser Beitrag Dich deiner Problemlösung nicht weiterbringt: Hast Du Dir schon mal GfaBasic32 angeschaut? Die Compilate laufen auch noch unter dem "tollen, neuen" Windows 8, der Compiler bzw. das komplette Entwicklungssystem ist keine 10 MB groß, unterstützt das gesamte Windows-API, Libraries, ... und ist pfeilschnell - Selbiges gilt auch für die erzeugten Programme! (Das treibt so manchen Anhänger der "Westboro Church of "C" die Tränen in die Augen ;-) http://sites.google.com/site/gfabasic322/ http://www.peterheinzig.de/ Mit freundlichem Gruß, Ernst
Hannes Lux schrieb: > Dafür aber Basic seit 1989. Und Basic ist besser als sein Ruf, es geht > > sogar ganz ohne "Goto". > > Heinz schrieb: > >> warum machst du das nicht z.B. in Python? > > Weil ich Python nicht kann und mich damit auch nicht verzetteln will. > > Jenseits der Sechzig lernt es sich nunmal nicht mehr so leicht, diese > > Erfahrung wirst Du aber auch noch irgendwann machen... Das kann ich nicht beurteilen. Ich bin erst jenseits der Dreizig. Aber Wenn du schon seit 1989 mit Basic arbeitest und darin strukturiert Programmierst, sollte der umstieg auf eine andere strukturierte Sprache sehr leicht sein. Nur der Syntax untescheidet sich, das Programmierkonzept ist "immer" das selbe. Gerade Python ist hier sehr einfach. Du kannst damit zwar auch (bzw. sehr gut) OOP machen aber da ist dann neben dem Systax auch das Konzept ein anderes und der erforderliche lernaufwand wohl nicht gerechtfertigt. Mit Progammierspachen ist es wie mit anderem Wekzeug auch. Du kannst zwar mit einer Zange einen Nagel in die Wand schlagen, mit einem Hammer geht es hingegen um ein vielfaches einfacher.
Hannes Lux schrieb: > Dies wird aber seit Vista nicht mehr unterstützt Es sollte aber trotzdem laufen. Ich würde an deiner Stelle bei Visual Basic bleiben. Im übrigen ist .NET keine wirkliche Umstellung, die Änderungen sind minimal. Ich denke, wer sich mit VB6 auskennt, kann ich in einem Tag auch in VB.NET einarbeiten. Als IDE kannst du dir SharpDevelop umsonst runterladen. BTW Wer benutzt freiwillig Vista?
Der Hannes wollte doch einfach nur, dass jemand sein Basic-Programm für Linux und MacOS baut. Ich hab's mal gemacht, allerdings sieht das Ergebnis noch etwas verwackelt aus (s. Screenshot). Ach ja: Ich garantiere nicht dafür, dass der Anhang frei von Malware ist, sondern nur dafür, dass ich nichts dergleichen absichtlich eingebaut habe.
Yalu X. schrieb: > Ich hab's mal gemacht, Erstmal vielen Dank. Da ich mich im Unix-Bereich gar nicht auskenne, stellt sich mir jetzt die Frage, wie das mit der Dateiextension ist und ob die Datei unter Linux, Mac-OSX oder gar beiden läuft. Yalu X. schrieb: > Ich garantiere nicht dafür, dass der Anhang frei von Malware > ist, Der war gut... Ich hatte zuerst externe Bilddateien geladen, da sah es aus wie im Anhang. Doch dann bin ich wegen der Portierbarkeit und Unkenntnis der Unix-Systeme auf Malen umgestiegen. Die Malware soll ja nicht unbedingt künstlerisch wertvoll sein, sondern dem Benutzer (ohne Prosa) zeigen, was vorn und hinten ist und wierum das Ding fährt (sorum oder rosum). Zum "Spielen" hänge ich mal noch eine Parameterdatei an. ;-) Vielen Dank nochmal, Hannes
Yalu X. schrieb: > allerdings sieht das > Ergebnis noch etwas verwackelt aus (s. Screenshot). Erst jetzt sehe ich, was Du mit verwackelt meinst. Die verschiedenen OS stellen die Steuerelemente und ihre Vordergrund-Reihenfolge doch etwas unterschiedlich dar, ebenso die Schriftgröße. Bei mir (XP) ist es zwar auch nicht optimal, aber immernoch akzeptabel. Siehe Anhang. Bin mal gespannt auf die Rückmeldung der Leute, die es dann verwenden wollen... :-)) Besten Dank nochmal, Hannes
Hannes Lux schrieb: > Yalu X. schrieb: >> Ich garantiere nicht dafür, dass der Anhang frei von Malware >> ist, > > […] Die Malware soll ja nicht unbedingt künstlerisch wertvoll sein, So habe ich Malware noch nicht betrachtet :D
Saubere Arbeit, Hannes! Selbst die Richtung der Rauchfahnen der Loko- moteufelchen ist der Fahrtrichtung angepasst. ;-) MfG Paul
Paul Baumann schrieb: > Saubere Arbeit, Hannes! Nicht ganz, da ist noch eine Menge Feinschliff nötig. > Selbst die Richtung der Rauchfahnen der Loko- > moteufelchen ist der Fahrtrichtung angepasst. Ja, schon. Trotzdem tut es nicht ganz das, was es soll, zumindest nicht bei Christoph unter Linux. Ich zitiere mal seine Mail:
1 | Hallo Hannes, |
2 | |
3 | das Programm läuft. |
4 | Man muss es als Programm definieren und die Rechte vergeben, |
5 | dann läuft's sofort. |
6 | Aber leider findet es (wie üblich) keine serielle Schnittstelle |
7 | und damit auch keinen Regler. |
8 | Kann natürlich auch an meinem Ubuntu oder dem Adapter liegen. |
Screenshoot mit Fehlermeldung hänge ich auch mal an. Da sieht man unter Anderem, dass auch seine Schrift größer ist als meine, denn der Text "Report speichern" passt nicht in die Schaltfläche rein. Ich muss die Schaltflächen also größer machen oder die Texte kürzer. Es ist also noch viel zu tun, aber erst muss mal die serielle Schnittstelle funktionieren. Ohne deren Funktion hat das ganze Programm keinen Sinn. Ich hoffe ja noch, dass es ein Treiberproblem ist. Aber vielleicht kann ja ein PB verstehender Linux-Benutzer anhand Quältext und Fehlermeldung was dazu sagen... Das Feedback vom Besitzer des angeknabberten Apfels ist noch nicht da. ...
Neues Feedback:
1 | Hallo Hannes, |
2 | |
3 | gute Nachricht - alles funktioniert wunderprächtig :-) |
4 | Ich muss das Programm mit Rootrechten starten, |
5 | dann findet es auch die serielle Schnittstelle und den Regler. |
6 | Allerdings nicht über den USB Adapter. |
7 | Zum Glück hat der ALDI Rechner noch so eine Buchse. |
8 | Für den USB Adapter scheint es einen Treiber zu brauchen, |
9 | habe ich aber noch nicht gefunden. |
10 | Da es nun aber läuft, baue ich mir einfach ein längeres Kabel |
11 | dran und fertig. |
Also so ganz falsch war das Programm dann doch nicht... ;-)) ...
Hannes Lux schrieb: > Ich muss das Programm mit Rootrechten starten, Besser ist es, den Benutzer der Gruppe hinzuzufügen, der die Devices /dev/ttyS0, /dev/ttyS1 usw. gehören (meist uucp oder dialout, je nach Distribution). Dann kann er das Programm auch ohne Root-Rechte verwenden. > Allerdings nicht über den USB Adapter. Die Devices für USB-RS232-Konverter heißen /dev/ttyUSB0, /dev/ttyUSB1 usw. und sollten von der Software ebenfalls in die Suche mit einbezogen werden. > Für den USB Adapter scheint es einen Treiber zu brauchen, Die Treiber für die gängigen USB-Serial-Chips sind im Linux-Kernel bereits enthalten.
Danke, das ist sehr hilfreich. Wegen der Installation und der Rechte schicke ich Christoph hierher. Die USB-Devices baue ich in die Software mit ein, ich muss ja sowiso noch einen logischen Fehler beseitigen, denn bisher hört die Suche schon nach dem Finden der ersten Schnittstelle auf, auch wenn da kein AVR antwortet. (schäm...) Aber ich muss ja auch noch etliche Schönheitsreparaturen machen, schon wegen der größeren Schrift auf dem Linux-Rechner. - Aber heute nicht mehr... ...
Hannes Lux schrieb: > Aber heute nicht mehr... Da Christoph nun selbst compilieren kann, sind wir zu einem Ergebnis gekommen, das auch bei ihm zur Zufriedenheit läuft: http://www.hanneslux.de/planet5b/Lokpara4.html Vielen Dank nochmal an Yalu... Eine Äppel-Variante habe ich auf dem Macbook des Äppel-Nutzers compilieren können, die "App" hat aber noch keinen Zugriff auf die serielle Schnittstelle. Es ist sicher eine Frage des OS und der Zugriffsrechte, aber davon habe ich keine Ahnung. ...
Hannes Lux schrieb: > Da sieht man unter Anderem, dass auch seine Schrift größer ist als > meine, denn der Text "Report speichern" passt nicht in die Schaltfläche > rein. Bei PureBasic hilft dieses (Solange die Schriftgrösse zwischen Entwickler und Benutzer System nicht zu stark abweicht ~ +/- 25%):
1 | ;(nicht sichtbares) Bild erstellen für TextWidth() |
2 | StartDrawing(ImageOutput(CreateImage(#PB_Any, 640, 480))) |
3 | |
4 | ;zur Ermittlung der FontGrösse auf unserem Entwickler System |
5 | MessageRequester("", StrU(TextWidth("_TestString_"))) |
6 | |
7 | ;der Wert der uns oben ^^^ gemeldet wurde (So breit ist die ZeichenKette auf unseren EntwicklungsSystem) |
8 | #Font_Default_Width = 104 |
9 | |
10 | ;ScreenNormalizeFactor ist der Multiplicator für X,Y Position, Breite und Höhe von den Gadgets... |
11 | ;als Flieskomma Zahl!!! |
12 | Global.f ScreenNormalizeFactor |
13 | ScreenNormalizeFactor = TextWidth("_TestString_") / #Font_Default_Width |
14 | |
15 | ;Zeichnen stoppen und Bild freigeben |
16 | StopDrawing() |
17 | |
18 | ;Fenster mit Gadgets scaliert Erstellen... |
19 | OpenWindow(#PB_Any , 0, 0, 250 * ScreenNormalizeFactor, 90 * ScreenNormalizeFactor, "Scale Testing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) |
20 | |
21 | TextGadget(#PB_Any , 20 * ScreenNormalizeFactor, 20 * ScreenNormalizeFactor, 90 * ScreenNormalizeFactor, 20 * ScreenNormalizeFactor, "_TestString_") |
22 | |
23 | ButtonGadget(#PB_Any , 20 * ScreenNormalizeFactor, 50 * ScreenNormalizeFactor, 90 * ScreenNormalizeFactor, 30 * ScreenNormalizeFactor, "Button") |
24 | |
25 | StringGadget(#PB_Any , 130 * ScreenNormalizeFactor, 20 * ScreenNormalizeFactor, 100 * ScreenNormalizeFactor, 20 * ScreenNormalizeFactor, "Tigi") |
26 | |
27 | ScrollBarGadget(#PB_Any , 130 * ScreenNormalizeFactor, 60 * ScreenNormalizeFactor, 100 * ScreenNormalizeFactor, 20 * ScreenNormalizeFactor, 0, 0, 0) |
28 | |
29 | |
30 | Repeat |
31 | Until (WaitWindowEvent() = #PB_Event_CloseWindow) |
32 | |
33 | End |
Links: Das Programm unter Linux (EntwicklungsSystem) Rechts: Selbiges unter Wine 1.4.1
Danke, ich habe es inzwischen etwas einfacher gelöst, indem ich vor dem Bau des Fensters mittels Loadfont einen Font in passender Größe geladen habe und mittels Setgadgetfont auf #PB_Default gesetzt habe. Nun haben alle Gadgets den ausgewählten Font in korrekter Größe. Die Info stammt aus der PB-Hilfe: http://www.purebasic.com/german/documentation/gadget/setgadgetfont.html ...
>ich bin Windoof-Benutzer und habe bisher meine kleinen PC-Progrämmchen >unter VB6 geschrieben. Dies wird aber seit Vista nicht mehr unterstützt >und das .net-Geraffel will ich mir nicht antun. Also ich habe VisualBasic 6 sogar noch unter Windows-7 am laufen, auch die gebauten Programme funzen anstandslos...
Hallo Hannes schöne Arbeit. Gibt es von der Gartenbahn selbst ein "HowTo", Spur, Loks, Gleise, Flohmarkt? Sehe da ein neues Hobby für mich :)
;) schrieb: > Hallo Hannes Hallo Grinse-Smiley... > schöne Arbeit. Danke... > Gibt es von der Gartenbahn selbst Von welcher Gartenbahn konkret? Ich selbst habe nur eine Teststrecke mit engen Radien und Kehrschleifen. Die wird auch nur genutzt, wenn Loks getestet werden müssen. > ein "HowTo", Was meinst Du damit? Meine Muttersprache ist Deutsch. Meine Denglisch-Kenntnisse sind sehr rudimentär. > Spur, Spur G, 45 mm Spurweite, verschiedene Maßstäbe von 1:13 (Feldbahn 600 mm) über 1:16 (Schmalspur 750 mm), 1:22,5 (Spur IIm, Schmalspur 1000 mm) bis zu 1:27 (Normalspur auf Gartenbahngleisen, auch Gummispur genannt). > Loks, Welche Loks? - Die ich mal auf Akku & Funk umgebaut habe, oder die mir persönlich gehören? > Gleise, Stinknormales Gartenbahngleis von LGB, Playmobil oder anderen Anbietern mit 45 mm Spurweite. Meist mit Schienenprofilen aus Messing oder Edelstahl auf Schwellen aus Kunststoff. > Flohmarkt? Gibt es bestimmt, da gehe ich aber nicht hin. > Sehe da ein neues Hobby für mich :) Na dann viel Spaß damit. ...
:
Bearbeitet durch User
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.