Bugtracker DMXControl 3

  • Status Zugeteilt
  • Prozent erledigt
    0%
  • Aufgabentyp Wunsch / Idee
  • Kategorie GUI
  • zuständig
    Patrick Grote
  • Betriebssystem All
  • Schweregrad niedrig
  • Dringlichkeit gering
  • betrifft Version 3.2 Beta x
  • fällig in Version 3.3
  • fällig am unbestimmt
  • Stimmen
  • versteckt
gehört zu Projekt: DMXControl 3
angelegt von Patrick Grote - 04.10.2011
zuletzt bearbeitet von Patrick Grote - 22.05.2018

FS#616 - Altanative Live View

Ich hab mir gedacht das eine andere art der Live View auch sehr interessant wäre.
Als Tabelle wie bei folgendem Bild.

Project Manager
Patrick Grote schrieb am 20.05.2013 19:14

Hab mich dran gesetzt. Allerdings in XNA 4.0, wegen der einbindung muss ich noch sehen ob ich ein vorübergehendes Workaround hinkriege.

Project Manager
Patrick Grote schrieb am 22.05.2013 18:42

Hab ein Performantes Workaround gefungen.

Hab hier mal nen paar erste Bilder

MfG
Patrick

Project Manager
Dennis schrieb am 22.05.2013 19:29

Ich finds super!

Würde sogar spontan sagen man baut es soweit aus, dass es das Programmerfenster ersetzen kann.

Project Manager
Patrick Grote schrieb am 22.05.2013 19:42

Problem ist im moment nur, das das auf XNA 4.0 läuft, und ich die Daten deshalb per UDP zur ListView senden muss.

Ich wär auch dafür das als Programmer zu nehmen, allerdings müst ihr vorher alles auf 4.0 portieren.

Project Manager
Dennis schrieb am 22.05.2013 19:52

Ich meine sogar in einem Projekt gesehen zu haben, dass gleichzeitig XNA 3.0 und 4.0 Controls verwendet wurden. Kann ich aber auch täuschen. Hast du einfach mal versucht das Control in nem PluginWindow zu instantiieren?

Project Manager
Patrick Grote schrieb am 22.05.2013 19:59

Habs schon versucht.

Da krig ich ne Fehlermeldung wegen verschiedenen Frameworks.

Weil das PluginWindow nicht selber 4.0 sein kann muss ich da 3.5 verwenden.

Project Manager
Dennis schrieb am 22.05.2013 21:12

Ah, kann sein. Dann müsste das .NET 4.0, XNA 3.0 und XNA 4.0 gewesen sein.

Ich hatte Lumos testweise mal auf .NET 4.0 umgestellt. Soweit gabs da keine Probleme. Einzig man braucht dann VS2010 für Lumos und VS2008 fürs LiveView. Bei Arne funktionierts, ich habe da mal eine sehr schlechte Erfahrung mit gemacht. VS2008 konnte nicht mehr gestartet werden und auch nicht deinstalliert, genausso VS2010 → Rechner platt machen. Super. Aber ich probiere das nochmal.

Project Manager
Arne Lüdtke schrieb am 24.05.2013 17:44

Hy,

Aber ist ja kein Problem. Für die 3.0 ändert sich nix mehr, und bis zur 3.1 sollten wir die XNA 4.0 Portierung erledigt haben.

Vielleicht kann Qasi hier ja unterstützen. Scheint ja zu klappen mit XNA :-)

Gruß Arne

Project Manager
Arne Lüdtke schrieb am 24.05.2013 17:57

Noch als Ergänzung. Soll das den Programmer ersetzen, oder eine Alternative für das LV werden?

Bei letzterem müsste man sich überlegen, wie man Geräte selektieren kann usw.

Ich will nur, das wir uns auf den Scope einigen.

Gruß Arne

Project Manager
Patrick Grote schrieb am 24.05.2013 18:08

Zum selektieren hab ich schon was gebaut.
Is eigentlich wie in der LiveView, Klicken oder Maus gedrückt halten und ziehen dann loslassen, oder Strg drücken und klicken oder Maus gedrückt halten und ziehen dann loslassen zum ergänzen der Auswahl.

Problem Nr. ist wirklich nur die Portiernug.

Project Manager
Arne Lüdtke schrieb am 24.05.2013 18:25

Also dann werden da quasi immer alle Geräte angezeigt, und man kann die da direkt selektieren.

Cool.

Wie gesagt eine Portierung auf XNA 3 macht keinen Sinn. Wir müssen eh das aktuelle LiveView auf XNA 4 portieren.

Gruß Arne

Project Manager
Patrick Grote schrieb am 24.05.2013 19:16

Kann ich eigentlich auch meine PlugInDll debuggen während sie von DMXControl benutzt wird?
Das is nähmlich extremst umständlich die Ganzen fehler nur durch die LogFiles zu finden.

MfG
Patrick

Project Manager
Patrick Grote schrieb am 24.05.2013 19:47

Hier der aktuelle Stand.

Alles was Gelbe Schrift ist ist Selektiert;

Project Manager
Arne Lüdtke schrieb am 24.05.2013 20:55

Hy,

Ja kannst du. Einfach in deinem Projekt der DLL bei den Einstellungen bei "Debug" angeben, das DMXControl gestartet werden soll.

Gruß Arne

Project Manager
Patrick Grote schrieb am 24.05.2013 22:01

und wie Kann ich die SelectedDevices ändern?
Ich komm irgendwie nur an eine ReadOnlyLIste.

void listener_NewDataReceived(object sender, EventArgs e)
        {
            bool[] liste = ((bool[])sender);
            System.Collections.Generic.IList<org.dmxc.lumos.Kernel.Devices.IGUIDevice> newCol=new
System.Collections.Generic.List<org.dmxc.lumos.Kernel.Devices.IGUIDevice>();
            for (int i = 0; i < liste.Length; i++)
            {
                if (liste[i])
                {
                   newCol.Add(cm.GuiSession.Devices[i]);
                }
                ReadOnlyCollection<org.dmxc.lumos.Kernel.Devices.IGUIDevice> col = new
ReadOnlyCollection<org.dmxc.lumos.Kernel.Devices.IGUIDevice>(newCol);
                cm.GuiSession.SelectedDeviceGroup.GUIDevices = col;
            }
        }
Project Manager
Patrick Grote schrieb am 24.05.2013 22:18

Debuggen krig ich nicht hin, liegt daran, das ich Express benutze undnicht Professionel

Project Manager
Arne Lüdtke schrieb am 25.05.2013 10:04

Hy Qasi,

Dafür musst du ein Commando absetzen. Wo läuft dein Plugin? Im Kernel oder?

Wir sollten das nicht hier im Bugtracker besprechen. Lass uns ein Skype meeting vereinbaren. Evtl. nächstes WE am Fronleichnamswochenende?

Gruß Arne

Project Manager
Arne Lüdtke schrieb am 25.05.2013 10:46

Hy,

Ich glaub dein Plugin läuft in der GUI. Hier mal folgender Code zum Selektieren:

var s = cm.GuiSession;
var command = s.getCommandInstance("Kernel", "createSelectedDevicegroup");
var l = new List<string>();
for (int i = 0; i < liste.Length; i++)
{

 if (liste[i])
 {
    l.Add(cm.GuiSession.Devices[i].ID);
 }

}
command.execute(s.Name, l.ToArray(), null);

Aber noch ein Hinweis: Die Reihenfolge in der GuiSession.Devices Liste kann sich ändern. Daher wäre es vielleicht besser, wenn du kein "bool[]" array sondern ein string[] Array mit den IDs überträgst. 2 Vorteile:
1. Du sparst dir die komplette Schleife, weil du das string[] direkt als Parameter im Command übergeben kannst
2. Wenn sich die Reihenfolge ändert, dann macht das nix.

Gruß Arne

Project Manager
Patrick Grote schrieb am 30.05.2013 20:55

Könn demnächst gerne mal Skypen, aber die Tage wird das nichts

Danke für den Code

Project Manager
Patrick Grote schrieb am 31.05.2013 22:57

Der COde war sehr hilfreich.
Danke nochmal dafür.

Hab mal nen kleines Video gemacht, wo mann die aktuellen funktionen sehen kann.

Project Manager
Patrick Grote schrieb am 16.07.2013 16:19

Aktueller Stand der Dinge ist:

ListView mit XNA4 ist Fast vollständig ausgebaut(Performt sehr gut, ist aber wegen der aktull schlechten kampatibilität sehr Rescourcenlastig)

ListView mit .NET 3.0 ist in der entstehung, und performt auch sehr gut, kaum Rescourcen lastig, aber weniger übersichtlich

Die Performance ist auf einem Rechner mit 8 Kernen a 4Ghz und 8 GB Ram getestet worden.
Ich könnte demnächst eine erste Version Veröffentlichen, Die ListView mit .NET 3.0 Offentlich im Forum und XNA4 nur für Betatester

MfG
Patrick

Project Manager
Arne Lüdtke schrieb am 16.07.2013 19:05

Hy Qasi,

Kannst du uns mal den Code zuschicken, wir würden es auch gerne mal testen. Muss ja auch auf PCs laufen die weniger leistungsfähig sind.

Außerdem haben wir uns neulich darüber unterhalten, was die Zukunft ist. XNA ist ja abgekündigt, deswegen werden wir auf MonoGame umsteigen. Du hast die Diskussion im Forum evtl. gesehen. Das ist aber kompatibel zur XNA 4 API, ergo, solltest du keine Probleme haben das nochmal umzustellen.

Gruß Arne

Project Manager
Patrick Grote schrieb am 16.07.2013 19:39

Es handelt sich um 2 Programme.
Das erste ist das Plugin, das In DMXContrl integriert wird, dieses Plugin Packt die Daten der Fixtures und Schickt diese per UDP raus(127.0.0.1), und oder benutzt die Gepackten Daten um in Selbigen Plugin Die .NET ListView zu zeichnen.

Die zweite Programm ist das XNA4 ListView, es schnappt die Daten von UDP auf und zeichnet die Fixtures.
Es ist nur So Rescourcenlastig weil ich die Daten Packen, Senden, Empfangen und Entpacken muss(4Threads, die Rescourcen ziehen) bevor sie verwendet werden können.Auserdem stelle ich das Programm so ein, dass es mit 61fps läuft, um kein Ruckeln zu sehen, unter langsameren rechnern kann mann es bis 15 fps drosseln.

Ich wäre bereit, unter "Umständen" das erstere euch zu übermittel, allerdings ähnelt es derzeit noch einem Schlachtfelt, da es zu beginn nur als vorübergehendes Workearound für die XNA4 ListView gedacht war, wo ich jetzt aber eine .NET ListView integriere, für Alte Grafikkarten, die nicht XNA-Kompatibel sind.
Ich muss es vorher noch ordentlich aufräumen.

Ich weis nicht, ob das hier der richtige ort dafür ist, aber zu den Besagten "Umständen".
Ich hab beim Jahrestreffen den Mitgliedsantrag ausgefüllt, und immernoch kein Feedback erhalten, Wie steht es dadrum?
Ich würde gerne SVN nutzen, doch das kann ich erst, wenn ich den zugang zum SVN bekomme.
Ich möchte nicht, das der Code Öffentlich für jedermann zugänglich ist, nur für Die Entwickler der DmxControl3.x Software

P.S.
Ich weis nicht, wo diese Diskusion Über XNA und Mono gewesen sein soll, ist das im Internen Forum gewesen?
Da hab ich keinen Zugriff zu.

MfG
Patrick

Project Manager
Arne Lüdtke schrieb am 16.07.2013 20:23

Hy Qasi,

Ok, generell alles verstanden. Die Diskussion war im Internen Forum. Hab vergessen dass du da noch keinen Zugriff hast, kümmere mich aber darum.

Gruß Arne

Project Manager
Patrick Grote schrieb am 30.07.2013 15:33

Hab nen kleines Problem.
Im moment Packe ich alle Devices und deren Outputvalues und schick alles per UDP.
Am liebsten würd ich gerne auf ValueChanged Events umsteigen, allerdings funktioniert das entsprechende Event nicht, oder ich bin im falchen Object unterwegs.

Ich hab die Events über den ConnectionManager im "IDeviceFacade" und "IDevicePropertyFacade" alle ausprobiert, aber keines springt auf wertänderungen im Propertygrid oder durch Scenenlisten an.

Wie krig ich den da das richtige Event?

MfG
Patrick

Lade...

Verfügbare Tastenkürzel

Aufgabenliste

Aufgabendetails

Aufgabenbearbeitung