On this page
Emissive_ParametersFn
Asobo_EX1\Common\Shared\Utils\Emissives\Emissive_ParametersFn.xml
Source XML
<ModelBehaviors>
<!-- ############################### PARAMETERS FN ################################ -->
<!-- ############################################################################## -->
<!-- @DOC FUNCTION ASOBO_Power_Dependant_Emissive_Parameters
@Brief Return a failure check based on the aircraft electrical state
@Param CIRCUIT_ID if not empty, will configure EMISSIVE_TEST_NO_FAILURE_CODE to check the corresponding circuit for power
@Param EMISSIVE_TEST_NO_FAILURE_CODE returned as it is if not empty
@Return EMISSIVE_TEST_NO_FAILURE_CODE Emissive code checking if no failure are currently active
-->
<ParametersFn Name="ASOBO_Power_Dependant_Emissive_Parameters">
<Parameters Type="Default">
<Switch>
<Case NotEmpty="CIRCUIT_ID">
<EMISSIVE_TEST_NO_FAILURE_CODE>(A:CIRCUIT ON:#CIRCUIT_ID#, Bool)</EMISSIVE_TEST_NO_FAILURE_CODE>
</Case>
<Default>
<EMISSIVE_TEST_NO_FAILURE_CODE>(A:CIRCUIT GENERAL PANEL ON, Bool)</EMISSIVE_TEST_NO_FAILURE_CODE>
</Default>
</Switch>
</Parameters>
<ReturnParameters>
<EMISSIVE_TEST_NO_FAILURE_CODE>#EMISSIVE_TEST_NO_FAILURE_CODE#</EMISSIVE_TEST_NO_FAILURE_CODE>
</ReturnParameters>
</ParametersFn>
<!-- ############################################################################## -->
<!-- @DOC FUNCTION ASOBO_Indicator_Emissive_Parameters
@Brief Checks for value change and sends an event to the specified indicator logger, register all created emissives of the given type in the save INDICATOR_SAVE_ID
@Param INDICATOR_ID ID of this indicator
@Param INDICATOR_TYPE type of the indicator either LOCAL_VAR or INPUT_EVENT (which requires more setup)
@Param INDICATOR_SAVE_ID Save ID where to save this indicator ID and light setter
@Param BYPASS_LIGHT_ON_VALUE Take the current emissive code value as input and should output a value to be compared with this input. The 'max' operation is then evaluated
@Param INDICATOR_LOGGER_SET RPN snippet handing a string parameter with the name of the indicator
@Param ON_STATE_CHANGED RPN snippet executed when the indicator state changed
@Param INDICATOR_LIGHT_ON_FACTOR Factor multiplied with the final emissive value (generally a global light test condition or factor for dimming)
-->
<ParametersFn Name="ASOBO_Indicator_Emissive_Parameters">
<Parameters Type="Default">
<INDICATOR_ID>#LOG_ID#</INDICATOR_ID>
<INDICATOR_TYPE>LOCAL_VAR</INDICATOR_TYPE>
<INDICATOR_SAVE_ID>GLOBAL_#LOG_LVL#_Variables</INDICATOR_SAVE_ID>
</Parameters>
<Parameters Type="Default">
<Switch Param="INDICATOR_TYPE">
<Case Value="LOCAL_VAR">
<GET_INDICATOR_LIGHT>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active)</GET_INDICATOR_LIGHT>
<SET_INDICATOR_LIGHT>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active)</SET_INDICATOR_LIGHT>
<GET_INDICATOR_LIGHT_ON>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#)</GET_INDICATOR_LIGHT_ON>
<SET_INDICATOR_LIGHT_ON>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#)</SET_INDICATOR_LIGHT_ON>
<Condition Valid="TRACK_ACTIVATION_TIME">
<GET_INDICATOR_ACTIVATION_TIME>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Activation_Time)</GET_INDICATOR_ACTIVATION_TIME>
<SET_INDICATOR_ACTIVATION_TIME>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Activation_Time)</SET_INDICATOR_ACTIVATION_TIME>
</Condition>
</Case>
<Case Value="INPUT_EVENT">
<GET_INDICATOR_LIGHT>(B:VARIABLE_#INDICATOR_ID#, Bool)</GET_INDICATOR_LIGHT>
<SET_INDICATOR_LIGHT>(B:VARIABLE_#INDICATOR_ID#_Set)</SET_INDICATOR_LIGHT>
</Case>
</Switch>
<INDICATOR_LOGGER_SET>(>B:PROCEDURE_#LOG_LVL#_Logger_Set)</INDICATOR_LOGGER_SET>
</Parameters>
<Parameters Type="Default">
<REAL_EMISSIVE_CODE>#GET_INDICATOR_LIGHT_ON#</REAL_EMISSIVE_CODE>
</Parameters>
<Parameters Type="Default">
<DO_ON_STATE_CHANGED>'#INDICATOR_ID#' #INDICATOR_LOGGER_SET#</DO_ON_STATE_CHANGED>
</Parameters>
<Parameters Type="Override">
<CHECK_STATE_CHANGED>(O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) > l0 ! (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) and or</CHECK_STATE_CHANGED>
<DO_ON_AFTER_STATE_CHECK>l0 (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) != if{ l0 (>O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) }</DO_ON_AFTER_STATE_CHECK>
<Condition Valid="TRACK_ACTIVATION_TIME">
<DO_ON_STATE_CHANGED>#DO_ON_STATE_CHANGED# l0 if{ @E_SimulationTime #SET_INDICATOR_ACTIVATION_TIME# }</DO_ON_STATE_CHANGED>
</Condition>
<Condition Check="BYPASS_LIGHT_ON_VALUE">
<REAL_EMISSIVE_CODE>#REAL_EMISSIVE_CODE# #BYPASS_LIGHT_ON_VALUE# max</REAL_EMISSIVE_CODE>
</Condition>
</Parameters>
<Parameters Type="Override">
<Condition Check="INDICATOR_LIGHT_ON_FACTOR">
<REAL_EMISSIVE_CODE>#REAL_EMISSIVE_CODE# #INDICATOR_LIGHT_ON_FACTOR# *</REAL_EMISSIVE_CODE>
</Condition>
<Condition Check="ON_STATE_CHANGED">
<DO_ON_STATE_CHANGED>#DO_ON_STATE_CHANGED# (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) #ON_STATE_CHANGED#</DO_ON_STATE_CHANGED>
</Condition>
</Parameters>
<Parameters Type="Default">
<UPDATE_LOGGER>#CHECK_STATE_CHANGED# if{ #DO_ON_STATE_CHANGED# } #DO_ON_AFTER_STATE_CHECK#</UPDATE_LOGGER>
</Parameters>
<Parameters Type="Override">
<Condition NotEmpty="EMISSIVE_CODE">
<True>
<EMISSIVE_CODE>#EMISSIVE_CODE# s0 0 > #SET_INDICATOR_LIGHT# l0 #UPDATE_LOGGER# #REAL_EMISSIVE_CODE#</EMISSIVE_CODE>
</True>
<False>
<EMISSIVE_CODE>#GET_INDICATOR_LIGHT# s0 #UPDATE_LOGGER# #REAL_EMISSIVE_CODE#</EMISSIVE_CODE>
</False>
</Condition>
</Parameters>
<Parameters Type="Default">
<BASE_EMISSIVE_TEMPLATE>ASOBO_IT_Power_Dependant_Emissive_Template</BASE_EMISSIVE_TEMPLATE>
</Parameters>
<ReturnParameters>
<SaveParameters ID="#INDICATOR_SAVE_ID#" Append="Override">
<#INDICATOR_ID#>#SET_INDICATOR_LIGHT_ON#</#INDICATOR_ID#>
</SaveParameters>
<EMISSIVE_CODE>#EMISSIVE_CODE#</EMISSIVE_CODE>
<BASE_EMISSIVE_TEMPLATE>#BASE_EMISSIVE_TEMPLATE#</BASE_EMISSIVE_TEMPLATE>
</ReturnParameters>
</ParametersFn>
<!-- ############################################################################## -->
</ModelBehaviors>
ParametersFn
ASOBO_Power_Dependant_Emissive_Parameters
Definition from XML<ParametersFn Name="ASOBO_Power_Dependant_Emissive_Parameters"> <Parameters Type="Default"> <Switch> <Case NotEmpty="CIRCUIT_ID"> <EMISSIVE_TEST_NO_FAILURE_CODE>(A:CIRCUIT ON:#CIRCUIT_ID#, Bool)</EMISSIVE_TEST_NO_FAILURE_CODE> </Case> <Default> <EMISSIVE_TEST_NO_FAILURE_CODE>(A:CIRCUIT GENERAL PANEL ON, Bool)</EMISSIVE_TEST_NO_FAILURE_CODE> </Default> </Switch> </Parameters> <ReturnParameters> <EMISSIVE_TEST_NO_FAILURE_CODE>#EMISSIVE_TEST_NO_FAILURE_CODE#</EMISSIVE_TEST_NO_FAILURE_CODE> </ReturnParameters> </ParametersFn>Parameters initialization:
- Default
Condition: Switch
- Case: NotEmpty(CIRCUIT_ID)
Parameters set:
- EMISSIVE_TEST_NO_FAILURE_CODE (using CIRCUIT_ID)
- Default case:
Parameters set:
- EMISSIVE_TEST_NO_FAILURE_CODE
Return parameters:
Parameters set:
- EMISSIVE_TEST_NO_FAILURE_CODE (using EMISSIVE_TEST_NO_FAILURE_CODE)
- Default
ASOBO_Indicator_Emissive_Parameters
Definition from XML<ParametersFn Name="ASOBO_Indicator_Emissive_Parameters"> <Parameters Type="Default"> <INDICATOR_ID>#LOG_ID#</INDICATOR_ID> <INDICATOR_TYPE>LOCAL_VAR</INDICATOR_TYPE> <INDICATOR_SAVE_ID>GLOBAL_#LOG_LVL#_Variables</INDICATOR_SAVE_ID> </Parameters> <Parameters Type="Default"> <Switch Param="INDICATOR_TYPE"> <Case Value="LOCAL_VAR"> <GET_INDICATOR_LIGHT>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active)</GET_INDICATOR_LIGHT> <SET_INDICATOR_LIGHT>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active)</SET_INDICATOR_LIGHT> <GET_INDICATOR_LIGHT_ON>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#)</GET_INDICATOR_LIGHT_ON> <SET_INDICATOR_LIGHT_ON>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#)</SET_INDICATOR_LIGHT_ON> <Condition Valid="TRACK_ACTIVATION_TIME"> <GET_INDICATOR_ACTIVATION_TIME>(L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Activation_Time)</GET_INDICATOR_ACTIVATION_TIME> <SET_INDICATOR_ACTIVATION_TIME>(>L:1:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Activation_Time)</SET_INDICATOR_ACTIVATION_TIME> </Condition> </Case> <Case Value="INPUT_EVENT"> <GET_INDICATOR_LIGHT>(B:VARIABLE_#INDICATOR_ID#, Bool)</GET_INDICATOR_LIGHT> <SET_INDICATOR_LIGHT>(B:VARIABLE_#INDICATOR_ID#_Set)</SET_INDICATOR_LIGHT> </Case> </Switch> <INDICATOR_LOGGER_SET>(>B:PROCEDURE_#LOG_LVL#_Logger_Set)</INDICATOR_LOGGER_SET> </Parameters> <Parameters Type="Default"> <REAL_EMISSIVE_CODE>#GET_INDICATOR_LIGHT_ON#</REAL_EMISSIVE_CODE> </Parameters> <Parameters Type="Default"> <DO_ON_STATE_CHANGED>'#INDICATOR_ID#' #INDICATOR_LOGGER_SET#</DO_ON_STATE_CHANGED> </Parameters> <Parameters Type="Override"> <CHECK_STATE_CHANGED>(O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) > l0 ! (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) and or</CHECK_STATE_CHANGED> <DO_ON_AFTER_STATE_CHECK>l0 (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) != if{ l0 (>O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) }</DO_ON_AFTER_STATE_CHECK> <Condition Valid="TRACK_ACTIVATION_TIME"> <DO_ON_STATE_CHANGED>#DO_ON_STATE_CHANGED# l0 if{ @E_SimulationTime #SET_INDICATOR_ACTIVATION_TIME# }</DO_ON_STATE_CHANGED> </Condition> <Condition Check="BYPASS_LIGHT_ON_VALUE"> <REAL_EMISSIVE_CODE>#REAL_EMISSIVE_CODE# #BYPASS_LIGHT_ON_VALUE# max</REAL_EMISSIVE_CODE> </Condition> </Parameters> <Parameters Type="Override"> <Condition Check="INDICATOR_LIGHT_ON_FACTOR"> <REAL_EMISSIVE_CODE>#REAL_EMISSIVE_CODE# #INDICATOR_LIGHT_ON_FACTOR# *</REAL_EMISSIVE_CODE> </Condition> <Condition Check="ON_STATE_CHANGED"> <DO_ON_STATE_CHANGED>#DO_ON_STATE_CHANGED# (O:XMLVAR_INDICATOR_#LOG_LVL#_#INDICATOR_ID#_Active) #ON_STATE_CHANGED#</DO_ON_STATE_CHANGED> </Condition> </Parameters> <Parameters Type="Default"> <UPDATE_LOGGER>#CHECK_STATE_CHANGED# if{ #DO_ON_STATE_CHANGED# } #DO_ON_AFTER_STATE_CHECK#</UPDATE_LOGGER> </Parameters> <Parameters Type="Override"> <Condition NotEmpty="EMISSIVE_CODE"> <True> <EMISSIVE_CODE>#EMISSIVE_CODE# s0 0 > #SET_INDICATOR_LIGHT# l0 #UPDATE_LOGGER# #REAL_EMISSIVE_CODE#</EMISSIVE_CODE> </True> <False> <EMISSIVE_CODE>#GET_INDICATOR_LIGHT# s0 #UPDATE_LOGGER# #REAL_EMISSIVE_CODE#</EMISSIVE_CODE> </False> </Condition> </Parameters> <Parameters Type="Default"> <BASE_EMISSIVE_TEMPLATE>ASOBO_IT_Power_Dependant_Emissive_Template</BASE_EMISSIVE_TEMPLATE> </Parameters> <ReturnParameters> <SaveParameters ID="#INDICATOR_SAVE_ID#" Append="Override"> <#INDICATOR_ID#>#SET_INDICATOR_LIGHT_ON#</#INDICATOR_ID#> </SaveParameters> <EMISSIVE_CODE>#EMISSIVE_CODE#</EMISSIVE_CODE> <BASE_EMISSIVE_TEMPLATE>#BASE_EMISSIVE_TEMPLATE#</BASE_EMISSIVE_TEMPLATE> </ReturnParameters> </ParametersFn>Parameters initialization:
- Default
Parameters set:
- INDICATOR_ID (using LOG_ID)
- INDICATOR_TYPE
- INDICATOR_SAVE_ID (using LOG_LVL)
- Default
Parameters set:
- INDICATOR_LOGGER_SET (using LOG_LVL)
Condition: Switch(INDICATOR_TYPE)
- Case: LOCAL_VAR
Parameters set:
- GET_INDICATOR_LIGHT (using LOG_LVL, INDICATOR_ID)
- SET_INDICATOR_LIGHT (using LOG_LVL, INDICATOR_ID)
- GET_INDICATOR_LIGHT_ON (using LOG_LVL, INDICATOR_ID)
- SET_INDICATOR_LIGHT_ON (using LOG_LVL, INDICATOR_ID)
Condition: Valid(TRACK_ACTIVATION_TIME)
- Case: True
Parameters set:
- GET_INDICATOR_ACTIVATION_TIME (using LOG_LVL, INDICATOR_ID)
- SET_INDICATOR_ACTIVATION_TIME (using LOG_LVL, INDICATOR_ID)
- Case: INPUT_EVENT
Parameters set:
- GET_INDICATOR_LIGHT (using INDICATOR_ID)
- SET_INDICATOR_LIGHT (using INDICATOR_ID)
- Default
Parameters set:
- REAL_EMISSIVE_CODE (using GET_INDICATOR_LIGHT_ON)
- Default
Parameters set:
- DO_ON_STATE_CHANGED (using INDICATOR_ID, INDICATOR_LOGGER_SET)
- Override
Parameters set:
- CHECK_STATE_CHANGED (using LOG_LVL, INDICATOR_ID)
- DO_ON_AFTER_STATE_CHECK (using LOG_LVL, INDICATOR_ID)
Condition: Valid(TRACK_ACTIVATION_TIME)
- Case: True
Parameters set:
- DO_ON_STATE_CHANGED (using DO_ON_STATE_CHANGED, SET_INDICATOR_ACTIVATION_TIME)
Condition: Check(BYPASS_LIGHT_ON_VALUE)
- Case: True
Parameters set:
- REAL_EMISSIVE_CODE (using REAL_EMISSIVE_CODE, BYPASS_LIGHT_ON_VALUE)
- Override
Condition: Check(INDICATOR_LIGHT_ON_FACTOR)
- Case: True
Parameters set:
- REAL_EMISSIVE_CODE (using REAL_EMISSIVE_CODE, INDICATOR_LIGHT_ON_FACTOR)
Condition: Check(ON_STATE_CHANGED)
- Case: True
Parameters set:
- DO_ON_STATE_CHANGED (using DO_ON_STATE_CHANGED, LOG_LVL, INDICATOR_ID, ON_STATE_CHANGED)
- Default
Parameters set:
- UPDATE_LOGGER (using CHECK_STATE_CHANGED, DO_ON_STATE_CHANGED, DO_ON_AFTER_STATE_CHECK)
- Override
Condition: NotEmpty(EMISSIVE_CODE)
- Case: True
Parameters set:
- EMISSIVE_CODE (using EMISSIVE_CODE, SET_INDICATOR_LIGHT, UPDATE_LOGGER, REAL_EMISSIVE_CODE)
- Case: False
Parameters set:
- EMISSIVE_CODE (using GET_INDICATOR_LIGHT, UPDATE_LOGGER, REAL_EMISSIVE_CODE)
- Default
Parameters set:
- BASE_EMISSIVE_TEMPLATE
Return parameters:
Parameters read:
- INDICATOR_SAVE_ID
Parameters set:
- #INDICATOR_ID# (using SET_INDICATOR_LIGHT_ON)
- EMISSIVE_CODE (using EMISSIVE_CODE)
- BASE_EMISSIVE_TEMPLATE (using BASE_EMISSIVE_TEMPLATE)
- Default
