From 89387d93f6f15eb9a2d1bca1b0f1fc7070784712 Mon Sep 17 00:00:00 2001 From: Tim Eckel Date: Wed, 14 Aug 2019 17:00:10 -0400 Subject: [PATCH] Additional check for lost RSSI with Crossfire --- dist/SCRIPTS/TELEMETRY/iNav.lua | Bin 11199 -> 11203 bytes dist/SCRIPTS/TELEMETRY/iNav.luac | Bin 11199 -> 11203 bytes dist/SCRIPTS/TELEMETRY/iNav/crsf.luac | Bin 2643 -> 2768 bytes dist/SCRIPTS/TELEMETRY/iNav/horus.luac | Bin 15697 -> 15693 bytes dist/SCRIPTS/TELEMETRY/iNav/other.luac | Bin 2642 -> 2646 bytes src/iNav.lua | 2 +- src/iNav/build.lua | 4 ++-- src/iNav/crsf.lua | 9 ++++++++- src/iNav/horus.lua | 6 +++--- src/iNav/other.lua | 4 ++-- 10 files changed, 16 insertions(+), 9 deletions(-) diff --git a/dist/SCRIPTS/TELEMETRY/iNav.lua b/dist/SCRIPTS/TELEMETRY/iNav.lua index d231e3bb10be16b1df68eeff5a3f21c9098e23ca..e003aa0f284f0d7cad55fa33dcd61a3380cae33b 100644 GIT binary patch delta 26 icmdlVemH!BEaRGua@tHB44e&2caJf!ZuVs=(gXl~I0#<= delta 22 ecmX>czCV0|EaU2pa@tHRcaJr&Yz|~9(gXl#R|rx7 diff --git a/dist/SCRIPTS/TELEMETRY/iNav.luac b/dist/SCRIPTS/TELEMETRY/iNav.luac index d231e3bb10be16b1df68eeff5a3f21c9098e23ca..e003aa0f284f0d7cad55fa33dcd61a3380cae33b 100644 GIT binary patch delta 26 icmdlVemH!BEaRGua@tHB44e&2caJf!ZuVs=(gXl~I0#<= delta 22 ecmX>czCV0|EaU2pa@tHRcaJr&Yz|~9(gXl#R|rx7 diff --git a/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac b/dist/SCRIPTS/TELEMETRY/iNav/crsf.luac index 4779aa7988aa0fa5067bdfdf95de813c36205aea..4fac00fbab006e43663d516286d3b4e5ca55359e 100644 GIT binary patch literal 2768 zcmZWrTaQy!6kfa2o(>0RAja6v5JNCxj1dz<)EFhR&s=&so#}LF%PmMqq3ukyWhQM0 zF!5oR%M_3SRDy#O!h=7+XP?*=GsB>wZ#6L-EUt`rErp-v(~r1b=hm5vvzk( zFBP)H!r^c~4Shf04!aaw%t=9fn?xwZxgbW&>kz%sB9gSC;6xc5q zyU~Y;Eysx2m*{bTbGT!t6xdc z`Zp=DeihG^DD%l>>(`s-3{B}1Z+KE2wMA^I1D<^{6$$Fzqj5+;~ z>*ZSUc%^6z*+hDr4BTi`y6^|tT#lS5*o{K7i{=W=h9Q@iO4TkrR#+?;_(Y-kKRbJN zv`H#Cu4ngj8KceYS#q`lP|S4Yl#by*SL8k9C{d9hs#2SaXX@QF`PoBRQ`3BLPNQK^ zjug%qu)KJ>3nq(mW_c<=P=jrST0S{_aNT3GsKsOv#@6~KcS5k94)pi9HGCKd;XwE( z5I#0OXDL|k2zG&9$L~x07&*hx6U3>_IUU3M6c>_WoC#ORmdm|!6WA@6(|J!29fyZ6 zImKm%Vno8FUt8K&jA~z(iwjz(u|U6=5M$)a`?QQ48#GRL5CeHA!+%3uvD{;qFWTvH zkDX7@9n?4^I8!z1m=;?R6Ksu}ui|-JtqJvC@#O>!ak?6leL~j=UD<~0dY{MAVx5lK zSkL3O=Bqy84d-IT=RO@JKwntLjWS)yY3D!ZMkKws2Qmid~mO&2m;)dQk!Ed~nXC3)A97LbvzEoW#AzA=t>T~4mX zP+zPxPtKc} zTq`sog#i{z7}KgyZB^6Trg+Pws4rBjwsuH*x~stRr9!cC3a;vWvS&eLufB%42JKm3 zqv7yT*#J`H{=e^he*MHO*M$dzU#~|grkck5!kL89tiK)Zr%fq}H_>RCwVW)WLQDH3 zXwW_$`SG^8Hb->gS^*RK&yeDKUOOUKe`);v^%>(2Y5%BC zUnNKw4aZ=ANTLLj)ioG&&ziV_XT%w7OI+Jvh+EciB5dp7j$XI>>vP5*3H)DYc6@Dee-0y`SP*Re*kiq=F2VK=Jv z@~5@3apc`>ilQ;V%~Gq67D}xqX>xU`GT(B&!6?r#Bm8nQDRZXqMQ;mL_;_Sh^scEi!T%%!74wp_Du)27%52nk< z%|4VsP=npG+9yQ^5W3rDQJcv_#@70>jE3Mn8LZ!w*70^=gahN9z-qk0d3fPYEK9v&4&Ys3RTv1jjNixvkfJu%Xre*MY{si5G61bG3 zI~136c8i}UpYrqa7C)uvCi0BRlt@UyTGL`HoDw&rInqz!wyuunr)X5t`Gh}UYQ|dm zM&&Q0v`pOw%kml>v06{!re;3xk&D{-f+t-%g4QJDPIh^nJbxX%QFDG2bhW3~E^u#kJ+#9Sq2J-V=krzJ453dfR%IA_WU&VyhH$_ai3O{rde z>&YpzAAi5ld3Zy_oGBU>lOd-a!&qQ(pMS;P?uwhxzRXf&QEvxvW6a;FQPrmHbVI!t zoV_;oru@+EP7*_V8oioEuQDhsqU%cf(<0#uoGRMtM}HhK3=W0j%-1@IIV7|COlg~8 zBVWhQ(hdE7an}8GH{n0Ws-6{^5s2$5Zc@(JIN)q?KSOaQ@JGOhwy!wENxF~o04=${ zo1h)qmy|i}i*pYA?UoNrf687>6y-VpM?MfaMh|4;Y0k&tg=Bo~>CHg_#eP_>G7+C=PIRg?F2&A1!9M_4J3-}(a)IFUOTmev3Xmk1xS%Q z|GfV3<)gE*f8VGPt+%P>wJEDPw{Xf;D;sae@JUmX;_Yj;Owh3kO0~52g1+sQk?*go zXLDR9u9t8iFEx^Da&H!Xz@PM!#EE|po#4toO+))&7uxL0w zA)0~xVl;!)0Rbg(hsjF(%1j3&HoNnSG4eI=H1q|=&aMqz(uui8oAE;#X#3klgIfFUH7sfTy7^D3(*QK}bcMfoF2IfDv~CLxbZL QMuzAR28PW`1Xk(*0L8W=rT_o{ diff --git a/dist/SCRIPTS/TELEMETRY/iNav/other.luac b/dist/SCRIPTS/TELEMETRY/iNav/other.luac index 1c6faac43b5c46893a97fe42516e71c01169cb17..75ca4ac3f3414bc3e5a1c9729ac4e1a8f82cda66 100644 GIT binary patch delta 1220 zcmZuw!EO^V5FOjuT|p_mR3r!xCphr|95rxbGUXZJgh1}$AD!AmV!{~zN0SOX^O0oj@BqX7PNkI+7c+4{j zHdUJr6G@sIdgGds%+V<4l2WO1t!|CK)qHYW{X0ik2{*(oc$=C}sTFqvJIE+g4RTXq z_>pPYhFT{xYRT9YXf?aeYd%AsZ##gZ=K*+F%TH~7%M%E12*kWntQM=3&Bi=(g-$*x zD!F~ku?Lz5ti|HW7E_C1fSPI_baFxmki1Dt{`^0EFf8^MJVU{vfoJE5pg`SBHZr00 zl(9)fSN3icxEqjf3<8(1%3`>D=f8Zi$fH(8)_)cY3ZCS|QW85PG8>RpAm2%g-fmjV zcAM8q+;Qqa){oL&PIJBg;tlAqC~mD5h0REG<@Ual1IYv6pfI45eI zN^=%OodHGpAY8+LEk6yf@Df}v1wzS$G6xEv(gx7b%LyqNbR3iE)0SU+c!PI}+d$qe7? zA6Or!`OEWT1b$v6l1(9R)S1(Uj6*APB>vDN0j2e}4IJ7`pp(<2@@&){W zyJ^UwAgUtuQXx+K2XA+q*g`!-*?BYjX6DU~ua~cu_a0|UPX*BvQbE8(F)J~UL|dA~ zqnHN~301}V@I{I|W_(Swki zf?)!iFi+%!nyPRCiJp+_82*GO@bfE2P)s}lFI4>J*1ziuSSSks;4o9cW~y?Xvbof% z<^yHDysU07>k1a%j>J?j6j)L1O(MThA96>u=sA(7%!6iO`^Gr)0oqsRX6U3TJ8PkG z)FIB0aAe_gQRo4^mlmDF%Y{8Jl|(p$=Y!?h(d(3(^>B*w zRDTca?KP?oy9*<&gv+H-kQ_VCECNw(0VJHuWkO#R_k1Vz!J*|u_9&I>NYbk$=^@EQ zDB4R@CP19&93|j&O3WUtc|iTygU6OAR+%WUha)=^#UBAUTMQr4H4j6NYv9CXoIc6T zPihvO&~8pjmnXTr#MZ=N6r<DT;S@^afPe2+yF*;!sdy-1*cPPw;#G8Ryf+@anWN sem40sl1gkt-YG~nRpBI`@-Movl7sLs{!y6ykOWkt@DG2z2wsQ(0KAVuD*ylh 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