DCS Bios avec DCSFlightpanels

Fabrication de cockpit et divers ( palonnier , panels ..) c est ICI
Avatar de l’utilisateur

Topic author
coolhands
Jeune Pilote
Jeune Pilote
Messages : 1622
Inscription : 12 mai 2004

DCS Bios avec DCSFlightpanels

#1

Message par coolhands »

Salut
Pour faire suite à mon message viewtopic.php?f=286&t=215128 et à tous les tests que j'ai fait, je suis tombé sur le projet suivant sur Github https://github.com/DCSFlightpanels/dcs-bios
Après avoir suivi toute la procédure d'installation de ce DCS BIOS j'ai résolu tous mes problèmes avec mon pit :notworthy et toutes mes commandes fonctionnent. Je tenais à vous partager mon retour car j'ai compris que certain avait les mêmes soucis.
Si vous rencontrez des difficultés pour l'installation je peux aider sur Discord.
Vous verez aussi l'astuce pour les switch guard qu'on peut mettre sur un seul PIN de l'Arduino
Je vous mets la copie de mon code :
Tell DCS-BIOS to use a serial connection and use interrupt-driven
communication. The main program will be interrupted to prioritize
processing incoming data.

This should work on any Arduino that has an ATMega328 controller
(Uno, Pro Mini, many others).
*/
#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
typedef DcsBios::RotaryEncoderT<POLL_EVERY_TIME, DcsBios::FOUR_STEPS_PER_DETENT> FourStepRotaryEncoder; // A custom rotary encoder with four quadrature steps per physical detent.

/* MASTER ARM */
DcsBios::LED masterModeAaLt(0x740c, 0x0200, 53);
DcsBios::LED masterModeAgLt(0x740c, 0x0400, 52);
DcsBios::Switch2Pos masterArmSw("MASTER_ARM_SW", 51, true);
DcsBios::Switch2Pos masterModeAa("MASTER_MODE_AA", 48);
DcsBios::Switch2Pos masterModeAg("MASTER_MODE_AG", 49);

/* EMERGENCY JETTISON */
DcsBios::Switch2Pos emerJettBtn("EMER_JETT_BTN", 50, true);

/* MAP GAIN/SPIN RECOVERY PANEL */
DcsBios::PotentiometerEWMA<5, 128, 5> hmdOffBrt("HMD_OFF_BRT", A7);
DcsBios::Switch3Pos irCoolSw("IR_COOL_SW", 25, 23);
DcsBios::LED spinLt(0x742a, 0x0800, 47);
DcsBios::SwitchWithCover2Pos spinRecovery("SPIN_RECOVERY_SW", "SPIN_RECOVERY_COVER", 24);

/* STBY INSTRUMENTS */
FourStepRotaryEncoder stbyPressAlt("STBY_PRESS_ALT", "-3200", "+3200", 26, 27);
FourStepRotaryEncoder saiSet("SAI_SET", "-3200", "+3200", 28, 29);
DcsBios::Switch2Pos saiCage("SAI_CAGE", 30);

/* UFC EFD */
FourStepRotaryEncoder ufcComm1ChannelSelect("UFC_COMM1_CHANNEL_SELECT", "DEC", "INC", 31, 22);
FourStepRotaryEncoder ufcComm2ChannelSelect("UFC_COMM2_CHANNEL_SELECT", "DEC", "INC", 36, 34);
DcsBios::PotentiometerEWMA<5, 128, 5> ufcBrt("UFC_BRT", A4);
DcsBios::Switch2Pos ufcComm1Pull("UFC_COMM1_PULL", 32);
DcsBios::PotentiometerEWMA<5, 128, 5> ufcComm1Vol("UFC_COMM1_VOL", A6);
DcsBios::Switch2Pos ufcComm2Pull("UFC_COMM2_PULL", 33);
DcsBios::PotentiometerEWMA<5, 128, 5> ufcComm2Vol("UFC_COMM2_VOL", A5);

/* HUD PANEL */
DcsBios::PotentiometerEWMA<5, 128, 5> hudAoaIndexer("HUD_AOA_INDEXER", A2);
DcsBios::PotentiometerEWMA<5, 128, 5> hudSymBrt("HUD_SYM_BRT", A3);

/* IFEI EFD */
DcsBios::Switch2Pos ifeiModeBtn("IFEI_MODE_BTN", 43);
DcsBios::RotaryEncoder ifeiUpBtn("IFEI_UP_BTN", "DEC", "INC", 41, 42);
DcsBios::Switch2Pos ifeiEtBtn("IFEI_ET_BTN", 44);

/* EFD GO NOGO + RESET */
DcsBios::LED lhAdvGo(0x740a, 0x0010, 40);
DcsBios::LED lhAdvNoGo(0x740a, 0x0020, 39);
DcsBios::Switch2Pos hudVideoBit("HUD_VIDEO_BIT", 38);

void setup() {
DcsBios::setup();
}

void loop() {
DcsBios::loop();
}
Avatar de l’utilisateur

krampouz
Nouvelle Recrue
Nouvelle Recrue
Messages : 154
Inscription : 04 août 2022

Re: DCS Bios avec DCSFlightpanels

#2

Message par krampouz »

Salut Coolhands,
merci pour les infos partagées.
Je bosse sur une console de M2000, et j'ai un pb avec les switchs protégés avec un capot.
J'ai installé Flightpanels/DCS-Bios au lieu de DCS-Bios original, et j'ai essayé de coder avec SwitchWithCover2Pos mais sans succès.
Dans ton code il y a le SPIN RECOVERY SWITCH qui est dans ce cas là, mais quand je regarde dans le CONTROL REFERENCE, nulle part la ligne que tu as codé n'apparaît.
Est-ce que tu as codé toi même la ligne ?
Si tu as fait un copier coller du snippet, quelle est ta version du CONTROL REFERENCE stp ?
Merci d'avance!
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 311
Inscription : 26 juin 2014

Re: DCS Bios avec DCSFlightpanels

#3

Message par Hombre »

Bonjour,

Super taf.
Pour ma part comme dit plus pas , je bosse sur le 2000. Mon soucis c'est qu'en réseau rs485 je ne communique pas avec les esclaves. Je sais que mes programmes fonctionnent en détail.
Un peu d'aide si vous savez. :ouin:

Cdt
Avatar de l’utilisateur

krampouz
Nouvelle Recrue
Nouvelle Recrue
Messages : 154
Inscription : 04 août 2022

Re: DCS Bios avec DCSFlightpanels

#4

Message par krampouz »

Salut Hombre
si tes cartes fonctionnent bien indépendamment et pas en réseau, avec tes inter qui bagottent comme tu dis dans un autre post, ça ne pourrait pas être un pb de conflit d'adressage ? Je ne suis plus trop dedans, mais ça m'évoque de (vieux) souvenirs...

Pour ma gouverne, pourquoi prends-tu le RS485? tu passes par quoi comme connectique ? tes cartes, c'est du arduino ?

Sinon, as-tu déjà fait fonctionner des inters à capot avec la commande SwitchWithCover2Pos, expemple le cutoff switch du puits de démarrage ?
Avatar de l’utilisateur

krampouz
Nouvelle Recrue
Nouvelle Recrue
Messages : 154
Inscription : 04 août 2022

Re: DCS Bios avec DCSFlightpanels

#5

Message par krampouz »

Pour le switch with cover c,'est bon, j'ai réinstallé tout DCS-Bios Flightpanels et la librairie arduino associée. Surement une mauvaise manip :/
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 311
Inscription : 26 juin 2014

Re: DCS Bios avec DCSFlightpanels

#6

Message par Hombre »

Salut Krampouz,

C'est bien du arduino, de plus le fait de passer par du rs485 cela ne prend qu'un port USB sur le pc. Pas comme en sérial ou chaque arduino prend une prise USB.
Sinon pour le capot et le switch, ce n'est pas un contact pour chaque élément? Pour le 2000 il y a un contact pour chaque.

Cdt
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 311
Inscription : 26 juin 2014

Re: DCS Bios avec DCSFlightpanels

#7

Message par Hombre »

Bon, problème résolu.
Avatar de l’utilisateur

krampouz
Nouvelle Recrue
Nouvelle Recrue
Messages : 154
Inscription : 04 août 2022

Re: DCS Bios avec DCSFlightpanels

#8

Message par krampouz »

Hombre a écrit :
mar. déc. 20, 2022 7:39 pm
Salut Krampouz,

C'est bien du arduino, de plus le fait de passer par du rs485 cela ne prend qu'un port USB sur le pc. Pas comme en sérial ou chaque arduino prend une prise USB.
Sinon pour le capot et le switch, ce n'est pas un contact pour chaque élément? Pour le 2000 il y a un contact pour chaque.

Cdt
Ola!
Cool si ça fonctionne. Je te demanderai peut-être pour le RS485 si jamais j'ai des soucis avec les multi USB. Pour le moment pour les prises USB, avec 2 cartes arduino mises sur un hub USB alimenté, j'ai pas de soucis. On verra avec 3 ou 4 cartes 2560 si jamais ça bugge.

Sinon pour les switchs avec capot, il y a la fonction SwitchWithCover2Pos qui marche bien, regarde dans le code de Coolhands. ça permet d'actionner le capot ET l'interrupteur avec seulement un seul switch, donc une seule entrée arduino.
Donc, ton capot physique n'est pas codé, car pas connecté, et seul ton switch est relié à l'arduino.
Mais le snippet n'existe pas dans le CONTROL REFERENCE, il faut coder à la main avec la syntaxe suivante (l'exemple était pas pour un 2000, mais le principe est le même, testé ok avec les 2 capots du puits de démarrage)

DcsBios::SwitchWithCover2Pos spinRecovery("SPIN_RECOVERY_SW", "SPIN_RECOVERY_COVER", 24);

mais j'ai du réinstaller pour avoir les même Library dans DCS-Bios et dans Arduino IDE.
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 311
Inscription : 26 juin 2014

Re: DCS Bios avec DCSFlightpanels

#9

Message par Hombre »

Hi,

Pas de soucis pour le rs 485, mais rien de sorcier tout est sur le net.
Je savais pas que l'on pouvait passer par un hub usb? Comment fais tu pour démarrer le serial connect?
J'avais tenté mais pas réussi .
Tu trouves ou le code de Coolhands?

Cdt
Avatar de l’utilisateur

krampouz
Nouvelle Recrue
Nouvelle Recrue
Messages : 154
Inscription : 04 août 2022

Re: DCS Bios avec DCSFlightpanels

#10

Message par krampouz »

Ola!
le code est dans le premier post de Coolhands ;) mais sino il suffit de reprendre celui que j’ai mis plus haut, même combat.
pour le hub, j’ai juste branché un hub alimenté sur le pc, branché mes deux cartes arduino et zou! cétautomatix!
D’ailleurs, intéressant, une des cartes est programmée en dcsflightpanels, pour la fonctionnalité switchwithcover qui n’est pas dans le dcsbios original semble-t-il; et pourtant, branchée sur l’ordi avec seulement dcsbios original installé, la fonctionnalité switchwithcover fonctionne… tant mieux cela dit! papa Noël en avance, pas besoin de tout recoder! :-D
Avatar de l’utilisateur

PapaTango72
Nouvelle Recrue
Nouvelle Recrue
Messages : 6
Inscription : 20 août 2021

Re: DCS Bios avec DCSFlightpanels

#11

Message par PapaTango72 »

Je pense qu'il ne faut pas mélanger les versions de DCS-Bios original et DCSFlightPanels.
Quelques configs ont changé. Ca peut fonctionner pour d'autres mais je pense que pour 10% on peut avoir des soucis.

Exemple le voyant PC :
Ancien
"PC": {
"category": "MAIN PANEL",
"control_type": "led",
"description": "O - AL - PC Light",
"identifier": "PC",
"inputs": [],
"outputs": [
{
"address": 29362,
"description": "0 if light is off, 1 if light is on",
"mask": 2,
"max_value": 1,
"shift_by": 1,
"suffix": "",
"type": "integer"
}
]
}
Nouveau
"PC": {
"category": "MAIN PANEL",
"control_type": "led",
"description": "O - AL - PC Light (green)",
"identifier": "PC",
"inputs": [],
"outputs": [
{
"address": 29360,
"description": "0 if light is off, 1 if light is on",
"mask": 4,
"max_value": 1,
"shift_by": 2,
"suffix": "",
"type": "integer"
}
]
}
On voit que son adresse a changé.
Donc si on ne modifie pas le code Arduino en utilisant la même adresse alors ça ne communique plus.
Répondre

Revenir à « Cockpit & mod perso »