AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Opensource Lichtsteuerung PC_DIMMER2008

Opensource Lichtsteuerung PC_DIMMER2008

Ein Thema von christian.noeding · begonnen am 26. Mai 2005 · letzter Beitrag vom 13. Sep 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von christian.noeding
christian.noeding
Registriert seit: 26. Mai 2005
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.
Miniaturansicht angehängter Grafiken
pcdimmer2008_785.jpg   pcdimmer_109.png  

Geändert von christian.noeding (14. Jun 2012 um 10:28 Uhr)
 
Robert Marquardt
 
#2
  Alt 26. Mai 2005, 11:19
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.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#3
  Alt 26. Mai 2005, 11:34
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 Nöding
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#4
  Alt 27. Mai 2005, 08:58
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
Christian Nöding
  Mit Zitat antworten Zitat
franktron

 
Delphi 10.2 Tokyo Enterprise
 
#5
  Alt 27. Mai 2005, 09:48
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
Frank
  Mit Zitat antworten Zitat
Robert Marquardt
 
#6
  Alt 27. Mai 2005, 10:30
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.
  Mit Zitat antworten Zitat
Robert Marquardt
 
#7
  Alt 27. Mai 2005, 10:44
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.
  Mit Zitat antworten Zitat
franktron

 
Delphi 10.2 Tokyo Enterprise
 
#8
  Alt 27. Mai 2005, 11:11
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.
Frank
  Mit Zitat antworten Zitat
Robert Marquardt
 
#9
  Alt 27. Mai 2005, 11:24
Korrigiert und getestet.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#10
  Alt 27. Mai 2005, 16:23
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
Christian Nöding
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf