Dans un de mes derniers posts, je disais que j'allais vraisemblablement utiliser les switches + BBi 32 de chez Bodnar afin d'interfacer les roulettes de sélection. Et bien ça marche!
Petit tuto pour la réalisation de la sélections d'altitude du PA:

Matériel:
-carte BBi 32 et les switches qui vont avec,
-des roues de sélection de type "Digitran".

Peu importe la série (29000, 45000 ou autre ..), celle-ci définit seulement la taille des roues). Par contre, dans notre cas il faut absolument des roues de type "single pole décimal", pas des "BCD" ou "BCD+compliment", ou "BCH".


En fait ce codage n'en est pas un, puisqu'à chaque position de la roue correspond une sortie. Plus qu'à une roue codeuse, c'est donc à un switch rotatif qu'on a affaire, et c'est justement cette caractéristique qui m'intéressait, car on peut donc les utiliser directement sur une carte de type joystick, en utilisant 10 entrées et un commun.
ET... en jumelant ces roues avec les switches Leo Bodnar, on peut les connecter directement à la BBI32 avec seulement 2 fils!
J'ai démonté le "switch Bodnar" et je l'ai connecté (par soudure) aux bornes de la roue codeuse:

Cela est à faire pour les 3 roues de sélection (FL100, FL10, FL1)
Modifications du Soft:
DCS est basé sur les fichiers LUA, et cela lui donne une grande souplesse de modification et de personnalisation. Il est possible de modifier et d'adapter les fichiers qui servent à interfacer le simu. Dans notre cas, il faut trouver le fichier "default.lua" qui se trouve sous: "C:\Program Files\Eagle Dynamics\DCS World\Mods\aircraft\M-2000C\Input\M-2000C\joystick" (Je vous conseille d'utiliser un éditeur spécialisé comme notepad ++)
Editez ce fichier, et recherchez les lignes suivantes:
- Code: Tout sélectionner
{category = _('Autopilot'), name = _('Selected Alt FL 100 Inc'), down = cmds.Helper_SEL_ALT_FL100_INC, value_down=1.0, },
{category = _('Autopilot'), name = _('Selected Alt FL 100 Dec'), down = cmds.Helper_SEL_ALT_FL100_INC, value_down=-1.0, },
{category = _('Autopilot'), name = _('Selected Alt FL 10 Inc'), down = cmds.Helper_SEL_ALT_FL10_INC, value_down=1.0, },
{category = _('Autopilot'), name = _('Selected Alt FL 10 Dec'), down = cmds.Helper_SEL_ALT_FL10_INC, value_down=-1.0, },
{category = _('Autopilot'), name = _('Selected Alt FL 1 Inc'), down = cmds.Helper_SEL_ALT_FL1_INC, value_down=1.0, },
{category = _('Autopilot'), name = _('Selected Alt FL 1 Dec'), down = cmds.Helper_SEL_ALT_FL1_INC, value_down=-1.0, },
Celles-ci definissent le mode d'activation de la fonction "sélection d'altitude" du PA:
-les 2 premières lignes sont pour la roulette du niveau de vol 100 (Flight level 100, 10 000 pieds)
-les 2 suivantes pour le FL 10... (Flight level 10, 1000 pieds)
-les 2 dernières pour le FL 1 ... (Flight level 1, 100 pieds)
Ces 3 commandes sont structurées pour agir avec le simu dans le sens positif (INC) ou négatif (Dec) grâce à un encodeur. L'inconvénient de cette méthode est qu'il n'y a pas d'initialisation au démarrage du simu: Si les roues "physiques" sont restées positionnées sur un chiffre quelconque lors d'une précédente mission, le simu ne saura pas se recaler sur cette position. De plus cela ne fonctionnera pas avec nos roues codeuse qui agissent comme autant de switches qu'il y a de numéros sur les roues.
on va donc commencer par désactiver ces lignes en mettant un "--" au début de celles-ci, exemple:
- Code: Tout sélectionner
--{category = _('Autopilot'), name = _('Selected Alt FL 100 Inc'), down = cmds.Helper_SEL_ALT_FL100_INC, value_down=1.0, },
(à faire pour les 6 lignes)
Puis, pour que ces fonctions marchent avec nos 3 roues, il faut ajouter le code suivant pour qu'il agisse comme si on activait un poussoir différent pour chaque numéro de la roue. On est donc obligé d'entrer une ligne de code par position de roue:
- Code: Tout sélectionner
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 0'), down = 3299, cockpit_device_id = 17, value_down = 0.0 },
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 1'), down = 3299, cockpit_device_id = 17, value_down = 0.1 },
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 2'), down = 3299, cockpit_device_id = 17, value_down = 0.2 },
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 3'), down = 3299, cockpit_device_id = 17, value_down = 0.3 },
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 4'), down = 3299, cockpit_device_id = 17, value_down = 0.4 },
{category = _('Autopilot'), name = _('Selected Alt FL 100 - 5'), down = 3299, cockpit_device_id = 17, value_down = 0.5 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 0'), down = 3300, cockpit_device_id = 17, value_down = 0.0 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 1'), down = 3300, cockpit_device_id = 17, value_down = 0.1 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 2'), down = 3300, cockpit_device_id = 17, value_down = 0.2 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 3'), down = 3300, cockpit_device_id = 17, value_down = 0.3 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 4'), down = 3300, cockpit_device_id = 17, value_down = 0.4 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 5'), down = 3300, cockpit_device_id = 17, value_down = 0.5 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 6'), down = 3300, cockpit_device_id = 17, value_down = 0.6 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 7'), down = 3300, cockpit_device_id = 17, value_down = 0.7 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 8'), down = 3300, cockpit_device_id = 17, value_down = 0.8 },
{category = _('Autopilot'), name = _('Selected Alt FL 10 - 9'), down = 3300, cockpit_device_id = 17, value_down = 0.9 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 0'), down = 3301, cockpit_device_id = 17, value_down = 0.0 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 1'), down = 3301, cockpit_device_id = 17, value_down = 0.1 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 2'), down = 3301, cockpit_device_id = 17, value_down = 0.2 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 3'), down = 3301, cockpit_device_id = 17, value_down = 0.3 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 4'), down = 3301, cockpit_device_id = 17, value_down = 0.4 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 5'), down = 3301, cockpit_device_id = 17, value_down = 0.5 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 6'), down = 3301, cockpit_device_id = 17, value_down = 0.6 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 7'), down = 3301, cockpit_device_id = 17, value_down = 0.7 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 8'), down = 3301, cockpit_device_id = 17, value_down = 0.8 },
{category = _('Autopilot'), name = _('Selected Alt FL 1 - 9'), down = 3301, cockpit_device_id = 17, value_down = 0.9 },
(la roue FL100 ne va que jusqu'à 5 maxi, les autres roues vont de 0 à 9)
Ensuite, il faudra affecter chacune des nouvelles lignes qui apparaissent maintenant dans la liste des commandes du simu à chaque position des 3 roues, comme autant de poussoirs,

et le tour est joué : vous avez maintenant un parfait réalisme de la fonction, avec les sélections simu qui sont toujours calées par rapports aux roues physiques.
https://youtu.be/HlKw3Z30_H0
Bonne soirée
Patlog