@@ -7,7 +7,7 @@ local MSP_TX_INFO = 186
7
7
local sensorName = " Tmp1" -- T1 is never 0 in Betaflight
8
8
9
9
local lastRunTS
10
- local oldSensorValue
10
+ local timeIsSet = false
11
11
local sensorId
12
12
local mspMsgQueued = false
13
13
22
22
23
23
local function init ()
24
24
sensorId = getTelemetryId (sensorName )
25
- oldSensorValue = 0
26
25
lastRunTS = 0
27
26
end
28
27
@@ -39,32 +38,31 @@ local function run_bg()
39
38
-- get sensor value
40
39
local newSensorValue = getValue (sensorId )
41
40
42
- if type (newSensorValue ) == " number" then
43
-
41
+ if not timeIsSet and type (newSensorValue ) == " number" and newSensorValue > 0 then
44
42
-- Send datetime when the telemetry connection is available
45
43
-- assuming when sensor value higher than 0 there is an telemetry connection
46
44
-- only send datetime one time after telemetry connection became available
47
45
-- or when connection is restored after e.g. lipo refresh
48
- if oldSensorValue == 0 and newSensorValue > 0 then
49
- local now = getDateTime ()
50
- local year = now .year ;
51
-
52
- values = {}
53
- values [1 ] = bit32.band (year , 0xFF )
54
- year = bit32.rshift (year , 8 )
55
- values [2 ] = bit32.band (year , 0xFF )
56
- values [3 ] = now .mon
57
- values [4 ] = now .day
58
- values [5 ] = now .hour
59
- values [6 ] = now .min
60
- values [7 ] = now .sec
61
-
62
- -- send msp message
63
- mspSendRequest (MSP_SET_RTC , values )
64
- mspMsgQueued = true
65
- end
46
+ local now = getDateTime ()
47
+ local year = now .year ;
48
+
49
+ values = {}
50
+ values [1 ] = bit32.band (year , 0xFF )
51
+ year = bit32.rshift (year , 8 )
52
+ values [2 ] = bit32.band (year , 0xFF )
53
+ values [3 ] = now .mon
54
+ values [4 ] = now .day
55
+ values [5 ] = now .hour
56
+ values [6 ] = now .min
57
+ values [7 ] = now .sec
58
+
59
+ -- send msp message
60
+ mspSendRequest (MSP_SET_RTC , values )
61
+ mspMsgQueued = true
66
62
67
- oldSensorValue = newSensorValue
63
+ timeIsSet = true
64
+ else
65
+ timeIsSet = false
68
66
end
69
67
70
68
@@ -74,7 +72,8 @@ local function run_bg()
74
72
75
73
if mspMsgQueued == false then
76
74
local rssi , alarm_low , alarm_crit = getRSSI ()
77
- rssi = rssi * 3 -- scaling of [0, 85] (empirical) DBm value to [0, 255]
75
+ -- Scale the [0, 85] (empirical) RSSI values to [0, 255]
76
+ rssi = rssi * 3
78
77
if rssi > 255 then
79
78
rssi = 255
80
79
end
0 commit comments