720 lines
29 KiB
XML
720 lines
29 KiB
XML
<LightControllers>
|
|
<!--
|
|
Instructions:
|
|
|
|
Instruction Psuedo code
|
|
mov d, p0 d = p0 move p0 to d
|
|
movc d, c d = c move c to d
|
|
frac d, p0 d = frac(p0) d is the fractional part of p0
|
|
sat d, p0 d = saturate(p0) d is p0 clamped from 0 to 1
|
|
add d, p0, p1 d = p0 + p1 d is p0 + p1
|
|
add d, p0, c d = p0 + c d is p0 + c
|
|
sub d, p0, p1 d = p0 - p1 d is p0 - p1
|
|
mul d, p0, p1 d = p0 * p1 d is p0 * p1
|
|
mulc d, p0, c d = p0 * c d is p0 * c
|
|
div d, p0, p1 d = p0 / p1 d is p0 divided by p1
|
|
mod d, p0, p1 d = p0 % p1 d is p0 modulo p1
|
|
min d, p0, p1 d = min(p0, p1) d is the smaller of p0 and p1
|
|
minc d, p0, c d = min(p0, c) d is the smaller of p0 and c
|
|
max d, p0, p1 d = max(p0, p1) d is the larger of p0 and p1
|
|
maxc d, p0, c d = max(p0, c) d is the larger of p0 and c
|
|
sg d, p0, p1 d = (p1 > p2) ? 1.0 : 0.0 if p0 is greater than p1 then d is 1.0 else d is 0.0
|
|
sgc d, p0, c d = (p1 > c) ? 1.0 : 0.0 if p0 is greater than c then d is 1.0 else d is 0.0
|
|
sl d, p0, p1 d = (p1 < p2) ? 1.0 : 0.0 if p0 is less than p1 then d is 1.0 else d is 0.0
|
|
slc d, p0, c d = (p1 < c) ? 1.0 : 0.0 if p0 is less than c then d is 1.0 else d is 0.0
|
|
madd d, p0, p1, p2 d = (p0 * p1) + p2 d is p0 multiplied by p1 then add p2
|
|
lerp d, p0, p1, p2 d = lerp(p0, p1, p2) d is the linear interpolation of p0 and p1 by ratio p2 (p2 must be in the range 0..1)
|
|
|
|
Registers: (all registers are float)
|
|
d - destination
|
|
p0, p1, p2 - parameter 0,1 and 2
|
|
c - constant
|
|
|
|
d, p0, p1 and p2 can be any of the following:
|
|
|
|
Input registers (values set by the car state)
|
|
"BrakeAmount" : Brake amount, [0.0 to 1.0]
|
|
"SteeringAmount" : Steering amount [-1.0 to 1.0] (left to right)
|
|
"Speed" : Speed in m/s.
|
|
"Brake" : on/off [0.0 or 1.0]
|
|
"Headlight" : on/off [0.0 or 1.0]
|
|
"Sidelight" : on/off [0.0 or 1.0]
|
|
"DayTimeRL" : on/off [0.0 or 1.0]
|
|
"Highbeam" : on/off [0.0 or 1.0]
|
|
"Fog" : on/off [0.0 or 1.0]
|
|
"Reverse" : on/off [0.0 or 1.0]
|
|
"Engine" : on/off [0.0 or 1.0]
|
|
"Hazard" : on/off [0.0 or 1.0]
|
|
"IndicatorL" : on/off [0.0 or 1.0]
|
|
"IndicatorR" : on/off [0.0 or 1.0]
|
|
|
|
Sequence Generator outputs
|
|
"seq0"
|
|
"seq1"
|
|
"seq2"
|
|
"seq3"
|
|
|
|
Temps (use to store temp values)
|
|
"t0"
|
|
"t1"
|
|
"t2"
|
|
"t3"
|
|
"t4"
|
|
"t5"
|
|
"t6"
|
|
"t7"
|
|
|
|
Output - The output register must be set with the final result of the contoller.
|
|
"Output"
|
|
|
|
Constant:
|
|
c constant is any float value.
|
|
|
|
Slew is the time in seconds it takes the light to change.
|
|
slew = 0.0 is instant, like an LED
|
|
slew = 0.1 take 0.1s to get to 95% brightness, like a filament bulb
|
|
-->
|
|
|
|
<Constant name="IndicatorOnTime" value="0.36" />
|
|
<Constant name="IndicatorOffTime" value="0.33" />
|
|
<Constant name="SeqIndT1" value="0.12" /><!-- SeqIndT1 + SeqIndT2 should = IndicatorOnTime -->
|
|
<Constant name="SeqIndT2" value="0.24" /><!-- SeqIndT1 + SeqIndT2 should = IndicatorOnTime -->
|
|
<Constant name="SeqBrakeT1" value="0.3" />
|
|
<Constant name="SeqBrakeT2" value="0.6" />
|
|
|
|
<!-- Offset_BrakeLightAmount -->
|
|
<LightController output="Offset_BrakeLightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Brake" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_ReverseLightAmount -->
|
|
<LightController output="Offset_ReverseLightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Reverse" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DoorOpen -->
|
|
|
|
<!-- Offset_EngineStart -->
|
|
<LightController output="Offset_EngineStart" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Engine" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_HeadlightAmount -->
|
|
<LightController output="Offset_HeadlightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Headlight" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_ShiftLightAmount -->
|
|
|
|
<!-- Offset_DayTimeRLAmount -->
|
|
<LightController output="Offset_DayTimeRLAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="DayTimeRL" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_RemoteUnlock -->
|
|
|
|
<!-- Offset_HighBeamAmount -->
|
|
<LightController output="Offset_HighBeamAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Headlight" c="1.0" />
|
|
<Instruction op="mulc" d="t1" p0="Highbeam" c="2.0" />
|
|
<Instruction op="max" d="output" p0="t0" p1="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_FogLightAmount -->
|
|
<LightController output="Offset_FogLightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Fog" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialBrakeLight -->
|
|
|
|
<!-- Offset_RightTurnLightAmount -->
|
|
<LightController output="Offset_RightTurnLightAmount" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_LeftTurnLightAmount -->
|
|
<LightController output="Offset_LeftTurnLightAmount" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_HazardLightAmount -->
|
|
<LightController output="Offset_HazardLightAmount" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="output" p0="Hazard" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_OpenHood -->
|
|
<!-- Offset_OpenTrunk -->
|
|
<!-- Offset_RainDriving -->
|
|
<!-- Offset_Position1 -->
|
|
<!-- Offset_Position2 -->
|
|
<!-- Offset_Position3 -->
|
|
<!-- Offset_Differentiator -->
|
|
|
|
<!-- Offset_ElectroLuminescentLivery -->
|
|
<LightController output="Offset_ElectroLuminescentLivery" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Headlight" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_ConvenienceLightAmount -->
|
|
|
|
<!-- Offset_TaillightAmount -->
|
|
<LightController output="Offset_TaillightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Headlight" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_Brakepulse -->
|
|
<LightController output="Offset_Brakepulse" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="BrakeAmount" level="0.9"/>
|
|
<Step duration="0.1" value="1.0"/>
|
|
<Step duration="0.1" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="sgc" d="t0" p0="BrakeAmount" c="0.9" />
|
|
<Instruction op="sgc" d="t1" p0="Speed" c="1.0" />
|
|
<Instruction op="mul" d="t0" p0="t0" p1="t1" />
|
|
<Instruction op="lerp" d="output" p0="Brake" p1="seq0" p2="t0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialBrake1 -->
|
|
<LightController output="Offset_SequentialBrake1" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Brake" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialBrake2 -->
|
|
<LightController output="Offset_SequentialBrake2" slew="0.0">
|
|
<Sequence output="seq0" loop="false">
|
|
<Trigger input="Brake"/>
|
|
<Step duration="SeqBrakeT1" value="0.0"/>
|
|
<Step duration="1.0" value="1.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="output" p0="Brake" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialBrake3 -->
|
|
<LightController output="Offset_SequentialBrake3" slew="0.0">
|
|
<Sequence output="seq0" loop="false">
|
|
<Trigger input="Brake"/>
|
|
<Step duration="SeqBrakeT2" value="0.0"/>
|
|
<Step duration="1.0" value="1.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="output" p0="Brake" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_HighBeamSepAmount -->
|
|
<LightController output="Offset_HighBeamSepAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Highbeam" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DayTimeRLAmountDay -->
|
|
<LightController output="Offset_DayTimeRLAmountDay" slew="0.0">
|
|
<Output>
|
|
<Instruction op="slc" d="t0" p0="Headlight" c="0.5" />
|
|
<Instruction op="mul" d="output" p0="DaytimeRL" p1="t0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DayTimeRLDim -->
|
|
<LightController output="Offset_DayTimeRLDim" slew="0.0">
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="IndicatorR" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Hazard" />
|
|
<Instruction op="movc" d="t1" c="0.5" />
|
|
<Instruction op="lerp" d="output" p0="DaytimeRL" p1="t1" p2="t0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorLeft1 -->
|
|
<LightController output="Offset_SequentialIndicatorLeft1" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorLeft2 -->
|
|
<LightController output="Offset_SequentialIndicatorLeft2" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="SeqIndT1" value="0.0"/>
|
|
<Step duration="SeqIndT2" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorLeft3 -->
|
|
<LightController output="Offset_SequentialIndicatorLeft3" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="SeqIndT2" value="0.0"/>
|
|
<Step duration="SeqIndT1" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorRight1 -->
|
|
<LightController output="Offset_SequentialIndicatorRight1" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorRight2 -->
|
|
<LightController output="Offset_SequentialIndicatorRight2" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="SeqIndT1" value="0.0"/>
|
|
<Step duration="SeqIndT2" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SequentialIndicatorRight3 -->
|
|
<LightController output="Offset_SequentialIndicatorRight3" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="SeqIndT2" value="0.0"/>
|
|
<Step duration="SeqIndT1" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="seq0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SidelightAmount -->
|
|
<LightController output="Offset_SidelightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Sidelight" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_Numberplatelight -->
|
|
<LightController output="Offset_Numberplatelight" slew="0.0">
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="Sidelight" p1="Headlight" />
|
|
<Instruction op="mulc" d="output" p0="t0" c="0.5" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_FogLightRearAmount -->
|
|
<LightController output="Offset_FogLightRearAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mov" d="output" p0="Fog" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_LightsFlashingFrequency1 -->
|
|
<LightController output="Offset_LightsFlashingFrequency1" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.066" value="1.0"/>
|
|
<Step duration="0.033" value="0.0"/>
|
|
</Sequence>
|
|
<Sequence output="seq1" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.5" value="1.0"/>
|
|
<Step duration="0.5" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="t0" p0="seq0" p1="seq1" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="Engine" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_LightsFlashingFrequency2 -->
|
|
<LightController output="Offset_LightsFlashingFrequency2" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.066" value="1.0"/>
|
|
<Step duration="0.033" value="0.0"/>
|
|
</Sequence>
|
|
<Sequence output="seq1" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.5" value="0.0"/>
|
|
<Step duration="0.5" value="1.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="t0" p0="seq0" p1="seq1" />
|
|
<Instruction op="mul" d="output" p0="t0" p1="Engine" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_LightsFlashingFrequency3 -->
|
|
<LightController output="Offset_LightsFlashingFrequency3" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.5" value="1.0"/>
|
|
<Step duration="0.5" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="output" p0="seq0" p1="Engine" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_LightsFlashingFrequency4 -->
|
|
<LightController output="Offset_LightsFlashingFrequency4" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="Engine" />
|
|
<Step duration="0.5" value="0.0"/>
|
|
<Step duration="0.5" value="1.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="output" p0="seq0" p1="Engine" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeIndicatorLeft -->
|
|
<LightController output="Offset_BrakeIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="lerp" d="output" p0="Brake" p1="seq0" p2="t0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeIndicatorRight -->
|
|
<LightController output="Offset_BrakeIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="max" d="t0" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="lerp" d="output" p0="Brake" p1="seq0" p2="t0" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeReverse -->
|
|
<LightController output="Offset_BrakeReverse" slew="0.0">
|
|
<Output>
|
|
<Instruction op="max" d="output" p0="Brake" p1="Reverse" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeSeqIndicatorLeft -->
|
|
<LightController output="Offset_BrakeSeqIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="false">
|
|
<Trigger input="Brake"/>
|
|
<Step duration="SeqBrakeT2" value="0.0"/>
|
|
<Step duration="1.0" value="1.0"/>
|
|
</Sequence>
|
|
<Sequence output="seq1" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="t0" p0="Brake" p1="seq0" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq1" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeSeqIndicatorRight -->
|
|
<LightController output="Offset_BrakeSeqIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="false">
|
|
<Trigger input="Brake"/>
|
|
<Step duration="SeqBrakeT2" value="0.0"/>
|
|
<Step duration="1.0" value="1.0"/>
|
|
</Sequence>
|
|
<Sequence output="seq1" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mul" d="t0" p0="Brake" p1="seq0" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq1" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeTailIndicatorLeft -->
|
|
<LightController output="Offset_BrakeTailIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Headlight" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_BrakeTailIndicatorRight -->
|
|
<LightController output="Offset_BrakeTailIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Headlight" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DRLBrake -->
|
|
<LightController output="Offset_DRLBrake" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="DaytimeRL" c="0.5" />
|
|
<Instruction op="mulc" d="t1" p0="Brake" c="1.0" />
|
|
<Instruction op="max" d="output" p0="t0" p1="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DRLBrakeIndicatorLeft -->
|
|
<LightController output="Offset_DRLBrakeIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="DaytimeRL" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DRLBrakeIndicatorRight -->
|
|
<LightController output="Offset_DRLBrakeIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="DaytimeRL" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DRLIndicatorLeft -->
|
|
<LightController output="Offset_DRLIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="DaytimeRL" c="0.5" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_DRLIndicatorRight -->
|
|
<LightController output="Offset_DRLIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="DaytimeRL" c="0.5" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SidelightIndicatorBrakeLeft -->
|
|
<LightController output="Offset_SidelightIndicatorBrakeLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Sidelight" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SidelightIndicatorBrakeRight -->
|
|
<LightController output="Offset_SidelightIndicatorBrakeRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Sidelight" c="0.5" />
|
|
<Instruction op="max" d="t0" p0="t0" p1="Brake" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SidelightIndicatorLeft -->
|
|
<LightController output="Offset_SidelightIndicatorLeft" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorL" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Sidelight" c="0.5" />
|
|
<Instruction op="max" d="t1" p0="IndicatorL" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_SidelightIndicatorRight -->
|
|
<LightController output="Offset_SidelightIndicatorRight" slew="0.0">
|
|
<Sequence output="seq0" loop="true">
|
|
<Trigger input="IndicatorR" />
|
|
<Trigger input="Hazard" />
|
|
<Step duration="IndicatorOnTime" value="1.0"/>
|
|
<Step duration="IndicatorOffTime" value="0.0"/>
|
|
</Sequence>
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Sidelight" c="0.5" />
|
|
<Instruction op="max" d="t1" p0="IndicatorR" p1="Hazard" />
|
|
<Instruction op="mul" d="t2" p0="t1" p1="seq0" />
|
|
<Instruction op="lerp" d="output" p0="t0" p1="t2" p2="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_TailBrakeLight -->
|
|
<LightController output="Offset_TailBrakeLight" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Headlight" c="0.125" />
|
|
<Instruction op="mulc" d="t1" p0="Brake" c="1.0" />
|
|
<Instruction op="max" d="output" p0="t0" p1="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
<!-- Offset_HighHeadLightAmount -->
|
|
<LightController output="Offset_HighHeadLightAmount" slew="0.0">
|
|
<Output>
|
|
<Instruction op="mulc" d="t0" p0="Headlight" c="1.0" />
|
|
<Instruction op="mulc" d="t1" p0="Highbeam" c="1.5" />
|
|
<Instruction op="max" d="output" p0="t0" p1="t1" />
|
|
</Output>
|
|
</LightController>
|
|
|
|
</LightControllers>
|