Forum: PC-Programmierung Bediensoftware selbst entwickeln


von Christian O. (hightec)


Lesenswert?

Hallo und guten Abend,

zur Vorgeschichte, ich arbeite mich nun seit gut einem Jahr quer durch 
die uC Welt und versuche dabei viel zu lernen und weitreichende 
Erfahrungen zu sammeln.

Das ein oder andere kleine Projekt habe ich auch bereits fertig 
gestellt.
Nun möchte ich mich aber nicht damit zufrieden geben ein in sich 
geschlossenes Projekt zu erarbeiten sondern möchte mich jetzt in die 
Richtung bewegen, Projekte mit anbindung an den PC zu entwickeln.

Klar hab ich bereits erfahrungen mit UART, RS428 usw.. und habe auch da 
schon einiges ausprobiert.
Allerdings habe ich die Dateneingabe bisher immer über Terminalprogramme 
laufen lassen und bin damit mittlerweile nicht mehr zufrieden.

Der nächste Schritt ist nun für mich in Richtung Softwareentwicklung.
Das beinhaltet z.B. eine visualisierte Bediensoftware eines Gerätes.

Und dazu muss ich natürlich in der Lage sein so eine Software zu 
erstellen und zu programmieren.
Meine Programmierkenntnisse in C sind mittlerweile soweit, dass ich mich 
in das Gebiet trauen will und suche einen guten Einstieg.

Ich lese mich nun seit einigen Tagen durch das Internet zu dem Thema und 
bin mir recht unsicher wo ich da anfangen kann.

Kann mir wer ein gutes Buch oder Online-Tutorial zu dem Thema empfehlen?
Mit welcher Entwicklungssoftware habt ihr die besten Erfahrungen 
gesammelt?(Freeware sowie kostenpflichtig)
Oder übernehme ich mich nun mit dem Vorhaben und man sollte sich erst 
nach Jahrelanger Erfahrung an soetwas herantrauen.

Abgesehen von der Software interessiere ich mich auch für das Erstellen 
eines eigenen Druckertreiber für z.B. einen selbstgebauten Plotter oder 
UV-Laserdruckers.
Ist das in der gleichen Richtung zuzuornen oder ist das wieder ein 
eigenes paar Schuhe?

Es sei dazugesagt, dass ich diese Programmierung ersteinmal auf einem 
Windows-Rechner zum laufen bekommen möchte, allerdings möchte ich dann 
lieber von Anfang an so programmieren, dass ich die erstellte Software 
auch auf anderen Betriebssystemen laufen lassen könnte (also 
Platformunabhängig)

Ich danke schon einmal für die Antworten und hoffe ihr könnt mir den 
kleinen Schubser in die richtige Richtung geben.

Gruß

Christian

von ge-nka (Gast)


Lesenswert?

Wenn du es quick & dirty & easy haben willst,
immer was anderes, was neues zum ausprobieren usw.

Excel + VBA + irgendeine RS232-DLL (mscom.dll, rsapi.dll) ist 
unschlagbar.
(Aufwand 2-4 Wochen, falls Grundkenntnisse Excel und VBA vorhanden.)

Nachtel: ist nicht für eine Weitergabe an dritte gedacht, da man dort 
richtige Struktur, Dokumentation, Fehlerbehandlung usw. erstellen soll.
Dann kannst du gleich dir  OOP beibringen und das in JAVA machen, wird 
aber paar Jahre dauern(als Hobby).

von indi (Gast)


Lesenswert?

Schau Dir mal qt an.

von Christian O. (hightec)


Lesenswert?

ge-nka schrieb:

> Excel + VBA + irgendeine RS232-DLL (mscom.dll, rsapi.dll) ist
> unschlagbar.
> (Aufwand 2-4 Wochen, falls Grundkenntnisse Excel und VBA vorhanden.)

Das ist eher weniger die Richtung in die ich gehen möchte.
Um es zu Erläutern: Ich wähle auch öfters bewusst den hammerharten Weg, 
damit ich von Anfang an den gesamten Umfang vor Augen habe.
Klar wäre es erstmal von Erfolg gekrönt mit Excel und VBA zu arbeiten, 
aber irgendwann müsste ich dann doch wieder auf C und eigener Software / 
anderer Umgebung umsteigen.
Dann lieber von anfang an und dann darf es bis zum ersten Erolg auch 
ruhig etwas länger dauern. ;-)


indi schrieb:
> Schau Dir mal qt an.

Werde ich mir gleich mal anschauen, Danke ;-)

von Johannes V. (j-v)


Lesenswert?

Hallo Christian,

ich mache solche Frontends oft  mit Profilab von abacom.

Gruß Johannes

von Ich (Gast)


Lesenswert?

Ich werfe mal den Klassiker LabView in die Runde :-)

von Christian O. (hightec)


Lesenswert?

Johannes V. schrieb:
> Hallo Christian,
>
> ich mache solche Frontends oft  mit Profilab von abacom.
>
> Gruß Johannes

Ich schrieb:
> Ich werfe mal den Klassiker LabView in die Runde :-)

Ich weiss nicht recht ob ich da falsch liege, aber sind dass nicht 
Simulationsprogramme für Schaltungen? (Korrigiert mich wenn ich falsch 
liege)

Grobes Beispiel:

Ich baue einen eigenenes Gerät (UV-Laserducker, Plotter, CNC-Fräse,...)

Dieses Gerät wird über einen Beispielsweise Atmega64 gesteuert und kann 
an sich schon eine Menge. Nun möchte ich PC-seitig eine 
Software-Programmieren mit der ich dieses Gerät von extern steuern kann, 
oder Daten an dieses Gerät übertragen kann. (Beispiel UV-Laserdrucker: 
Das zu belichtende Layout aufbereiten und an das Gerät übertragen)

Diese Software möchte ich dann natürlich mit einer grafischen Oberfläche 
ausstatten.

: Bearbeitet durch User
von ge-nka (Gast)


Lesenswert?

Christian O. schrieb:
> Das ist eher weniger die Richtung in die ich gehen möchte.
> Um es zu Erläutern: Ich wähle auch öfters bewusst den hammerharten Weg,
> damit ich von Anfang an den gesamten Umfang vor Augen habe.

Na dann fangen wir mal hier an (reine Theorie, aber sehr nützlich):
http://www-lehre.inf.uos.de/~ainf/2014/index.html

von Ich (Gast)


Lesenswert?

> Ich weiss nicht recht ob ich da falsch liege, aber sind dass nicht
> Simulationsprogramme für Schaltungen? (Korrigiert mich wenn ich falsch
> liege)
Da liegst Du falsch ;-)
https://de.wikipedia.org/wiki/LabVIEW
http://www.ni.com/labview/d/

Wir (Uni) nehmen das sowohl für selbst gebauten Hardware als auch in 
Kombination mit gekauften (Mess-)Geräten.

von S. K. (nullgeist)


Lesenswert?

Der Tipp mit Qt ist schonmal nicht schlecht. Ansonsten lohnt es sich 
meiner Meinung nach mal zu schnuppern ob man für sowas nicht noch eine 
andere Programmiersprache verwenden möchte, da für GUIs 
Objektorientierung schon ganz praktisch ist (C++, C#, Python, ...)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

S. K. schrieb:
> Der Tipp mit Qt ist schonmal nicht schlecht.

+1

Wollte ich auch immer schon mal ausprobieren, sieht nämlich attrakiv 
aus.

Noch ein paar Hinweise:

(1) Viele Firmen gehen dazu über, mit Java die Bedienoberflächen zu 
bauen. Für eine 'Bediensoftware'^^ ist die Geschwindigkeit meistens 
nicht so wichtig, wie bei Hardware-naher Programmierung, dafür sind die 
Grafik-Bibliotheken flexibel und auch recht fix. Mit 
'Objektorientierung' kann man bei einer 'Bediensoftware' oft auch 
leichter den wechselnden Ansprüchen gerecht werden. Bei 
Bedienoberflächen reden alle mit, ob sie Ahnung haben oder nicht. 10 
Leute, 12 Meinungen! Flexibilität ist wichtig!

(2) ... genau so wichtig wie eine intelligent gemachte Schnittstelle 
(Visual Proxy-Pattern, Automotive-BAP, ...)

(3) Inzwischen sind Android-Tablets und ESP8266 so billig geworden, dass 
man über Android-Bediensoftware zumindest nachdenken sollte.

'Ich' schrieb:
> Ich werfe mal den Klassiker LabView in die Runde

Mit 'Matlab Guide' wird in der Industrie auch oft gearbeitet. Hat 
LabView was vergleichbares?

PS, zufällig gefunden: http://developer.xamarin.com/

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Wenn du Software für andere machen willst, sollte m.E. die einzige 
Voraussetzung bei diesen ein installiertes Betriebssystem sein.

Weitergehende Abhängigkeiten, z.B. von Office, Java VRE, div. Runtime 
Libs usw. halte ich persönlich für Mist.

Damit reduziert sich die Zahl der verwendbaren Entwicklungsumgebungen 
erheblich.

Ich persönlich beutze Xojo (früher Real Basic), da kann die IDE aus dem 
gleichen Sourcecode eigenständig (!) lauffähige Apps für Windows, Mac OS 
X und Linux erstellen, sowie sog. WebApps und neuerdings auch iOS. Diese 
müssen auch nicht irgendwie "installiert" werden, "draufkopieren" 
reicht.

Es werden auch alle Schnittstellen bedient (Serial, USB, Bluetooth, 
Ethernet), es kann bei Projektbeginn zwischen grafischer Oberfläche (die 
sich an die Systemvorgaben hält und damit nicht wie ein "Fremdkörper" 
aussieht) oder Konsoleanwendung gewählt werden ...

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