[Projekt] MissileControl

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

[Projekt] MissileControl

Beitrag von SunCross »

Hallo,

ich stelle hier mein kleines Projekt "MissileControl" vor.
Als erstes die Vorgeschichte:
Ich hab mir im Internet zwei USB-Raketenwerfer bestellt.
Dabei ist mir negativ aufgefallen, das man zwar das Standardsteuerungsprogramm durchaus einsetzen kann, um beide zu steuern, aber nicht gleichzeitig. Man braucht zwei Instanzen des Programms, und leider hat immer nur eins davon den Fokus der Tastatur.

Nun zu meinem Programm:
MissileControl ermöglicht gleichzeitige Kontrolle über mehrere USB-Raketenwerfer. Voraussetzung ist, das für jeden Raketenwerfer eine Instanz des Standardprogramms geöffnet ist.

MissileControl unterstützt alle Funktionen, die auch im Standardprogramm per Tastatur aufrufbar sind.

Da ich nur eine Sorte USB-Raketenwerfer habe, kann ich nur sagen, dass der folgende zu 100% unterstützt wird:
http://www.getdigital.de/products/USB_Raketenwerfer

Hier noch ein Screenshot, der zeigt, wie das Programm aufgebaut ist.
Bild
In der Mitte sieht man das Hauptfenster, in dem die Instanzen der Standardsteuerungen aufgelistet werden, die zum Zeitpunkt der Suche geöffnet waren. Oben im Hauptfenster befindet sich der Such-Button, der die Suche startet. Unten ist der Button, der das linke Fenster öffnet und die Kontrolle über die Raketenwerfer startet. Rechts sind zwei Instanzen meines Standardsteuerungs-Simulationsprogramm zu sehen, die das Standardprogramm nachahmen und genauso funktionieren. Es ist nur zu Testzwecken da (deswegen ist es auch, im Gegensatz zum Hauptprogramm, auf Deutsch), aber trotzdem beiliegend.

Hier der Download-Link:
http://www.toxic-coding.de/Downloads/MissileControl.zip
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [Projekt] MissileControl

Beitrag von exploid »

Hey

Das ist ja ne Klasse Idee. Die schraub ich an meine Helikopterdrohne: http://news.cnet.com/8301-19882_3-10429248-250.html und kann dann endlich meine Nachbarin nicht nur beobachten sondern auch kleine Wanzen in ihr Zimmer schießen um sie dann akkustisch Nachhaltig zu belauschen.

GUTE IDEE WEITER SO :)
All your base are belong to us! Justice
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Hat vielleicht einer hier im Forum noch andere Versionen des USB-Raketenwerfers? Ich würde die Steuerungsprogramme der anderen Versionen gerne nutzen, um MissileControl universell für alle Raketewerfer einsetzen zu können.

Die anderen Steuerungsprogramme würd ich nach den Suchpunkten, anhand derer das Fenster gefunden wird, analysieren und sie in die Suche von MissileControl integrieren.

Dann könnte man anstatt alle Raketenwerfer "Launcher" zu nennen, den Versionsnamen hinschreiben.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Dummie
Beiträge: 97
Registriert: 09.02.2004, 20:45

Re: [Projekt] MissileControl

Beitrag von Dummie »

Du sendest doch letztendlich einfach die entsprechenden Tastatureingaben an die gefundenen Fenster, oder?

Insofern würde ich einfach ein Dialog einbauen, der es ermöglicht ein Profil zur Steuerung anzulegen. Dort kann man dann eingeben, welche Tastatureingaben an die mitgelieferten Programme gesendet werden sollen.

Zum Schießen könnte es ja sein, dass man Tab, Tab, Tab und dann Enter drücken müsste, um den Butten zum Schießen anzuwählen und zu bestätigen.
Bei einer anderen Software könnte es sein, dass man nur Enter drücken müsste. Jeder könnte also ein eigenes Profil für seine Software anlegen und dein Programm sendet dann einfach diese Tastatureingaben und simuliert so den Benutzer.

Das ganze aber nur so als Idee. Vielleicht hast du es ja auch ganz anders gelöst oder hast ganz andere Pläne. :)
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Gute Idee, Problem ist nur, dass z.B. der Raketenwerfer von Pearl (im Gegensatz zu dem von GetDigital) absolut keine Tastaturunterstützung hat.
Er kann nur mit dem im Programm abgebildeten Steuerelemente gesteuert werden. Die würde ich dann mit nem Mausklick-Signal und entsprechenden simulierten Mauskoordinaten lösen.
Da ich aber gerade ne Anfrage an GetDigital gesendet hab, ob die das Programm auf ihrer Internetseite veröffentlichen, konzentriere ich mich gerade mehr darauf, deren Modelle komplett zu unterstützen. Die Unterstützung der Raketenwerfer anderer Hersteller wird aber nicht eingestellt, da arbeite ich weiterhin dran.


Zu meinen weiteren Plänen:

Nächsten Monat kauf ich mir das hier:
http://www.conrad.de/ce/de/product/1907 ... Detail=005
Da bau ich 4 Taster für die Richtungen , einen für "Feuer", und einen An- und Ausschalter dran.
Das USB-Modul gibt die Spannungswerte der analogen Eingänge als int per Treiber ans Programm. Alles was über 1V liegt (USB liefert 5V), wird als "Taster gedrückt" interpretiert. Wird schon geil, wenn man die Raketenwerfer mit ner selbstgebauten Schaltung steuert :)

PS.: Hab schon den Schaltplan gemacht:
(Edit: hab den Link entfernt, der Schaltplan war, nach Aussage eines mir bekannten Technikers falsch, und eine Neuzeichnung wär sehr umständlich gewesen, genau wie der Bau selber nun schwerer wird.)
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Nach langem mal wieder ein Update zu MissileControl:
Ich war, wie viele anderen von euch auch auf der Devmania 2011. Viele haben sich MissileControl angeguckt und der größte Kritikpunkt war, dass ich die Originalsoftware des Raketenwerfers als Mittelweg zur Hardware benutze und sie nicht direkt anspreche. Das will ich in nächster Zeit ändern, d.h. ich will die Raketenwerfer direkt, ohne Umwege mit Signalen versorgen. Wie lange das dauern wird, weiß ich noch nicht, aber es wird nicht leicht, da so was für mich Neuland ist.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [Projekt] MissileControl

Beitrag von Seraph »

Das waere eine sehr gute Aenderung. Also nur Mut zum Neuland und nicht aufgeben. :)
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

So schwer war es doch nicht :)
Ich hab ne schön einfache Lib gefunden, und zwar die hier

Ich brauchte nur die Hardware-spezifischen IDs, um mich mit den Raketenwerfern zu verbinden. Die IDs hab ich mithilfe des Gerätemanagers herausgefunden. Die nächste Problemstellung ist, die passenden Signale zu finden, auf die der Raketenwerfer reagiert.
Ich denke, ich werde doch schneller fertig, als ich dachte.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
joggel

Re: [Projekt] MissileControl

Beitrag von joggel »

Aber wie will man die rausfinden?
Also die Signale auf die der Raketenwerfer reagiert.
Mir würde da nur spontan ein Disassembler einfallen...
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Das weiß ich auch noch nicht. Ich hab n Code-Beispiel hier liegen für einen Raketenwerfer vom gleichen Hersteller, welches auch die Signale enthält. Ich weiß aber nicht, ob es sich um das gleiche Modell handelt, da die im Beispiel angegebene Vendor- und Product-ID bereits Abweichungen zeigten.

EDIT: Im Zweifelsfall probier ich einfach alle Möglichkeiten aus :). Das Signal besteht aus einem Byte, also 256 verschiedene Kombinationsmöglichkeiten :shock:
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
joeydee
Establishment
Beiträge: 1044
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von joeydee »

Bin auf dem Gebiet nicht sehr bewandert, aber kann man nicht einfach die Ausgangssignale der Software an einem anderen USB abfragen?
joggel

Re: [Projekt] MissileControl

Beitrag von joggel »

SunCross hat geschrieben: EDIT: Im Zweifelsfall probier ich einfach alle Möglichkeiten aus :). Das Signal besteht aus einem Byte, also 256 verschiedene Kombinationsmöglichkeiten :shock:
Bist Du da sicher das es nur aus 1 Byte besteht?
Weil, ich habe gestern mal etwas im Netz danach gesucht, und auch etwas gefunden. Im Moment weiß ich nicht mehr genau wo, aber werd nochmal schauen.
Dort habe ich gesehen, das an den USB-Port ein Array aus 8 Einträgen gesendet wurde, welches aus jeweils 8Bit bestand (also char[8]).

Die Ausgangssignal der Software an einen anderen USB-Port abfragen ginge vlt. auch.

Und noch ein Einfall:
Gibt es evtl. die Möglichkeit an den betreffenden USB-Port den Datenverkehr zu überwachen?
Wenn ja, könnte man sich den auch mal anschauen...

Ich habe da auch kaum Ahnung, aber es ist eine ziemlich interessante Sache :)

[Edit]
Ich hoffe ich hänge mich nicht zu sehr damit rein ^^.
Habe hier mal noch was gefunden zum USB-Port überwachen:
1.) USB Monitor. Ist Shareware.
2.) mehereres Zeugs
3.) SniffUsb 2.0 *nur* unter WinXP...
Zuletzt geändert von joggel am 21.10.2011, 09:13, insgesamt 1-mal geändert.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: [Projekt] MissileControl

Beitrag von antisteo »

Eine mögliche Schnittstelle wäre die libusb.
Zum Reverse Engeneering müsste man sich nen Sniffer besorgen (z.B. Wireshark)
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich persönlich hab drauf geachtet, das die lib nix mit der libusb zu tun hat, da sie bei mir immer einige andere Geräte blockiert hat.

@joggel:
Mir ist heute auf Arbeit auch eingefallen, das es doch mehr Byte gewesen sein könnten... :)

EDIT: Ich hab mir jetzt den USBlyzer heruntergeladen. Ist ne 33-Tage-Demo, müsste reichen. Ich krieg auf jeden Fall schon mal Ergebnisse, die muss ich nur zu interpretieren versuchen.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

So, ich hab mittlerweile einige Signale herausbekommen, ich werde sie morgen oder Sonntag ausprobieren.
Anscheinend sendet das Standardprogramm erst eine Art Startbefehl, dann die Kennnummer der jeweiligen Aktion, danach wird der Startbefehl solange wiederholt, bis die Aktion aufhören soll. Zum Schluss wird ein Stoppsignal gesendet. Bei einem Schuss wird vorm Senden des Stoppsignals erst überprüft, ob der Schussvorgang bereits abgeschlossen ist.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

So, ich hab mir jetzt den Quellcode vom Sharp Launcher (http://www.antmason.com/) angeschaut und festgestellt, dass meine herausgefundenen Codes anscheinend stimmen, bis auf das Detail, dass das von mir angenommene Startsignal eigentlich ein Abfragesignal ist, welches wohl den Status des Raketenwerfers abfragt.
Das einzige Problem ist nun, dass die write-Methode der von mir benutzten HID-Library bei allen Versuchen immer und unter allen Umständen false zurückgibt. Ich probiere morgen mal ne andere Lib aus.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Hab jetzt festgestellt, dass die andere Lib auch immer false raushaut, egal ob ich schreiben oder lesen will. Das Komische ist, der Raketenwerfer kriegt nix davon mit, das Signal wird von der Lib nicht mal gesendet. Obwohl ich alles genauso mache, wie andere, die ein ähnliches Ziel bereits hatten, also Raketenwerfer ansteuern.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich habs geschafft!

Der Raketenwerfer gehorcht endlich meinem Programm. Die Bewegungen sind schon implementiert, die Feuer-Funktion wird morgen geschrieben.
Und da das Programm bis jetzt auf die Suche nach den Fensterhandles der Standardsoftware ausgelegt war, muss ich einiges umstrukturieren, die GUI wird gleich mitrenoviert.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [Projekt] MissileControl

Beitrag von Seraph »

Klingt doch gut. :)
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich muss sagen, als ich mit MissileControl angefangen hab, konnte ich nur C++. C# hab ich mir ursprünglich nur angeeignet, um Windows Forms benutzen zu können. Aber ich habe extrem Gefallen gefunden an der Sprache :)

Zum Projekt:
Der Raketenwerfer-Teil des Projektes ist momentan in der Portierungsphase von der alten GUI in die neue. Problem ist, dass die USBHID-Lib standardmäßig nur ein USBHID-Gerät gleichen Typs erkennt. Da die Lib aber in Form von Quellcode vorliegt und nicht als DLL, kann ich das nachträglich noch ändern, was ich auch schon fast geschafft hab.

Wenn dieser Teil fertig ist, kommt der Webcam-Teil dran.

Ich hab momentan den Plan, dass MissileControl aus zwei Fenstern besteht, einmal das Hauptfenster, in dem man die Raketenwerfer und die Webcams getrennt in Listen angezeigt bekommt und die Geräte einzeln aktivieren und deaktivieren kann. Wenn die Raketenwerfer gestartet werden, wird deren Auswahlfenster deaktiviert und die Form empfängt die Tastatursignale, um die Raketenwerfer zu steuern. Wenn die Webcams gestartet werden, wird ein zweites Fenster geöffnet, in dem man ein großes Bild hat, in dem man das Bild der ersten Webcam in der Liste sehen kann. Oben sieht man für alle aktivierten Webcams ein kleines Vorschaubild, welches ebenfalls Live-Bilder anzeigt, nur halt in klein. Wenn man auf eines der Vorschaubilder klickt, bekommt das große Bild von dann an das Bild der Webcam, zu dem das Vorschaubild gehörte.

Bei den Webcams gibts noch folgendes Problem:
Die Vorschaubilder werden alle automatisch nebeneinander gesetzt. Ab der Zahl von 4 Webcams, liegt ein Vorschaubild ausserhalb des Fensters, da muss ich noch ne Scrollleiste integrieren.

Hab momentan 5 Webcams zum Test zur Verfügung, 3 davon sind Restposten von alten Webcam-Raketenwerfern gewesen, sie passen daher genau auf die Raketenwerfer, was durchaus praktisch ist (und cool aussieht).
Hab auch schon gedacht, ein Blatt Papier mit nem großen schwarzem Punkt drauf aufzuhängen, der dann von den Webcams erkannt wird. Da 3 Webcams direkt auf den Raketenwerfern sitzen, bewegt sich das Bild mit, daher müsst man ja irgendwie erkennen können, ob der schwarze Punkt sich der Mitte des Bildes nähert.

Da ich aber 1 Monat vor der Abschlussprüfung meiner Ausbildung stehe, und ich jeden Tag am Lernen bin, sind große Teile meiner Hirnkapazitäten bereits reserviert, daher wird nach der Fertigstellung von meinen ursprünglichen Plänen mit MissileControl (eigener Weg zur Hardware) wahrscheinlich erstmal Pause gemacht.


PS.: Auf dem Screenshot des Webcamfensters sieht man meine Hand auf jedem der Vorschaubilder, weil die Raketenwerfer direkt nebeneinander stehen.
Dateianhänge
Webcam
Webcam
Hauptfenster
Hauptfenster
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Hab gestern gemerkt, dass ich die Feuerfunktion immer noch nicht eingebaut hab. So eine Scheiße.

Hab dafür ein unnötiges Feature gestrichen, und zwar das Löschen von einzelnen Webcams und Raketenwerfern aus der CheckBox-Liste.

Nebenbei hab ich noch ne Idee für ein weiteres Feature: ZIELERKENNUNG (http://www.youtube.com/v/XWoBli5Nf08)
Soll heißen, ein Objekt wird von der Webcam anhand seiner Farbe erkannt, der Raketenwerfer so positioniert, dass die auf ihm sitzende Webcam das Objekt annähernd in der Mitte des Bildes hat und dann gefeuert!
Ist alles noch Träumerei, obwohl die Erkennung schon teilweise implementiert ist :)

Was meine allgemeine Motivation allerdings ein bisschen geschmälert hat, war z.B. die Nachricht vom Betriebsrat der Firma, in der ich die Ausbildung mache, dass ich mich doch so schnell wie möglich als "bald wahrscheinlich arbeitssuchend" beim Arbeitsamt melden sollte. Deshalb bin ich momentan eher mit anderen Sachen als Coden beschäftigt.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
joggel

Re: [Projekt] MissileControl

Beitrag von joggel »

Nebenbei hab ich noch ne Idee für ein weiteres Feature: ZIELERKENNUNG
kool :)
Weiß nicht, ob das mit den Farben funktioniert, da sich die Farbe ja ändern kann wenn sich das Zielobjekt im Raum bewegt und auch wenn andere Lichtquellen hinzukommen.
Da gibt es doch eine Lib die so etwas schon implementiert hat... aber welche verdammt war das??

[Edit]
Ich hätte mal in die verlinkte Video-Beschreibung schauen sollen ^^
http://www.aforgenet.com/
Aber da gab es noch ein(e paar) andere, die soetwas wie Konturenerkennung unterstützen...
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich benutze AForge.NET sowieso schon, um die Webcam-Bilder anzuzeigen, warum also nicht gleich die Lib für andere Zwecke gleich mitbenutzen.
Ausserdem hat der Entwickler von AForge.NET auf www.codeproject.com diverse Artikel über Objekterkennung und ähnliches geschrieben.

In den Beispielen sah es so aus, als ob die Farbe eine gewisse Spanne hat, also zum Beispiel muss der Rot-Anteil nicht 200 sein, sondern muss nur zwischen 180 und 220 liegen. Glaub ich.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von j.klugmann »

Haha, dann wird mein Vorschlag von der Devmania also Realität? :D
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

... Ja :)

Viele andere Features würden mir auch gar nicht mehr einfallen.

Ist im Prinzip auch nur n Hobbyprojekt. Es hat zwar n eigenen Internetauftritt und so, aber wirklichen Sinn sollte das Projekt von Anfang nicht haben. Es ist halt wirklich nur aus dem einfachen Grund ins Leben gerufen worden, weil ich meine 2 Raketenwerfer gleichzeitig bewegen können wollte. Damals noch mit C++ und WinApi :). Das einzige, was ich mit MissileControl für mich selbst erreicht hab, war ne Menge Spaß und n 17,45€-Gutschein von GetDigital :)

Ich hoffe natürlich, dass die Benutzer meines Programms viel Spaß damit haben und mit der neuen Version, die ich demnächst online stelle, wird die Benutzung auch erheblich vereinfacht. Die neue Version wird aber noch keine Zielerkennung enthalten, da ich deren Implementierung noch ein wenig genauer planen möchte, um allzu schäbbigen Code zu vermeiden.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich hab heute n Entschluss gefasst:
Ich will die Webcam-Ansicht umstrukturieren, hab heute mal n Versuch gemacht, mit allen Webcams, die ich hier habe, und, naja, das Ergebnis war, das es ab der Zahl 4 und höher, unübersichtlich wird. Ich will aber Leute mit sinnlosen Mengen an Webcams wie mich nicht einfach ausgrenzen, darum will ich das Layout des Webcam-Fensters so abändern, dass die Übersicht nicht abhanden kommt.

Jemand ne Idee?
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
joggel

Re: [Projekt] MissileControl

Beitrag von joggel »

Veilleicht so etwas wie MDI?
Bild
Diese könnte man ja auf Knopfdruck noch "kacheln", also das sie wie Kacheln neben- und untereinander angeordnet werden...
Aber ob es noch genauso übersichtlich ist??
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Die MDI-Idee find ich gut, hab auch schon n Testfenster. Würd soweit alles klappen und auch vieles vereinfachen. Ich frag mich jetzt nur, ob ich die Vorauswahl der Webcams im Hauptfenster lassen und nur die angekreuzten Webcams mit in den MDI-Container nehmen soll, oder ob ich alles, was mit den Webcams zu tun hat, komplett in den Container verfrachten soll.
Oder ganz cool:
Ich mach die vorher als Hauptfenster benutzte Form zum MDI-Child. Probier ich gleich mal aus.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Hab jetzt n paar Tage nix für MissileControl gemacht, hab aber feststellen müssen, dass die Webcamstreams, wenn sie als MDI-Child angezeigt werden, ruckeln wie Sau...


EDIT:
Weiß jetzt, woran das Ruckeln lag. Ich hab die von den Webcams gelieferten Bilder vorher durch ne Größenanpassung gejagt, damit sie an das MDI-Child-Fenster angepasst werden. Daher kommt das Ruckeln. Wenn ich die Größenänderung aber weglasse, kachelt sich das Bild in alle Richtungen, wenn ich das Fenster größer zieh.
Ich kann aber auch nicht das Bild nur einmal verkleinern/vergrößern, wenn sich das Fenster ändert, weil die Webcams ja konstant eine andere Bildgröße als die Fenster verwenden.
Ich versteh nur nicht, warum sich das mit dem Ruckeln nicht schon bei dem alten Webcam-Fenster-Layout gezeigt hat, vielleicht, weil da die Pictureboxen nicht in ihrer Größe geändert wurden, d.h. der "Empfänger" des Bildes nicht die gleichen Maße wie der Webcamstream hatte, aber diese Maße zur Laufzeit nicht verändert wurden.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Benutzeravatar
SunCross
Beiträge: 99
Registriert: 24.03.2010, 18:43
Wohnort: Essen
Kontaktdaten:

Re: [Projekt] MissileControl

Beitrag von SunCross »

Ich hab grad ne Idee fürn Layout, auch wenn mir die MDI-Idee sehr gut gefallen hat, aber die Webcambilder sind dort leider extremst am Ruckeln, was weiß ich warum.
Das neue Layout würd wie folgt aussehen:

Links zwei Listen, eine Checkboxliste für die anzusteuernden Raketenwerfer, eine Liste für die Webcams (ohne Checkboxen).
In der Mitte, je nach Auswahl, eine oder mehrere Pictureboxen für die Webcams. Diese Anordnung soll mit mehreren Radiobuttons oberhalb der Pictureboxen ausgewählt werden können. Unten wäre dann so ne Art Anzeige dafür, das die Raketenwerfer-Steuerung aktiv ist.
Cool wär, wenn man die Webcams aus der Liste auf die Picturebox ziehen könnte und die jeweilige Webcam dann angezeigt wird.

Momentan bin ich, wie mans vielleicht schon bemerkt hat, in der Layout-Planungsphase.
Die grundlegende Technik steht (bis aufs Schießen), sodass ich die Steuerung oder die Webcam-Anzeige relativ leicht in neue Layouts portieren kann.

Ich mach mir sogar schon Gedanken über andere Plattformen wie Linux, dabei hab ich erstens gar keine Ahnung von Linux und zweitens auch gar keine Zeit :)
Ich mach mir viel zu viele Scheißgedanken.
Einziges Teammitglied von http://www.toxic-coding.de
Entwickler von http://www.missile-control.de
Antworten