Wie kann ich einen weiteren Controller hinzufügen - ED Forums
 


Notices

Reply
 
Thread Tools Display Modes
Old 03-21-2015, 10:09 AM   #1
Tekkx
Member
 
Tekkx's Avatar
 
Join Date: Feb 2015
Location: Germany, Erfurt
Posts: 304
Question Wie kann ich einen weiteren Controller hinzufügen

Hallo, liebe Gemeinde

Ich erkläre ganz kurz mein Problem.

Ich baue mir zur Zeit ein CDU. Auf die Einzelheiten möchte ich nicht näher eingehen, weil das Meiste erst auf dem Papier oder Labortisch existiert...

Aber soviel sei verraten:
Das Ganze basiert auf einem Arduino Leonardo, welcher dem PC gegenüber so tut, als sei er eine Tastatur.

Da das Setup mit den vielen Tausend Tastaturkombinationen langsam etwas unübersichtlich wird (und mir auch die Modifier-Keys ausgehen), habe ich mir Folgendes überlegt:

Da in den Optionen von DCS World alle angeschlossenen Controller und das Keyboard spaltenweise angezeigt werden, frage ich mich, wo und in welcher LUA diese Geräte (oder Devices) gespeichert und deren Settings gespeichert werden.

Nun sollte es doch eigentich möglich sein, mein neues Keyboard (sprich: CDU) hier irgendwie einbinden zu können.

Die Frage ist vor allem vor dem Hintergrund interessant, daß sich während der Planung des CDU weitere Aufgaben ergeben haben.

So brauche ich dann zum CDU dringend ein AAP, dann noch ein UFC und ein LASTE und zwei MFDs wären auch nicht schlecht. Und dann sind die Tasten und deren Kombis wirklich bald "alle".

Dank Arduino (und Verwandten) (viele Grüße nach Italien und in die USA) ist das Entwickeln und Bauen der Devices überhaupt kein Problem.

Hat hier jemand einen hilfreichen Tip oder Hinweis für mich?

Viele Grüße @all.
Tekkx
__________________
AMD FX8350 @ 4400 Hz, 16GB DDR3, 2x Asus GTX970 OC Strix, SSD/SSHD, 3x BENQ 22", Sound of 2 old 100 Watts Broadcast Monitor-Speakers + w/l Logitech Headset
A-10C-Devices: UFC (LeftSideController made from a keyboard of a Olympia CM 811), X55 Rhino and Saitek Pedales, CDU (try to adopt it to DCS-BIOS), 18" TFT with HELIOS Gauges incl. 2x scratchbuilt MFD-Bezels (under construction), Facetrack w Pointtracker + DIY Clip - Manual for my version of RS485-Hardware, contact: tekkx@dresi.de

Last edited by Tekkx; 03-21-2015 at 10:28 AM.
Tekkx is offline   Reply With Quote
Old 03-21-2015, 10:34 AM   #2
Flagrum
Veteran
 
Join Date: Feb 2013
Location: r/hoggit
Posts: 6,152
Default

Im Prinzip ist es relativ simpel: DCS erkennt Tastatur, Maus und beliebiege USB "joystickähnliche" Geräte automatisch und bietet Dir in den Controller Einstellungen alle Funktionen an, denen du Tastendrücke oder Buttons zuordnen kannst.

Wenn ich Dich richtig verstanden habe, simuliert Dein Board eine Tastatur. Hier gibt es nun die (Windows) Einschränkung, dass ein Programm wie DCS keine verschiedenen Tastaturen unterscheiden kann (anders als bei DirectX "joysticks"). D.h. wenn Du auf deiner normalen Tastatur "A" drückst, oder dein Arduino ein "A" sendet, für DCS ist es das gleiche.

Anders wäre es bei DirectX Geräten, wo "Button 1" an Gerät A eben etwas anderes ist, als "Button 1" an Gerät B. So kannst du mit entsprechender softwareunterstützung z.B. ein physikalisches Gerät als mehrere logische DirectX Geräte anbinden (ggf. notwendig, da DirextX, iirc, nur 63 Buttons per Device unterstützt). D.h. hier hättest du maximale Flexibilität.

Ob das aber mit deinem Ansatz möglich ist, kann ich nicht sagen - ich kenne mich mit Arduino nicht aus.

Aber noch eine Frage: warum gehen dir die Key-Combos aus? In DCS sind doch alle möglichen Funktionen des CDU bereits Key-Combos zugeordnet ... die du eigentlich ja nur verwenden müsstest - du musst dir ja keine (zusätzlichen) eigenen Key Combos ausdenken ...?
Flagrum is offline   Reply With Quote
Old 03-21-2015, 12:06 PM   #3
Tekkx
Member
 
Tekkx's Avatar
 
Join Date: Feb 2015
Location: Germany, Erfurt
Posts: 304
Default

Danke, Flagrum. Sehr anschaulich erklärt.
Das hört sich an, als bekäme ich hier ein Problem... Windows 7 wiedermal :/
So erklärt sich, warum alle meine Controller in den DCS-Optionen auftauchen aber meine "Leo-Tastatur" nicht. Es gibt ja schon eine Tastatur.

Mein Win7 erkennt den Leo als Tastatur.
Vielleicht finde ich eine Lösung, das Ding als DirectX-Gerät (heute zum ersten Mal gehört) zu tarnen.

Zu den Tasten-Kombis: In meinen Settings war die CDU komplett(?) nicht belegt.
Habe jetzt (rstmal zu Testzwecken) alles mit RCtrl + RShift+... belegt. Aus Gründen der einfachen Programmierung hätte ich gern bei allen 65 Tasten die gleichen Modifier.
Wenn ich's damit nicht hinkriege werde ich wohl noch auf andere ausweichen müssen. Mit etwas C++ Code ist das nur ein Komfort-Problem

Jetzt forsche ich mal den DirectX-Weg aus.
Danke für den Tip.

Stay tuned
__________________
AMD FX8350 @ 4400 Hz, 16GB DDR3, 2x Asus GTX970 OC Strix, SSD/SSHD, 3x BENQ 22", Sound of 2 old 100 Watts Broadcast Monitor-Speakers + w/l Logitech Headset
A-10C-Devices: UFC (LeftSideController made from a keyboard of a Olympia CM 811), X55 Rhino and Saitek Pedales, CDU (try to adopt it to DCS-BIOS), 18" TFT with HELIOS Gauges incl. 2x scratchbuilt MFD-Bezels (under construction), Facetrack w Pointtracker + DIY Clip - Manual for my version of RS485-Hardware, contact: tekkx@dresi.de
Tekkx is offline   Reply With Quote
Old 03-21-2015, 02:43 PM   #4
Roni86
Junior Member
 
Join Date: Mar 2014
Posts: 24
Default

Hallo Tekkx,

schau Dir mal folgenden Link an. Vielleicht hift Dir das ja.
http://http://www.imaginaryindustries.com/blog/?p=80

Gruß
Roni
Roni86 is offline   Reply With Quote
Old 03-21-2015, 03:05 PM   #5
Tekkx
Member
 
Tekkx's Avatar
 
Join Date: Feb 2015
Location: Germany, Erfurt
Posts: 304
Default

Hey Roni86.
Auf der Seite war ich schon (Du hast 2x http im Link).
Beim ersten Mal hat mir nur der Kopf gequalmt

Hab's jetzt nochmal gelesen.
Wahrscheinlich ist das die Lösung. Muß mich wohl mit weiteren Dingen vertraut machen.
Da habe ich ja ein schönes Fass aufgemacht...

Danke für das "nochmal mit der Nase reinstupsen"
Tekkx is offline   Reply With Quote
Old 03-22-2015, 07:03 AM   #6
Red Yeti
Junior Member
 
Join Date: Nov 2011
Posts: 41
Default

Das Joystickkonfigurationsprogramm unter Windows erkennt nur 32 Tasten pro Joystick. Windows selbst erkennt bis zu 128 Tasten pro Joystick. Unter DCS kann man dann auch alle 128 Tasten benutzen.

Hier im Forum hat schon jemand den Code für einen Arduino Mega geschrieben.
Vielleicht lässt es sich auf auf den Leonardo portieren.

Alternativ gibt es auch MMJoy mit dem man einige Arduinotypen als 2 Joysticks mit je 32 Tasten flaschen kann.
Red Yeti is offline   Reply With Quote
Old 03-22-2015, 08:28 AM   #7
Tekkx
Member
 
Tekkx's Avatar
 
Join Date: Feb 2015
Location: Germany, Erfurt
Posts: 304
Default

Danke Red Yeti.
Das ist ne Menge Stoff, den ich mir da reinziehen muss. Scheint auch der richtige Weg zu sein.
Habe ich wiedermal gezeigt bekommen, wie wenig ich doch weiß.

Doch der Mensch wächst ja bekanntlich mit seinen Herausforderungen
Ich überlege schon, ob ich mir schonmal einen zweiten Arduino hinlege falls ich meinen bricke.

PS: Über der ganzen Bastelei komme ich überhaupt nicht mehr zum Fliegen :/

Edit: 10 Minuten später:

http://www.imaginaryindustries.com/blog/?p=80

Mit Hilfe der beiden dort verlinkten Files
USBAPI.h
HID.cpp

meldet sich der Leo schonmal im DCS als GameController an.
Ein kleiner Schritt für einen Leo, ein riesiger für mich

Jetzt muß ich meinen schönen Code (der funktioniert hat) wahrscheinlich komplett von NULL neu schreiben. Aber dafür sind "wir" ja da
Aber vielleicht lasse ich auch erstmal mein PCB ätzen. Taster auflöten... damit das Gefummel mit den Drahtbrücken aufhört.
Attached Thumbnails
Click image for larger version

Name:	CDU PCB 2015 03.PNG
Views:	217
Size:	48.0 KB
ID:	115364   Click image for larger version

Name:	DCS mit Leo.png
Views:	211
Size:	388.3 KB
ID:	115366  
__________________
AMD FX8350 @ 4400 Hz, 16GB DDR3, 2x Asus GTX970 OC Strix, SSD/SSHD, 3x BENQ 22", Sound of 2 old 100 Watts Broadcast Monitor-Speakers + w/l Logitech Headset
A-10C-Devices: UFC (LeftSideController made from a keyboard of a Olympia CM 811), X55 Rhino and Saitek Pedales, CDU (try to adopt it to DCS-BIOS), 18" TFT with HELIOS Gauges incl. 2x scratchbuilt MFD-Bezels (under construction), Facetrack w Pointtracker + DIY Clip - Manual for my version of RS485-Hardware, contact: tekkx@dresi.de

Last edited by Tekkx; 03-22-2015 at 09:30 AM.
Tekkx is offline   Reply With Quote
Old 03-22-2015, 08:18 PM   #8
McMicha
Member
 
McMicha's Avatar
 
Join Date: Nov 2012
Location: Germany
Posts: 785
Default

Moin Tekkx,

warum machst du das nicht einfach so wie Flagrun schreibt und nutzt die bereits standardmäßig vorgegeben Tastatur Kombinationen die in DCS schon hinterlegt sind.
Ich selber habe mir mit einem anderen Board auch etwas gebaut und dort die Tasturkomandos vom Black Shark hinterlegt, und das ganze funktioniert tadellos.
Ich kann das Board auch an einem anderen DCS PC anschließen und dort werden die Tasten sofort erkannt, da es sich ja um die Defaultbelegung handelt.
DCS ist das egal von welcher Tastatur die Eingaben kommen, aber sicherlich gibt es auch unter Windows eine Obergrenze wie viel Tastaturen an den PC angeschlossen sein können und das ganze noch funktioniert.
Bei Joysticks liegt die meiner Erachtens nach bei 16 Geräten.

CU Micha
McMicha is offline   Reply With Quote
Old 03-23-2015, 05:01 AM   #9
Tekkx
Member
 
Tekkx's Avatar
 
Join Date: Feb 2015
Location: Germany, Erfurt
Posts: 304
Default

Hey Micha.
Warum?
- Weil es sauberer ist, einen Gamecontroller (egal ob Eigenbau oder nicht) als Gamecontroller anzuschließen?
- Weil, wenn ich es quick-and-dirty wollte, wahrscheinlich lieber Space-Invaders spielen würde statt einen relativ komplexen Simulator?
- Weil es sowieso der totale Irrsinn ist, ...zig Stunden und etliche Euro in eine Sache zu investieren, die keinerlei praktischen Nutzen abwirft?

Wenn es mir gelingt, dieses Rätsel zu knacken, habe ich eben ein besseres Gefühl dabei und noch X-Over-Knowledge erworben, welches mir - möglicherweise - auch im "richtigen Leben" nützt.
Wenn schon Nerd (und ich betrachte das nicht als Schimpfwort), dann aber richtig.

Bin übrigens seit gestern keinen Schritt weiter gekommen und zwischendurch kam mir tatsächlich schon der Gedanke ans Aufgeben.
__________________
AMD FX8350 @ 4400 Hz, 16GB DDR3, 2x Asus GTX970 OC Strix, SSD/SSHD, 3x BENQ 22", Sound of 2 old 100 Watts Broadcast Monitor-Speakers + w/l Logitech Headset
A-10C-Devices: UFC (LeftSideController made from a keyboard of a Olympia CM 811), X55 Rhino and Saitek Pedales, CDU (try to adopt it to DCS-BIOS), 18" TFT with HELIOS Gauges incl. 2x scratchbuilt MFD-Bezels (under construction), Facetrack w Pointtracker + DIY Clip - Manual for my version of RS485-Hardware, contact: tekkx@dresi.de
Tekkx is offline   Reply With Quote
Reply

Tags
cdu, controller, eigenbau, hinzufügen

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT. The time now is 07:55 PM. vBulletin Skin by ForumMonkeys. Powered by vBulletin®.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.