![Notworthy :notworthy](./images/smilies/notworthy.gif)
++
Salut,jdaou a écrit :Salut !
Merci pour ce module qui me sert bien avec ma boite a bouton à 20 balles.
Petit remarque en passant, ce serait pas mal d'avoir tes modifs directement sur github car c'est pas évident d'être sûr d'avoir les dernières modifs ( dans l'archive que tu proposes, il y a bien 3-4 fichiers pour le mirage 2000 ), et ainsi, ça lui permettrai une diffusion un peu plus large de ce boulot
Si il est intégré à la biblio originale, c'est sûr que c'est plus simple d'attendre. N'hésite pas si tu as besoin d"un coup de main le temps venuExo7 a écrit :Salut,jdaou a écrit :Salut !
Merci pour ce module qui me sert bien avec ma boite a bouton à 20 balles.
Petit remarque en passant, ce serait pas mal d'avoir tes modifs directement sur github car c'est pas évident d'être sûr d'avoir les dernières modifs ( dans l'archive que tu proposes, il y a bien 3-4 fichiers pour le mirage 2000 ), et ainsi, ça lui permettrai une diffusion un peu plus large de ce boulot
J'avoue que ces derniers temps, je n'ai pas trop mis le nez dans la bibliothèque par manque de temps.
Par ailleurs, j'ai remarqué que certains arguments avaient changé...![]()
Github est une bonne idée en effet, j'ai soumis la bibliothèque à Ian (DCSBIOS) et je pense qu'elle devrait être incluse dans les prochaines releases de DCS BIOS..
en attendant il faut que je me repaluche les arguments un par un pour tout remettre d'équerre, et je pense que je vais attendre la final release histoire de ne pas pas passer mon temps à tout refaire..
@++
stellou a écrit :Bonjour Exo7.
Je découvre ce post. Super boulot, et merci pour ton partage.
Je suis en train de me faire les dents avec une Arduino Uno.
J'ai suivi toute la procédure d'installation de DCSBios à la lettre.
Quand je manipule le bouton poussoir relié à l'Arduino, cette dernière reçois bien l'information, et la console serial également.
Je lance DCS. La console serial reçois des infos de DCS (çà défile à mach 2 ....).
Par contre, aucun échange avec DCS, ni du BP, ni de la LED (position du train).
çà fait deux jours que je galère sur le net pour solutionner le problème.
Est-ce que le message d'erreur suivant (Couldn't compute fast-cmd pointer) de la console serial serait le problème?
J'ai également tester de remplacer le fichier export.lua par celui très basique de DCSBios...rien à faire.
Si par tout hasard quelqu'un peut m'aider à résoudre ce problème, je suis preneur.
pat.lce a écrit :bon
j'avance dans la programmation de mes saitek panel
je veux avoir la vitesse affichée dans mon saitek auto pilot
mais quand je demande d'afficher l'IAS ça m'affiche un nombre à 5 chiffres
j'ai vu qu'il y avait une possibilité de faire une formule de calcul mais comme ce n'est pas documenté je cherche des exemples
si vous avez des tuyaux je suis preneur
Code : Tout sélectionner
local my_path = LockOn_Options.script_path.."PCN/"
dofile(my_path.."PCN_definitions.lua")
-- ** LEFT LCD ** --
local text_PCN_NORD = CreateElement "ceStringPoly"
text_PCN_NORD.name = "text_PCN_NORD"
text_PCN_NORD.material = pcn_gauge_font
text_PCN_NORD.init_pos = {-0.98, 0.04,0}
text_PCN_NORD.alignment = "LeftCenter"
text_PCN_NORD.value = "N"
text_PCN_NORD.stringdefs = {0.004,0.004}
text_PCN_NORD.controllers = {{"PCN_ULN_WINDOW"}}
Add_PCN_Element(text_PCN_NORD)
local text_PCN_SUD = CreateElement "ceStringPoly"
text_PCN_SUD.name = "text_PCN_SUD"
text_PCN_SUD.material = pcn_gauge_font
text_PCN_SUD.init_pos = {-0.98, -0.04,0}
text_PCN_SUD.alignment = "LeftCenter"
text_PCN_SUD.value = "S"
text_PCN_SUD.stringdefs = {0.004,0.004}
text_PCN_SUD.controllers = {{"PCN_ULS_WINDOW"}}
Add_PCN_Element(text_PCN_SUD)
local text_PCN_PLUS_L = CreateElement "ceStringPoly"
text_PCN_PLUS_L.name = "text_PCN_PLUS_L"
text_PCN_PLUS_L.material = pcn_gauge_font
text_PCN_PLUS_L.init_pos = {-0.92, 0.04,0}
text_PCN_PLUS_L.alignment = "LeftCenter"
text_PCN_PLUS_L.value = "+"
text_PCN_PLUS_L.stringdefs = {0.004,0.004}
text_PCN_PLUS_L.controllers = {{"PCN_ULP_WINDOW"}}
Add_PCN_Element(text_PCN_PLUS_L)
local text_PCN_MOINS_L = CreateElement "ceStringPoly"
text_PCN_MOINS_L.name = "text_PCN_MOINS_L"
text_PCN_MOINS_L.material = pcn_gauge_font
text_PCN_MOINS_L.init_pos = {-0.92, -0.04,0}
text_PCN_MOINS_L.alignment = "LeftCenter"
text_PCN_MOINS_L.value = "-"
text_PCN_MOINS_L.stringdefs = {0.004,0.004}
text_PCN_MOINS_L.controllers = {{"PCN_ULM_WINDOW"}}
Add_PCN_Element(text_PCN_MOINS_L)
-- ** DATA ** --
-- TR/VS
local text_PCN_L_TR = CreateElement "ceStringPoly"
text_PCN_L_TR.name = "text_PCN_L"
text_PCN_L_TR.material = pcn_gauge_font
text_PCN_L_TR.init_pos = {-0.07,0,0}
text_PCN_L_TR.alignment = "RightCenter"
text_PCN_L_TR.formats = {"%d.%02d"}
text_PCN_L_TR.stringdefs = pcn_font_size_default
text_PCN_L_TR.controllers = {{"PCN_UL_TR"}}
Add_PCN_Element(text_PCN_L_TR)
-- D/RLT + Rho/Theta
local text_PCN_L_DR = CreateElement "ceStringPoly"
text_PCN_L_DR.name = "text_PCN_L"
text_PCN_L_DR.material = pcn_gauge_font
text_PCN_L_DR.init_pos = {-0.07,0,0}
text_PCN_L_DR.alignment = "RightCenter"
text_PCN_L_DR.formats = {"%03.2f"}
text_PCN_L_DR.stringdefs = pcn_font_size_default
text_PCN_L_DR.controllers = {{"PCN_UL_DS_RHO"}}
Add_PCN_Element(text_PCN_L_DR)
-- CP/PD + RD/TD + DV/FV + DEC
local text_PCN_L_DEG = CreateElement "ceStringPoly"
text_PCN_L_DEG.name = "text_PCN_L"
text_PCN_L_DEG.material = pcn_gauge_font
text_PCN_L_DEG.init_pos = {-0.07,0,0}
text_PCN_L_DEG.alignment = "RightCenter"
text_PCN_L_DEG.formats = {"%03.1f"}
text_PCN_L_DEG.stringdefs = pcn_font_size_default
text_PCN_L_DEG.controllers = {{"PCN_UL_CP_RD_DV_DEC"}}
Add_PCN_Element(text_PCN_L_DEG)
-- ALT + DALT
local text_PCN_L_INT = CreateElement "ceStringPoly"
text_PCN_L_INT.name = "text_PCN_L"
text_PCN_L_INT.material = pcn_gauge_font
text_PCN_L_INT.init_pos = {-0.07,0,0}
text_PCN_L_INT.alignment = "RightCenter"
text_PCN_L_INT.formats = {"%d"}
text_PCN_L_INT.stringdefs = pcn_font_size_default
text_PCN_L_INT.controllers = {{"PCN_UL_AL_DA"}}
Add_PCN_Element(text_PCN_L_INT)
-- DL/DG
local text_PCN_L_INT = CreateElement "ceStringPoly"
text_PCN_L_INT.name = "text_PCN_L"
text_PCN_L_INT.material = pcn_gauge_font
text_PCN_L_INT.init_pos = {-0.07,0,0}
text_PCN_L_INT.alignment = "RightCenter"
text_PCN_L_INT.formats = {"%1.3f"}
text_PCN_L_INT.stringdefs = pcn_font_size_default
text_PCN_L_INT.controllers = {{"PCN_UL_DL"}}
Add_PCN_Element(text_PCN_L_INT)
-- L/G
local text_PCN_L_LG = CreateElement "ceStringPoly"
text_PCN_L_LG.name = "text_PCN_L"
text_PCN_L_LG.material = pcn_gauge_font
text_PCN_L_LG.init_pos = {-0.07,0,0}
text_PCN_L_LG.alignment = "RightCenter"
text_PCN_L_LG.formats = {"%02d:%02d.%02d"}
text_PCN_L_LG.stringdefs = pcn_font_size_default
text_PCN_L_LG.controllers = {{"PCN_UL_LA"}}
Add_PCN_Element(text_PCN_L_LG)
-- NO DATA
local text_PCN_L_NODATA = CreateElement "ceStringPoly"
text_PCN_L_NODATA.name = "text_PCN_L"
text_PCN_L_NODATA.material = pcn_gauge_font
text_PCN_L_NODATA.init_pos = {-0.07,0,0}
text_PCN_L_NODATA.alignment = "RightCenter"
text_PCN_L_NODATA.value = "--"
text_PCN_L_NODATA.stringdefs = pcn_font_size_default
text_PCN_L_NODATA.controllers = {{"PCN_UL_NODATA"}}
Add_PCN_Element(text_PCN_L_NODATA)
-- DATA ENTRY
local text_PCN_LDE = CreateElement "ceStringPoly"
text_PCN_LDE.name = "text_PCN_L"
text_PCN_LDE.material = pcn_gauge_font
text_PCN_LDE.init_pos = {-0.07,0,0}
text_PCN_LDE.alignment = "RightCenter"
text_PCN_LDE.formats = {"%s"}
text_PCN_LDE.stringdefs = pcn_font_size_default
text_PCN_LDE.controllers = {{"PCN_UL_EDIT"}}
Add_PCN_Element(text_PCN_LDE)
-- TEXT MESSAGES
local text_PCN_MSG = CreateElement "ceStringPoly"
text_PCN_MSG.name = "text_PCN_MSG"
text_PCN_MSG.material = pcn_gauge_font
text_PCN_MSG.init_pos = {-0.07,0,0}
text_PCN_MSG.alignment = "RightCenter"
text_PCN_MSG.formats = {"%s"}
text_PCN_MSG.stringdefs = pcn_font_size_default
text_PCN_MSG.controllers = {{"PCN_UL_MSG"}}
Add_PCN_Element(text_PCN_MSG)
-- ALIGNMENT
local text_PCN_L_ACLASS = CreateElement "ceStringPoly"
text_PCN_L_ACLASS.name = "text_PCN_L"
text_PCN_L_ACLASS.material = pcn_gauge_font
text_PCN_L_ACLASS.init_pos = {-0.7,0,0}
text_PCN_L_ACLASS.alignment = "RightCenter"
text_PCN_L_ACLASS.formats = {"%d"}
text_PCN_L_ACLASS.stringdefs = pcn_font_size_default
text_PCN_L_ACLASS.controllers = {{"PCN_UL_ALG_CLASS"}}
Add_PCN_Element(text_PCN_L_ACLASS)
local text_PCN_L_ACTMR = CreateElement "ceStringPoly"
text_PCN_L_ACTMR.name = "text_PCN_L"
text_PCN_L_ACTMR.material = pcn_gauge_font
text_PCN_L_ACTMR.init_pos = {-0.07,0,0}
text_PCN_L_ACTMR.alignment = "RightCenter"
text_PCN_L_ACTMR.formats = {"%03d"}
text_PCN_L_ACTMR.stringdefs = pcn_font_size_default
text_PCN_L_ACTMR.controllers = {{"PCN_UL_ALG_TIMER"}}
Add_PCN_Element(text_PCN_L_ACTMR)
-- POSITION UPDATE
local text_PCN_L_POS_UPDATE_1 = CreateElement "ceStringPoly"
text_PCN_L_POS_UPDATE_1.name = "text_PCN_L"
text_PCN_L_POS_UPDATE_1.material = pcn_gauge_font
text_PCN_L_POS_UPDATE_1.init_pos = {-0.07,0,0}
text_PCN_L_POS_UPDATE_1.alignment = "RightCenter"
text_PCN_L_POS_UPDATE_1.formats = {"%02d.%03d"}
text_PCN_L_POS_UPDATE_1.stringdefs = pcn_font_size_default
text_PCN_L_POS_UPDATE_1.controllers = {{"PCN_UL_POS_UDATE_1"}}
Add_PCN_Element(text_PCN_L_POS_UPDATE_1)
local text_PCN_L_POS_UPDATE_2 = CreateElement "ceStringPoly"
text_PCN_L_POS_UPDATE_2.name = "text_PCN_L"
text_PCN_L_POS_UPDATE_2.material = pcn_gauge_font
text_PCN_L_POS_UPDATE_2.init_pos = {-0.07,0,0}
text_PCN_L_POS_UPDATE_2.alignment = "RightCenter"
text_PCN_L_POS_UPDATE_2.formats = {"%02d.%03d"}
text_PCN_L_POS_UPDATE_2.stringdefs = pcn_font_size_default
text_PCN_L_POS_UPDATE_2.controllers = {{"PCN_UL_POS_UDATE_2"}}
Add_PCN_Element(text_PCN_L_POS_UPDATE_2)
-- POSITION MARK
local text_PCN_L_MRQ_LAT = CreateElement "ceStringPoly"
text_PCN_L_MRQ_LAT.name = "text_PCN_L"
text_PCN_L_MRQ_LAT.material = pcn_gauge_font
text_PCN_L_MRQ_LAT.init_pos = {-0.07,0,0}
text_PCN_L_MRQ_LAT.alignment = "RightCenter"
text_PCN_L_MRQ_LAT.formats = {"%02d:%02d.%02d"}
text_PCN_L_MRQ_LAT.stringdefs = pcn_font_size_default
text_PCN_L_MRQ_LAT.controllers = {{"PCN_UL_MARK_LAT"}}
Add_PCN_Element(text_PCN_L_MRQ_LAT)
-- ** RIGHT LCD ** --
local text_PCN_EST = CreateElement "ceStringPoly"
text_PCN_EST.name = "text_PCN_EST"
text_PCN_EST.material = pcn_gauge_font
text_PCN_EST.init_pos = {-0.01, 0.04,0}
text_PCN_EST.alignment = "LeftCenter"
text_PCN_EST.value = "E"
text_PCN_EST.stringdefs = {0.004,0.004}
text_PCN_EST.controllers = {{"PCN_URE_WINDOW"}}
Add_PCN_Element(text_PCN_EST)
local text_PCN_OUEST = CreateElement "ceStringPoly"
text_PCN_OUEST.name = "text_PCN_OUEST"
text_PCN_OUEST.material = pcn_gauge_font
text_PCN_OUEST.init_pos = {-0.01, -0.04,0}
text_PCN_OUEST.alignment = "LeftCenter"
text_PCN_OUEST.value = "W"
text_PCN_OUEST.stringdefs = {0.004,0.004}
text_PCN_OUEST.controllers = {{"PCN_URW_WINDOW"}}
Add_PCN_Element(text_PCN_OUEST)
local text_PCN_PLUS_R = CreateElement "ceStringPoly"
text_PCN_PLUS_R.name = "text_PCN_PLUS_R"
text_PCN_PLUS_R.material = pcn_gauge_font
text_PCN_PLUS_R.init_pos = {0.04, 0.04,0}
text_PCN_PLUS_R.alignment = "LeftCenter"
text_PCN_PLUS_R.value = "+"
text_PCN_PLUS_R.stringdefs = {0.004,0.004}
text_PCN_PLUS_R.controllers = {{"PCN_URP_WINDOW"}}
Add_PCN_Element(text_PCN_PLUS_R)
local text_PCN_MOINS_R = CreateElement "ceStringPoly"
text_PCN_MOINS_R.name = "text_PCN_MOINS_R"
text_PCN_MOINS_R.material = pcn_gauge_font
text_PCN_MOINS_R.init_pos = {0.04, -0.04,0}
text_PCN_MOINS_R.alignment = "LeftCenter"
text_PCN_MOINS_R.value = "-"
text_PCN_MOINS_R.stringdefs = {0.004,0.004}
text_PCN_MOINS_R.controllers = {{"PCN_URM_WINDOW"}}
Add_PCN_Element(text_PCN_MOINS_R)
-- ** DATA ** --
-- TR/VS + ALT + DALT + DV/FV
local text_PCN_R_INT = CreateElement "ceStringPoly"
text_PCN_R_INT.name = "text_PCN_R"
text_PCN_R_INT.material = pcn_gauge_font
text_PCN_R_INT.init_pos = {0.99,0,0}
text_PCN_R_INT.alignment = "RightCenter"
text_PCN_R_INT.formats = {"%d"}
text_PCN_R_INT.stringdefs = pcn_font_size_default
text_PCN_R_INT.controllers = {{"PCN_UR_VS_AL_DA_FV"}}
Add_PCN_Element(text_PCN_R_INT)
-- TR/VS + DL/DG
local text_PCN_R_INT = CreateElement "ceStringPoly"
text_PCN_R_INT.name = "text_PCN_R"
text_PCN_R_INT.material = pcn_gauge_font
text_PCN_R_INT.init_pos = {0.99,0,0}
text_PCN_R_INT.alignment = "RightCenter"
text_PCN_R_INT.formats = {"%1.3f"}
text_PCN_R_INT.stringdefs = pcn_font_size_default
text_PCN_R_INT.controllers = {{"PCN_UR_DG"}}
Add_PCN_Element(text_PCN_R_INT)
-- D/RLT + CP/PD + Rho/Theta
local text_PCN_R_DEG = CreateElement "ceStringPoly"
text_PCN_R_DEG.name = "text_PCN_R"
text_PCN_R_DEG.material = pcn_gauge_font
text_PCN_R_DEG.init_pos = {0.99,0,0}
text_PCN_R_DEG.alignment = "RightCenter"
text_PCN_R_DEG.formats = {"%03.1f"}
text_PCN_R_DEG.stringdefs = pcn_font_size_default
text_PCN_R_DEG.controllers = {{"PCN_UR_RL_PD_TH"}}
Add_PCN_Element(text_PCN_R_DEG)
-- L/G
local text_PCN_R_LG = CreateElement "ceStringPoly"
text_PCN_R_LG.name = "text_PCN_R"
text_PCN_R_LG.material = pcn_gauge_font
text_PCN_R_LG.init_pos = {0.99,0,0}
text_PCN_R_LG.alignment = "RightCenter"
text_PCN_R_LG.formats = {"%03d:%02d.%02d"}
text_PCN_R_LG.stringdefs = pcn_font_size_default
text_PCN_R_LG.controllers = {{"PCN_UR_LO"}}
Add_PCN_Element(text_PCN_R_LG)
-- RD/TD
local text_PCN_R_TD = CreateElement "ceStringPoly"
text_PCN_R_TD.name = "text_PCN_R"
text_PCN_R_TD.material = pcn_gauge_font
text_PCN_R_TD.init_pos = {0.99,0,0}
text_PCN_R_TD.alignment = "RightCenter"
text_PCN_R_TD.formats = {"%03d.%02d"}
text_PCN_R_TD.stringdefs = pcn_font_size_default
text_PCN_R_TD.controllers = {{"PCN_UR_TD"}}
Add_PCN_Element(text_PCN_R_TD)
-- NO DATA
local text_PCN_R_NODATA = CreateElement "ceStringPoly"
text_PCN_R_NODATA.name = "text_PCN_R"
text_PCN_R_NODATA.material = pcn_gauge_font
text_PCN_R_NODATA.init_pos = {0.99,0,0}
text_PCN_R_NODATA.alignment = "RightCenter"
text_PCN_R_NODATA.value = "--"
text_PCN_R_NODATA.stringdefs = pcn_font_size_default
text_PCN_R_NODATA.controllers = {{"PCN_UR_NODATA"}}
Add_PCN_Element(text_PCN_R_NODATA)
-- DATA ENTRY
local text_PCN_RDE = CreateElement "ceStringPoly"
text_PCN_RDE.name = "text_PCN_R"
text_PCN_RDE.material = pcn_gauge_font
text_PCN_RDE.init_pos = {0.99,0,0}
text_PCN_RDE.alignment = "RightCenter"
text_PCN_RDE.formats = {"%s"}
text_PCN_RDE.stringdefs = pcn_font_size_default
text_PCN_RDE.controllers = {{"PCN_UR_EDIT"}}
Add_PCN_Element(text_PCN_RDE)
-- ALIGNMENT
local text_PCN_R_ASTS = CreateElement "ceStringPoly"
text_PCN_R_ASTS.name = "text_PCN_R"
text_PCN_R_ASTS.material = pcn_gauge_font
text_PCN_R_ASTS.init_pos = {0.99,0,0}
text_PCN_R_ASTS.alignment = "RightCenter"
text_PCN_R_ASTS.formats = {"%03d"}
text_PCN_R_ASTS.stringdefs = pcn_font_size_default
text_PCN_R_ASTS.controllers = {{"PCN_UR_ALG_PRCNT"}}
Add_PCN_Element(text_PCN_R_ASTS)
-- POSITION UPDATE
local text_PCN_R_POS_UPDATE_1 = CreateElement "ceStringPoly"
text_PCN_R_POS_UPDATE_1.name = "text_PCN_R"
text_PCN_R_POS_UPDATE_1.material = pcn_gauge_font
text_PCN_R_POS_UPDATE_1.init_pos = {0.99,0,0}
text_PCN_R_POS_UPDATE_1.alignment = "RightCenter"
text_PCN_R_POS_UPDATE_1.formats = {"%02d.%03d"}
text_PCN_R_POS_UPDATE_1.stringdefs = pcn_font_size_default
text_PCN_R_POS_UPDATE_1.controllers = {{"PCN_UR_POS_UDATE_1"}}
Add_PCN_Element(text_PCN_R_POS_UPDATE_1)
local text_PCN_R_POS_UPDATE_2 = CreateElement "ceStringPoly"
text_PCN_R_POS_UPDATE_2.name = "text_PCN_R"
text_PCN_R_POS_UPDATE_2.material = pcn_gauge_font
text_PCN_R_POS_UPDATE_2.init_pos = {0.99,0,0}
text_PCN_R_POS_UPDATE_2.alignment = "RightCenter"
text_PCN_R_POS_UPDATE_2.formats = {"%03.1f"}
text_PCN_R_POS_UPDATE_2.stringdefs = pcn_font_size_default
text_PCN_R_POS_UPDATE_2.controllers = {{"PCN_UR_POS_UDATE_2"}}
Add_PCN_Element(text_PCN_R_POS_UPDATE_2)
-- POSITION MARK
local text_PCN_R_MRQ_LON = CreateElement "ceStringPoly"
text_PCN_R_MRQ_LON.name = "text_PCN_R"
text_PCN_R_MRQ_LON.material = pcn_gauge_font
text_PCN_R_MRQ_LON.init_pos = {0.99,0,0}
text_PCN_R_MRQ_LON.alignment = "RightCenter"
text_PCN_R_MRQ_LON.formats = {"%03d:%02d.%02d"}
text_PCN_R_MRQ_LON.stringdefs = pcn_font_size_default
text_PCN_R_MRQ_LON.controllers = {{"PCN_UR_MARK_LON"}}
Add_PCN_Element(text_PCN_R_MRQ_LON)
Code : Tout sélectionner
(...)
local function getPCNDispL()
local ret = {}
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
ret[name] = value
PCN_L = ret["text_PCN_L"]
end
return PCN_L
end
local function getPCNDispR()
local ret = {}
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
ret[name] = value
PCN_R = ret["text_PCN_R"]
end
return PCN_R
end
(...)
-- PCN
-- ERGO ADDING --
definePushButton("INS_VAL_SW", 9, 3580, 580, "PCN_NAV", "Bouton VAL")
defineSetCommandTumb("INS_ROT_VAL", 9, 3574, 574, 0.1, {0, 1.1}, nil, true, "PSM", "INS Parameter Selector")
defineString("PCN_DISP_L", getPCNDispL, 8, "PCN", "PCN Left Display")
defineString("PCN_DISP_R", getPCNDispR, 9, "PCN", "PCN Right Display")
-- END ERGO ADDING --
defineIndicatorLight("PCN_PRET", 564, "PCN", "Voyant PRET")
defineIndicatorLight("PCN_ALN", 565, "PCN", "Voyant ALN")
defineIndicatorLight("PCN_MIP", 566, "PCN", "Voyant MIP")
defineIndicatorLight("PCN_NDEG", 567, "PCN", "Voyant N.DEG")
defineIndicatorLight("PCN_SEC", 568, "PCN", "Voyant SEC")
defineIndicatorLight("PCN_UNI", 569, "PCN", "Voyant UNI")
definePushButton("INS_PREP_SW", 9, 3570, 570, "PCN_NAV", "Bouton PREP")
defineIndicatorLight("INS_PREP_SW_LIGHT", 571, "PCN_NAV", "Voyant Bouton PREP")
definePushButton("INS_DEST_SW", 9, 3572, 572, "PCN_NAV", "Bouton DEST")
defineIndicatorLight("INS_DEST_SW_LIGHT", 573, "PCN_NAV", "Voyant Bouton DEST")
-- Parameter Selector
defineIndicatorLight("PCN_BAD", 577, "PCN", "Voyant BAD")
defineIndicatorLight("PCN_REC", 578, "PCN", "Voyant REC")
defineIndicatorLight("PCN_VAL", 579, "PCN", "Voyant VAL")
defineIndicatorLight("PCN_MRC", 580, "PCN", "Voyant MRC")
definePushButton("INS_BUTTON_1", 9, 3584, 584, "PCN", "Bouton 1")
definePushButton("INS_BUTTON_2", 9, 3585, 585, "PCN", "Bouton 2")
definePushButton("INS_BUTTON_3", 9, 3586, 586, "PCN", "Bouton 3")
definePushButton("INS_BUTTON_4", 9, 3587, 587, "PCN", "Bouton 4")
definePushButton("INS_BUTTON_5", 9, 3588, 588, "PCN", "Bouton 5")
definePushButton("INS_BUTTON_6", 9, 3589, 589, "PCN", "Bouton 6")
definePushButton("INS_BUTTON_7", 9, 3590, 590, "PCN", "Bouton 7")
definePushButton("INS_BUTTON_8", 9, 3591, 591, "PCN", "Bouton 8")
definePushButton("INS_BUTTON_9", 9, 3592, 592, "PCN", "Bouton 9")
definePushButton("INS_BUTTON_0", 9, 3593, 593, "PCN", "Bouton 0")
definePushButton("INS_BUTTON_EFF", 9, 3594, 594, "PCN", "Bouton EFF")
defineIndicatorLight("INS_EFF_SW_LIGHT", 595, "PCN", "Voyant Bouton EFF")
definePushButton("INS_BUTTON_INS", 9, 3596, 596, "PCN", "Bouton INS")
defineIndicatorLight("INS_INS_SW_LIGHT", 597, "PCN", "Voyant Bouton INS")
-- PSM
defineTumb("INS_MODE_SELECT", 9, 3627, 627, 0.1, {0, 0.7}, nil, false, "PSM", "INS Mode Selector")
defineTumb("INS_OP_MODE", 9, 3629, 629, 0.1, {0, 0.4}, nil, false, "PSM", "INS Operational Mode")