FiX a écrit:Or, dans le cockpit virtuel, ça n'est pas le cas, ça nous montre qu'il y a bien une programmation "graphique" pour le mouvement des aiguilles qui n'est pas "que" la transcription directe de la valeur de l'offset...
Au vue de la réponse de BOB, c'est clair que oui !
Merci BOB, y'a plus qu'à donc ...
Cela fait plusieurs fois que j'entends parler de IOCPServer, sans bien comprendre le pourquoi des offsets différents ???
J'ai donc téléchargé "IOCP4FS9" et j'ai aussi trouvé un petit tuto (fichier word en Français, si cela intéresse quelqu'un)
Je ne l'ai pas encore installé, j'aurais quelques questions avant :
- Je suppose que ce sont les mêmes offsets qu'avec FSUICP et que IOCPServer est utilisé à la place de FSUICP ?
- Peut-on continuer à utiliser FSUIPC en même temps que IOCPServer (par Ex en programmation de touche) ?
- J'ai vu dans le tuto qu'il faut modifier le "sioc.ini", doit-on dévalider FSUIPC par "FSUipcdisable=Yes" ?
- Y a t-il quelque chose à changer dans mon code SIOC pour l'adapter à IOCPServer à la place de FSUIPC ?
J'espère qu'il ne faut pas changer tous les offsets
J'ai programmé tous mes servos avec les équations correspondantes (y=ax + b) et ça fonctionne, les positions MIN, MAX et REPOS sont correctes. Seul la vitesse de l'aiguille est différente
Je peux bien sûr donner le code !
BOB, je vais regarder cette commande TIMMER
Mon code pour les gauges fuel :
- Code: Tout sélectionner
//
// Fuel jauge left et Right
//
// Offset $0B7C et $0B94 Length 4 en % * 128 * 65536
// Graduation 0 à 100 %
// servo de 170 à 850 --> a = 6,8 b = 170
//
Var 4180, name fs_fuel_left, link FSUIPC_INOUT, Offset $0b7c, Length 4
{
CALL &sub_fuel_left
}
Var 4181, name sub_fuel_left, link subrutine
{
IF &courant = 0
{
&serv_Fuel_L = 170
}
ELSE
{
&val_fuel_left = &fs_fuel_left / 83886.08 // de 0 à 100% : 128 * 65536 / 100
L0 = &val_fuel_left * 6.8 // "a" (y = ax)
L1 = L0 + 170 // "b" (y = ax + b)
L1 = LIMIT 150 900 0 // Limite amplitude servo de 150 à 900
&serv_Fuel_L = L1 // Envoie valeur au servo
}
}
Var 4182, name val_fuel_left
//
// Fuel jauge right
//
Var 4190, name fs_fuel_right, link FSUIPC_INOUT, Offset $0b94, Length 4
{
CALL &sub_fuel_right
}
Var 4191, name sub_fuel_right, link subrutine
{
IF &courant = 0
{
&serv_Fuel_R = 170
}
ELSE
{
&val_fuel_right = &fs_fuel_right / 83886.08 // de 0 à 100% : 128 * 65536 / 100
L0 = &val_fuel_right * 6.8 // "a" (y = ax)
L1 = L0 + 170 // "b" (y = ax + b)
L1 = LIMIT 150 900 0 // Limite amplitude servo de 150 à 900
&serv_Fuel_R = L1 // Envoie valeur au servo
}
}
Var 4192, name val_fuel_right
La subroutine est nécessaire au démarrage de SIOC pour initialiser les servos !
A+ Pierre.
CM : Azus Z790-A WiFi DDR5 64GB - CPU : Intel core i9-14900k - 2 SSD NVMe : 1To + 2To Samsung
CG : MSI GeForce RTX 4080 16GB RAM GDDR6 - Alim : MSI 1000W - SYSTEME : W11 & FSX (en attendant FS2024)