X10 2.11.0 sportTelemetryPush behaviour change
Is there an existing issue for this problem?
- [x] I have searched the existing issues
What part of EdgeTX is the focus of this bug?
Transmitter firmware
Current Behavior
My hardware setting for AUX1 is Telemetry Mirror, and the data duly appear on the appropriate pin in the module bay. I use some simple function scripts that call sportTelemetryPush to inject custom values into the data stream and these values also appear in the module bay when using 2.10.6. When using 2.11.0 sportTelemetryPush returns success, but the pushed data no longer appear in the module bay.
Expected Behavior
Behavior for 2.11.0 should not be different from 2.10.6 (plus previous versions).
Steps To Reproduce
- Set AUX1 in the module bay to Telemetry Mirror.
- Enable a function script which calls sportTelemetryPush (poorly written example below).
- Flash 2.10.6 - observe mirrored telemetry data plus sportTelemetryPush data in the module bay as expected.
- Flash 2.11.0 - observe mirrored telemetry data in the module bay, but no data from the sportTelemetryPush calls, even though they returned success.
- Flash 2.10.6 - observe mirrored telemetry data plus sportTelemetryPush data in the module bay as expected.
Version
2.11.0
Transmitter
FrSky X10 / X10S (ACCST)
Operating System (OS)
No response
OS Version
No response
Anything else?
Module bay contains a BlueTooth module plus signal inverter. This allows the telemetry data to be received by my mobile 'phone which can process the telemetry data and take action based on Tx switch movements (e.g trigger a camera).
The Lua script below is s --2021-08-30 Maps switches A..H up/down to telemetry data values
local sensorAddress = 0x0A local sensorId = 0x17 --These are plucked out of local frameId = 0x30 --the air and hopefully local dataId = 0xAAAA --they don't clash local value = 101 --with any official OpenTx/FrSky values
local timeprev = 0 local TransitionsIndex = 0
local Transitions = {}
local function init() for index =1, 8 do Transitions[index]={} end
Transitions[1].switch="sa" Transitions[2].switch="sb" Transitions[3].switch="sc" Transitions[4].switch="sd" Transitions[5].switch="se" Transitions[6].switch="sf" Transitions[7].switch="sg" Transitions[8].switch="sh"
for index =1, #Transitions do Transitions[index].state = getValue(Transitions[index].switch) end end
local function TransitionCondition(Index) return getValue(Transitions[Index].switch) end
local function run() local timenow = getTime() -- 10ms tick count if timenow - timeprev > 3 then timeprev = timenow TransitionsIndex = TransitionsIndex + 1 if (TransitionsIndex > #Transitions) then TransitionsIndex = 1 end currentTransitionCondition = getValue(Transitions[TransitionsIndex].switch) if currentTransitionCondition ~= Transitions[TransitionsIndex].state then if currentTransitionCondition ~= 0 then if currentTransitionCondition > 0 then value = 100 + TransitionsIndex end if currentTransitionCondition < 0 then value = 200 + TransitionsIndex end sportTelemetryPush(sensorId, frameId, dataId, value) -- print("------>> "..TransitionsIndex.." "..Transitions[TransitionsIndex].switch.." "..currentTransitionCondition.." "..value) end Transitions[TransitionsIndex].state = currentTransitionCondition sportTelemetryPush(sensorId, frameId, dataId, value) end end end
return { run=run, init=init }