Câblage et codage d'un switch iginition

Questions de programmation / Offset FSUIPC et IOCP

Câblage et codage d'un switch iginition

Messagede FiX » Mar 7 Oct 2025 22:50

Avant de câbler mon (vrai) iginition switch de cessna, il faut que je me fasse une idée du code pour pouvoir l'utiliser.
Problème, si je commence remettre mon nez dan le simu, je n'ai pas touché à SIOC depuis plus de 10ans, autant dire que j'ai absolument tout oublié...
Mais ma stratégie de câblage va dépendre de ce que je vais pouvoir faire comme code pour l'interfacer.
Alors je sollicite ceux qui ont encore un cerveau qui ne formate pas les données qui ont plus de 5ans...

Voilà l'idée:

Image

Evidemment ça n'est pas un "simple" commutateur 5 positions avec une masse et une "patte" par position, c'est un peu plus tordu (et rien ne dit que ce soit parfaitement fonctionnel).

A priori j'ai repéré le GND, au centre.

-Position "OFF":
GND - A = 1 (continuité entre GND et borne A)
GND - B = 1
GND - C = 0 (pas de continuité)

-Position "L MAG":
GND-A = 0
GND-B = 1
GND-C = 0

-Position "R MAG":
GND-A = 1
GND-B = 0
GND-C = 1

-Position "BOTH":
GND-A = 0
GND-B = 0
GND-C = 0

-Position "START" (momentanée)
GND-A = 0
GND-B = 0
GND-C = 1
(D - E = 1)

En gros le petit point embêtant c'est pour le start. On voit que je pourrais utiliser GND-C, mais le problème c'est que GND-C est aussi = 1 sur la position "R MAG"
Es-ce que c'est contournable dans le code en disant en posant des conditions du style:
Si GND-B = 1 et GND-C = 1 Alors RMAG, mais pas de START
Si GND-C = 1 et tout le reste à 0 Alors START.

Sinon j'ai repéré que D-E =1 uniquement au START
Je pourrais donc utiliser D en un autre GND (ou même relier les 2), ne pas utiliser C mais utiliser E juste pour le START.
C'est peut être plus simple pour le code?
En gros ça me ferait:
(GND-A et GND-B)=1 => OFF
GND-A=0 et GND B=1 => LMAG
GND-A=1 et GND B=0 => RMAG
(GND-A et GND-B)=0 => BOTH
D-E=1 => START
i5 14600k /b760 /Radeon 9060XT /2x1To Nvme / W11/ MSFS2020
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4691
Inscription: 8/01/10
Localisation: Feignies

Re: Câblage et codage d'un switch iginition

Messagede fab » Mer 8 Oct 2025 08:19

Avec SIOC tout est possible !

C'est cas classique en programmation.
Tu donnes une valeur à chaque position, valeur inspirée du binaire.
Tu additionnes ces valeurs dans une variable si la position est sur 1.
Tu compares cette valeur aux valeurs attendues pour chaque action.

voilà ce que cela donne, E sera sur GND : si A=1, B=2, C=4, D=8

-Position "OFF" sera égale 1+2 = 3
GND - A = 1
GND - B = 1
GND - C = 0
GND(E) - D = 0


-Position "L MAG" = 2
GND-A = 0
GND-B = 1
GND-C = 0
GND(E) - D = 0

-Position "R MAG" : 1+4 = 5
GND-A = 1
GND-B = 0
GND-C = 1
GND(E) - D = 0

-Position "BOTH" = 0
GND-A = 0
GND-B = 0
GND-C = 0
GND(E) - D = 0

-Position "START" = 4+8 = 12
GND-A = 0
GND-B = 0
GND-C = 1
GND(E) - D = 1

Une autre méthode serait de faire une succession de "IF / ELSE" mais en SIOC ce n'est pas évident.

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4490
Inscription: 26/12/12
Localisation: Roubaix


Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron