diff --git a/dist/SCRIPTS/TELEMETRY/iNav.lua b/dist/SCRIPTS/TELEMETRY/iNav.lua index d231e3bb..e003aa0f 100644 Binary files a/dist/SCRIPTS/TELEMETRY/iNav.lua and b/dist/SCRIPTS/TELEMETRY/iNav.lua differ diff --git a/dist/SCRIPTS/TELEMETRY/iNav.luac b/dist/SCRIPTS/TELEMETRY/iNav.luac index d231e3bb..e003aa0f 100644 Binary files a/dist/SCRIPTS/TELEMETRY/iNav.luac and b/dist/SCRIPTS/TELEMETRY/iNav.luac differ diff --git a/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac b/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac index 4779aa79..4fac00fb 100644 Binary files a/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac and b/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac differ diff --git a/dist/SCRIPTS/TELEMETRY/iNav/horus.luac b/dist/SCRIPTS/TELEMETRY/iNav/horus.luac index dcac0b35..1138dc45 100644 Binary files a/dist/SCRIPTS/TELEMETRY/iNav/horus.luac and b/dist/SCRIPTS/TELEMETRY/iNav/horus.luac differ diff --git a/dist/SCRIPTS/TELEMETRY/iNav/other.luac b/dist/SCRIPTS/TELEMETRY/iNav/other.luac index 1c6faac4..75ca4ac3 100644 Binary files a/dist/SCRIPTS/TELEMETRY/iNav/other.luac and b/dist/SCRIPTS/TELEMETRY/iNav/other.luac differ diff --git a/src/iNav.lua b/src/iNav.lua index 4bd03fd6..ef5a07c6 100644 --- a/src/iNav.lua +++ b/src/iNav.lua @@ -46,7 +46,7 @@ end loadScript(FILE_PATH .. "reset" .. ext, env)(data) collectgarbage() -local crsf, distCalc = loadScript(FILE_PATH .. "other" .. ext, env)(config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD) +local crsf, distCalc = loadScript(FILE_PATH .. "other" .. ext, env)(config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD, FLASH) collectgarbage() local title, gpsDegMin, hdopGraph, icons = loadScript(FILE_PATH .. "func_" .. (HORUS and "h" or "t") .. ext, env)(config, data, FILE_PATH) diff --git a/src/iNav/build.lua b/src/iNav/build.lua index 30784dbf..26776179 100644 --- a/src/iNav/build.lua +++ b/src/iNav/build.lua @@ -33,8 +33,8 @@ for abv = 1, #langs do end loadScript(FILE_PATH .. "reset", env)(data) -local crsf = loadScript(FILE_PATH .. "crsf", env)(config, data, getTelemetryId) -crsf, distCalc = loadScript(FILE_PATH .. "other", env)(config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD) +local crsf = loadScript(FILE_PATH .. "crsf", env)(config, data, getTelemetryId, FLASH) +crsf, distCalc = loadScript(FILE_PATH .. "other", env)(config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD, FLASH) loadScript(FILE_PATH .. "view", env)() loadScript(FILE_PATH .. "pilot", env)() loadScript(FILE_PATH .. "radar", env)() diff --git a/src/iNav/crsf.lua b/src/iNav/crsf.lua index cf57288b..51b2de62 100644 --- a/src/iNav/crsf.lua +++ b/src/iNav/crsf.lua @@ -1,7 +1,8 @@ -local config, data, getTelemetryId = ... +local config, data, getTelemetryId, FLASH = ... data.crsf = true data.rfmd_id = getTelemetryId("RFMD") +data.rssi_id = getTelemetryId("1RSS") data.sat_id = getTelemetryId("Sats") data.fuel_id = getTelemetryId("Capa") data.batt_id = getTelemetryId("RxBt") > -1 and getTelemetryId("RxBt") or getTelemetryId("BtRx") @@ -19,6 +20,12 @@ config[22].v = 0 config[23].x = 1 local function crsf(data) + if getValue(data.rssi_id) == 0 then + data.rssi = 0 + data.telem = false + data.telemFlags = FLASH + return 0 + end if data.rssi == 99 then data.rssi = 100 end data.tpwr = getValue(data.tpwr_id) data.rfmd = getValue(data.rfmd_id) diff --git a/src/iNav/horus.lua b/src/iNav/horus.lua index 66fa2d51..cc72ce75 100644 --- a/src/iNav/horus.lua +++ b/src/iNav/horus.lua @@ -284,18 +284,18 @@ local function view(data, config, modes, units, labels, gpsDegMin, hdopGraph, ic if data.distanceLast >= data.distRef then local bearing = calcBearing(data.gpsHome, data.gpsLatLon) + 540 % 360 if config[15].v == 1 then - -- 3D HUD method + -- HUD method local d = 1 - data.distanceLast / maxDist local w = HEADING_DEG / (d + 1) local h = floor((((upsideDown and data.heading - bearing or bearing - data.heading) + (361 + w * 0.5)) % 360) * (RIGHT_POS / w) - 0.5) --local p = sin(math.atan(data.altitude / data.distanceLast) - math.atan(data.altitude / max(maxDist, data.altitude * 0.25))) * (upsideDown and DEGV or -DEGV) - local p = sin(math.atan(data.altitude / data.distanceLast * 0.5)) * (upsideDown and DEGV or -DEGV) --local p = sin(rad(d * max(15 + (pitch - 90) * 0.5, 0))) * (upsideDown and DEGV or -DEGV) + local p = sin(math.atan(data.altitude / data.distanceLast * 0.5)) * (upsideDown and DEGV or -DEGV) local x = (X_CNTR - cos(roll1) * p) + (sin(roll1) * (h - X_CNTR)) - 9 local y = ((Y_CNTR - cos(rad(pitch)) * DEGV) - sin(roll1) * p) - (cos(roll1) * (h - X_CNTR)) - 9 if x >= 0 and x < RIGHT_POS - 17 then local s = floor(d * 2 + 0.5) - bmap(icons.home[s], x, min(max(y, s == 2 and 20 or 15), BOTTOM - (s == 2 and 35 or 30))) + bmap(icons.home[s], x, min(max(y, s == 2 and TOP or 15), BOTTOM - (s == 2 and 35 or 30))) end --[[ if x >= 0 and y >= TOP and x < RIGHT_POS - 17 and y < BOTTOM - 17 then diff --git a/src/iNav/other.lua b/src/iNav/other.lua index bb5e981c..67fbb0a3 100644 --- a/src/iNav/other.lua +++ b/src/iNav/other.lua @@ -1,4 +1,4 @@ -local config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD = ... +local config, data, units, getTelemetryId, getTelemetryUnit, FILE_PATH, env, SMLCD, FLASH = ... local crsf = nil -- Detect Crossfire @@ -8,7 +8,7 @@ data.fm_id = getTelemetryId("FM") > -1 and getTelemetryId("FM") or getTelemetryI --if data.simu then data.fm_id = 1 end if data.fm_id > -1 then - crsf = loadScript(FILE_PATH .. "crsf.luac", env)(config, data, getTelemetryId) + crsf = loadScript(FILE_PATH .. "crsf.luac", env)(config, data, getTelemetryId, FLASH) collectgarbage() end