Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Opensource Lichtsteuerung PC_DIMMER2008 (https://www.delphipraxis.net/46514-opensource-lichtsteuerung-pc_dimmer2008.html)

christian.noeding 26. Mai 2005 11:04


Opensource Lichtsteuerung PC_DIMMER2008
 
Liste der Anhänge anzeigen (Anzahl: 2)
PC_DIMMER2012 - Das Opensource Lichtprogramm


Im Folgenden möchte ich den vor einiger Zeit begonnenen Post zu meinem Opensource-Projekt "PC_DIMMER" aktualisieren, damit in der DP nicht veraltete Informationen herumgeistern :) Das Projekt ist besonders in den letzten Monaten stark ausgebaut worden, sodass man vom programmiertechnischen einiges Interessantes finden kann. Zudem kann man im Sourcecode von mir etliche Anregungen für eigene Problemlösungen finden.

Der PC_DIMMER2012 ist ein von mir entwickeltes Opensource-Lichtprogramm, mit dem man inzwischen jedes Bühnengerät steuern kann, was der Markt so hergibt. Darunter zählen Bewegtscheinwerfer (Scanner, MovingHeads, etc.), LED-Pars, Stroboskope und vieles mehr.


Hier einmal Stichpunktartig die Funktionen:

- Steuerung von bis zu 8192 Kanälen (16 DMX Universes)
- Unterstützung für DMX512-Sender (über Ausgabeplugins erweiterbar)
- Programmfunktionen über Plugins erweiterbar
- Gerätebasierte Oberfläche. Über eine Skriptsprache können für jedes Gerät eigene Oberflächen in das Programm integriert werden, sodass man gezielt die Gerätefunktionen verwenden kann
- Ein Audioeffektplayer erlaubt das zeitgenaue abspielen einer Lichtshow zu einer Audiodatei ähnlich einem Videoschnittprogramm
- Eine umfassende Befehlssteuerung erlaubt das Steuern von Programmfunktionen aus allen Bereichen der Anwendung
- Eine grafische Bühnenansicht erlaubt das schnelle Einstellen von Bühnenparametern
- Über geometrische Kompensationsverfahren werden Bewegungen von zur Bühne verdrehten Bewegtscheinwerfern kompensiert
- MIDI-, Joystick- und andere Steuerungen werden unterstützt
- Webserver zur Steuerung der wichtigsten Funktionen über das Internet (Szenen, Kontrollpanel, Geräteübersicht, etc.) - für Architekturbeleuchtung sehr interessant


Weitere Informationen findet man unter http://www.pcdimmer.de


Vielen Dank auch an die diversen Leute, die mir hier in der DP mit Rat und Tat geholfen haben - besonders an die vielen anderen Opensource- und Teilquellcode-Schreiber, ohne die mein Projekt nie den heutigen stand erreicht hätte.



PS: die nachfolgenden Posts beziehen sich zum Teil auf die ersten Programmversionen. Inzwischen ist der Sourcecode entsprechend angepasst und modernisiert worden. :zwinker:

Robert Marquardt 26. Mai 2005 11:19

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Wie waere es mal mit einer kraeftigen Vereinfachung des Codes?
Delphi-Quellcode:
var
  List: array [1..128] of TStringList;
und eine entsprechende Umstellung auf Schleifen und Index.
Dieses List1 bis List128 ist ja ein grauenvoll ineffizientes Codegrab.

christian.noeding 26. Mai 2005 11:34

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Hey, ich habe im Dezember erst mit Delphi angefangen - bin froh, dass ich das Programm soweit zum Laufen bekommen habe ;)


Für konstruktive Vorschläge bin ich mehr als offen und dankbar :)
Besonders bei meiner Zuweisung der Namen von Buttons, Funktionen, Prozeduren usw. werden sich einigen die Fußnägel hochrollen - aber mittlerweile bin ich schon etwas mehr dahinter gekommen, gleich beim Programmieren den Sourcecode aufzuräumen... bisher bin ich aber zeitlich nicht dazu gekommen, die komplette Source zu bereinigen. Werde das wohl als nächstes mal in Angriff nehmen, da mir die Ideen für Zusätze für das Programm ausgegangen sind und das Programm soweit so gut läuft :)

bis denn,
Christian :)

christian.noeding 27. Mai 2005 08:58

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Ich habe mal die gigantischen "List"-Methoden durch Einzeiler ersetzt. Die Software ist prompt knapp 1500 Zeilen geschrumpft und die Schleifen laufen jetzt viel schneller ab...

Danke für den Tipp, ich habe irgendwie nicht dran gedacht, dass man das alles viel schneller per Array erledigen kann :)


bis denn,
Christian

franktron 27. Mai 2005 09:48

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Sagmal du hast da 2 Ver. einmal Deu und einmal ENU.

Warum hast du das alles Doppelt scuh mal im Form nach Mehrsprachigen Anwendungen da gibst echt gute Tips das würde wohl den Verwaltungsaufwand stark verrigern

Robert Marquardt 27. Mai 2005 10:30

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Kann man die .dcu und .ddp Files aus dem naechsten Download entfernen? Ich habe heute 4.5KByte/Sec von SourceForge bekommen.

Kommen wir zur naechsten Vereinfachung.
Delphi kann keine Arrays von Komponenten in der IDE.
Die Loesung ist es selber zu machen.

Beispiel:
Delphi-Quellcode:
public
  Scrollbars: array [1..8] of TScrollBar;
Im FormCreate:
Delphi-Quellcode:
  // die zusammengehoerigen Komponenten finden und ins Array eintragen
  for I := Low(Scrollbars) to High(Scrollbars) do
    Scrollbars[I] := FindComponent(Format('ch%d', [I]));
 
  // abklappern und initialisieren
  // je nach Zweck sollte dies in eine Methode gepackt werden
  for I := Low(Scrollbars) to High(Scrollbars) do
    Scrollbars[I].Max := maxres;
Nach dem obigen Prinzip kann man bestimmt noch ein paar Tausend Zeilen wegbekommen und gewinnt gleichzeitig Strukturen.


Alles in allem gefaellt mir die MainForm. Sie ist einfach und klar strukturiert.
Es gibt noch ein paar Nickligkeiten, die man beseitigen sollte.
Konsequenter deutsch schreiben. z. B. "Serielle Schnittstelle"
Einheitliche Begriffe. Immer "Script" oder "Skript", nicht gemischt. Ich empfehle "Skript", aber "Level" sollte englisch bleiben.
Die Feinheiten des GUI-Designs beachten. Es sollte z. B. "COM x..." heissen, da zur Durchfuehrung der Aktion des Menuepunktes eine Benutzereingabe notwendig ist (Dialog).
Ebenfalls sollten alle Menuepunkte ein Tastenkuerzel haben. Das "Szene löschen" kein Kuerzel hat, aber "Alle Szenen löschen" doch, ist inkonsequent.

Robert Marquardt 27. Mai 2005 10:44

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Ich empfehle auch noch die "User Interface Hall of Shame" zu lesen (archiviert hier: http://web.archive.org/web/200211050....com/shame.htm ).
Es ist ist lehrsam, auch wenn es so freundlich wie ein Schlag in die Fresse ist.

franktron 27. Mai 2005 11:11

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Zitat:

Zitat von Robert Marquardt
Ich empfehle auch noch die "User Interface Hall of Shame" zu lesen (archiviert hier: http://web.archive.org/web/200211050....com/shame.htm).
Es ist ist lehrsam, auch wenn es so freundlich wie ein Schlag in die Fresse ist.

Der Link funktioniert nicht so richtig da kommt nur Werbung.

Robert Marquardt 27. Mai 2005 11:24

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Korrigiert und getestet.

christian.noeding 27. Mai 2005 16:23

Re: 230V 128 Kanal PC_DIMMER v2.0
 
Hallo Leute,


besten Dank für Lob, Kritik und Ideen. Werde mich dransetzen und die Vorschläge soweit wie möglich umsetzen.


Wenn man Sachen wie mit den Scrollbar-Arrays weiß, fragt man sich natürlich, warum man das nicht schon vorher gemacht hat ;)



Für weitere Vorschläge und Ideen bin ich offen und werde sie dankend annehmen :)


@franktron: nachdem ich bereits wenige Zeit nach Veröffentlichung Rückmeldungen aus Kanada und Australien bekommen habe (über das DiscoLitez-Forum auf www.discolitez.com) habe ich so schnell wie möglich das ganze Programm einfach übersetzt und die Erstbeste Methode genommen. Seitdem sah ich keinen Grund, nach was anderem zu suchen, obwohl ich schon so manches Problem mit dem Delphi-Internen Übersetungstool hatte. Werde aber mal in der nächsten Zeit nach Alternativen oder Optimierungen suchen :)

@Robert Marquardt: die .dcu und .ddp Files fliegen in der nächsten Source-Zip raus - sorry ;). Werde auch die Strings nocheinmal überarbeiten. Gibt's eigentlich ne Möglichkeit, ohne großen Aufwand konkrete Strings, die nicht in der IDE angezeigt werden mit dem Resource-Tool von Delphi zu übersetzen? Da habe ich nämlich so manchen Text, den ich nur auf Deutsch habe... Wahrscheinlich werde ich nochmla gründlicher suchen (siehe @franktron)




Bis denn,
Christian :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz