Forum: PC-Programmierung Benutzt hier jemand PureBasic?


von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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

...

von Heinz (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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...

...

von ernst (Gast)


Lesenswert?

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

von Heinz (Gast)


Lesenswert?

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.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

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?

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

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.

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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

von Yalu X. (yalu) (Moderator)


Lesenswert?

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

von Paul B. (paul_baumann)


Lesenswert?

Saubere Arbeit, Hannes! Selbst die Richtung der Rauchfahnen der Loko-
moteufelchen ist der Fahrtrichtung angepasst.

;-)

MfG Paul

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

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.

...

von Hannes L. (hannes)


Lesenswert?

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... ;-))

...

von Yalu X. (yalu) (Moderator)


Lesenswert?

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.

von Hannes L. (hannes)


Lesenswert?

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...

...

von Hannes L. (hannes)


Lesenswert?

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.

...

von Schwarzes Tigerle (Gast)


Angehängte Dateien:

Lesenswert?

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

von Hannes Lux (Gast)


Lesenswert?

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

...

von Mike (Gast)


Lesenswert?

>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...

von ;) (Gast)


Lesenswert?

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 :)

von Hannes L. (hannes)


Lesenswert?

;) 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
Noch kein Account? Hier anmelden.