diff --git a/bin/sound-generator/en.csv b/bin/sound-generator/en.csv index 9c76315..6cea4cc 100644 --- a/bin/sound-generator/en.csv +++ b/bin/sound-generator/en.csv @@ -13,3 +13,10 @@ fm-23.wav,RETURN TO HOME,, fm-26.wav,COURSE HOLD,, fm-27.wav,CRUISE,, fm-99.wav,FAILSAFE,, +fm-100.wav,WAIT GPS,, +fm-101.wav,ERROR,, +fm-102.wav,AIR MODE,, +fm-103.wav,RESET HOME POINT,, +fm-104.wav,LANDING,, +fm-105.wav,ANGLE HOLD,, +fm-255.wav,NO DATA,, diff --git a/bin/sound-generator/soundpack/en/default/fm-0.wav b/bin/sound-generator/soundpack/en/default/fm-0.wav index 0f8853e..54932f1 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-0.wav and b/bin/sound-generator/soundpack/en/default/fm-0.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-1.wav b/bin/sound-generator/soundpack/en/default/fm-1.wav index a2497de..5301adc 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-1.wav and b/bin/sound-generator/soundpack/en/default/fm-1.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-10.wav b/bin/sound-generator/soundpack/en/default/fm-10.wav index c404dad..a66050d 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-10.wav and b/bin/sound-generator/soundpack/en/default/fm-10.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-100.wav b/bin/sound-generator/soundpack/en/default/fm-100.wav new file mode 100644 index 0000000..efeaae7 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-100.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-101.wav b/bin/sound-generator/soundpack/en/default/fm-101.wav new file mode 100644 index 0000000..a58af9c Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-101.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-102.wav b/bin/sound-generator/soundpack/en/default/fm-102.wav new file mode 100644 index 0000000..10453a7 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-102.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-103.wav b/bin/sound-generator/soundpack/en/default/fm-103.wav new file mode 100644 index 0000000..6bde664 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-103.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-104.wav b/bin/sound-generator/soundpack/en/default/fm-104.wav new file mode 100644 index 0000000..cb29423 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-104.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-105.wav b/bin/sound-generator/soundpack/en/default/fm-105.wav new file mode 100644 index 0000000..7973208 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-105.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-11.wav b/bin/sound-generator/soundpack/en/default/fm-11.wav index e4de2bb..cd46cc1 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-11.wav and b/bin/sound-generator/soundpack/en/default/fm-11.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-12.wav b/bin/sound-generator/soundpack/en/default/fm-12.wav index 6c0035d..58b50ec 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-12.wav and b/bin/sound-generator/soundpack/en/default/fm-12.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-13.wav b/bin/sound-generator/soundpack/en/default/fm-13.wav index 1820694..a9c01a8 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-13.wav and b/bin/sound-generator/soundpack/en/default/fm-13.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-2.wav b/bin/sound-generator/soundpack/en/default/fm-2.wav index d835d62..2dccf15 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-2.wav and b/bin/sound-generator/soundpack/en/default/fm-2.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-20.wav b/bin/sound-generator/soundpack/en/default/fm-20.wav index 75ba197..c417b0a 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-20.wav and b/bin/sound-generator/soundpack/en/default/fm-20.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-21.wav b/bin/sound-generator/soundpack/en/default/fm-21.wav index 638f406..200333d 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-21.wav and b/bin/sound-generator/soundpack/en/default/fm-21.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-22.wav b/bin/sound-generator/soundpack/en/default/fm-22.wav index 664c64e..f01c408 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-22.wav and b/bin/sound-generator/soundpack/en/default/fm-22.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-23.wav b/bin/sound-generator/soundpack/en/default/fm-23.wav index 3f5f86e..8fc7ae2 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-23.wav and b/bin/sound-generator/soundpack/en/default/fm-23.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-255.wav b/bin/sound-generator/soundpack/en/default/fm-255.wav new file mode 100644 index 0000000..d5921c2 Binary files /dev/null and b/bin/sound-generator/soundpack/en/default/fm-255.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-26.wav b/bin/sound-generator/soundpack/en/default/fm-26.wav index 4d48aa3..1d7662f 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-26.wav and b/bin/sound-generator/soundpack/en/default/fm-26.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-27.wav b/bin/sound-generator/soundpack/en/default/fm-27.wav index a219994..dbc4673 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-27.wav and b/bin/sound-generator/soundpack/en/default/fm-27.wav differ diff --git a/bin/sound-generator/soundpack/en/default/fm-99.wav b/bin/sound-generator/soundpack/en/default/fm-99.wav index 9833de3..6f5a8b5 100644 Binary files a/bin/sound-generator/soundpack/en/default/fm-99.wav and b/bin/sound-generator/soundpack/en/default/fm-99.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-0.wav b/scripts/inav-dashboard/audio/en/default/fm-0.wav index 0f8853e..54932f1 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-0.wav and b/scripts/inav-dashboard/audio/en/default/fm-0.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-1.wav b/scripts/inav-dashboard/audio/en/default/fm-1.wav index a2497de..5301adc 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-1.wav and b/scripts/inav-dashboard/audio/en/default/fm-1.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-10.wav b/scripts/inav-dashboard/audio/en/default/fm-10.wav index c404dad..a66050d 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-10.wav and b/scripts/inav-dashboard/audio/en/default/fm-10.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-100.wav b/scripts/inav-dashboard/audio/en/default/fm-100.wav new file mode 100644 index 0000000..efeaae7 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-100.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-101.wav b/scripts/inav-dashboard/audio/en/default/fm-101.wav new file mode 100644 index 0000000..a58af9c Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-101.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-102.wav b/scripts/inav-dashboard/audio/en/default/fm-102.wav new file mode 100644 index 0000000..10453a7 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-102.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-103.wav b/scripts/inav-dashboard/audio/en/default/fm-103.wav new file mode 100644 index 0000000..6bde664 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-103.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-104.wav b/scripts/inav-dashboard/audio/en/default/fm-104.wav new file mode 100644 index 0000000..cb29423 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-104.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-105.wav b/scripts/inav-dashboard/audio/en/default/fm-105.wav new file mode 100644 index 0000000..7973208 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-105.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-11.wav b/scripts/inav-dashboard/audio/en/default/fm-11.wav index e4de2bb..cd46cc1 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-11.wav and b/scripts/inav-dashboard/audio/en/default/fm-11.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-12.wav b/scripts/inav-dashboard/audio/en/default/fm-12.wav index 6c0035d..58b50ec 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-12.wav and b/scripts/inav-dashboard/audio/en/default/fm-12.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-13.wav b/scripts/inav-dashboard/audio/en/default/fm-13.wav index 1820694..a9c01a8 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-13.wav and b/scripts/inav-dashboard/audio/en/default/fm-13.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-2.wav b/scripts/inav-dashboard/audio/en/default/fm-2.wav index d835d62..2dccf15 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-2.wav and b/scripts/inav-dashboard/audio/en/default/fm-2.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-20.wav b/scripts/inav-dashboard/audio/en/default/fm-20.wav index 75ba197..c417b0a 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-20.wav and b/scripts/inav-dashboard/audio/en/default/fm-20.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-21.wav b/scripts/inav-dashboard/audio/en/default/fm-21.wav index 638f406..200333d 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-21.wav and b/scripts/inav-dashboard/audio/en/default/fm-21.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-22.wav b/scripts/inav-dashboard/audio/en/default/fm-22.wav index 664c64e..f01c408 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-22.wav and b/scripts/inav-dashboard/audio/en/default/fm-22.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-23.wav b/scripts/inav-dashboard/audio/en/default/fm-23.wav index 3f5f86e..8fc7ae2 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-23.wav and b/scripts/inav-dashboard/audio/en/default/fm-23.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-255.wav b/scripts/inav-dashboard/audio/en/default/fm-255.wav new file mode 100644 index 0000000..d5921c2 Binary files /dev/null and b/scripts/inav-dashboard/audio/en/default/fm-255.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-26.wav b/scripts/inav-dashboard/audio/en/default/fm-26.wav index 4d48aa3..1d7662f 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-26.wav and b/scripts/inav-dashboard/audio/en/default/fm-26.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-27.wav b/scripts/inav-dashboard/audio/en/default/fm-27.wav index a219994..dbc4673 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-27.wav and b/scripts/inav-dashboard/audio/en/default/fm-27.wav differ diff --git a/scripts/inav-dashboard/audio/en/default/fm-99.wav b/scripts/inav-dashboard/audio/en/default/fm-99.wav index 9833de3..6f5a8b5 100644 Binary files a/scripts/inav-dashboard/audio/en/default/fm-99.wav and b/scripts/inav-dashboard/audio/en/default/fm-99.wav differ diff --git a/scripts/inav-dashboard/render/flightmode.lua b/scripts/inav-dashboard/render/flightmode.lua index 3dd1b4b..4e6c7b6 100644 --- a/scripts/inav-dashboard/render/flightmode.lua +++ b/scripts/inav-dashboard/render/flightmode.lua @@ -7,7 +7,7 @@ local inavdash = require("inavdash") local render = {} local radio = assert(loadfile("radios.lua"))() -local MODE_TEXT = {[0] = "DISARMED", [1] = "READY TO ARM", [2] = "ARMING PREVENTED", [10] = "ACRO", [11] = "ANGLE", [12] = "HORIZON", [13] = "MANUAL", [20] = "ALTITUDE HOLD", [21] = "POSITION HOLD", [22] = "WAYPOINT", [23] = "RTH", [26] = "COURSE HOLD", [27] = "CRUISE", [99] = "FAILSAFE"} +local MODE_TEXT = {[0] = "DISARMED", [1] = "READY TO ARM", [2] = "ARMING PREVENTED", [10] = "ACRO", [11] = "ANGLE", [12] = "HORIZON", [13] = "MANUAL", [20] = "ALTITUDE HOLD", [21] = "POSITION HOLD", [22] = "WAYPOINT", [23] = "RTH", [26] = "COURSE HOLD", [27] = "CRUISE", [99] = "FAILSAFE", [100] = "WAIT", [101] = "ERROR!", [102] = "ACRO (AIR)", [103] = "HOME RESET", [104] = "LANDING", [105] = "ANGLE HOLD", [255] = "NO DATA"} local function ascii_skeleton(s) return (s or ""):gsub("[\128-\255]", "x") end diff --git a/scripts/inav-dashboard/sensors/flightmodes.lua b/scripts/inav-dashboard/sensors/flightmodes.lua index f0fdb51..43a37fc 100644 --- a/scripts/inav-dashboard/sensors/flightmodes.lua +++ b/scripts/inav-dashboard/sensors/flightmodes.lua @@ -7,10 +7,9 @@ local inavdash = require("inavdash") local M = {} -M.MODE = {DISARMED = 0, READY_TO_ARM = 1, ARMING_PREVENTED = 2, ACRO = 10, ANGLE = 11, HORIZON = 12, PASSTHRU = 13, ALT_HOLD_ANGLE = 20, POS_HOLD_ANGLE = 21, WAYPOINT = 22, RTH = 23, COURSE_HOLD = 26, CRUISE = 27, FAILSAFE = 99} +M.MODE = {DISARMED = 0, READY_TO_ARM = 1, ARMING_PREVENTED = 2, ACRO = 10, ANGLE = 11, HORIZON = 12, PASSTHRU = 13, ALT_HOLD_ANGLE = 20, POS_HOLD_ANGLE = 21, WAYPOINT = 22, RTH = 23, COURSE_HOLD = 26, CRUISE = 27, FAILSAFE = 99, WAIT = 100, ERROR = 101, ACRO_AIR = 102, HOME_RESET = 103, LANDING = 104, ANGLE_HOLD = 105, NO_DATA = 255} -local last_abcde = 0 -local last_mode = M.MODE.DISARMED +local last_mode_id = M.MODE.DISARMED local function bit_is_set(value, mask) value = value or 0 @@ -32,77 +31,49 @@ local function digits_ABCDE(n) return math.floor(A), math.floor(B), math.floor(C), math.floor(D), math.floor(E) end -local function pack_ABCDE(A, B, C, D, E) return (A or 0) * 10000 + (B or 0) * 1000 + (C or 0) * 100 + (D or 0) * 10 + (E or 0) end - -local function crsfToABCDE(fm) - if not fm then return 0 end - local A, B, C, D, E = 0, 0, 0, 0, 0 - - if fm == "!ERR" or fm == "WAIT" then - - E = 2 - - elseif fm == "OK" then - - E = 1 - - elseif fm == "ACRO" or fm == "AIR" then - - D, E = 0, 4 - - elseif fm == "ANGL" or fm == "STAB" then - - D, E = 1, 4 - - elseif fm == "HOR" then - - D, E = 2, 4 - - elseif fm == "MANU" then - - D, E = 4, 4 - - elseif fm == "AH" then - - C, D, E = 2, 1, 4 - - elseif fm == "HOLD" then - - C, D, E = 4, 1, 4 - - elseif fm == "WP" then - - B, D, E = 2, 1, 4 - - elseif fm == "RTH" then - - B, C, D, E = 1, 6, 1, 4 - - elseif fm == "!FS!" then - - A, E = 4, 4 - - elseif fm == "CRS" or fm == "CRSH" then - - B, E = 8, 4 - - elseif fm == "3CRS" or fm == "CRUZ" then - - B, C, E = 8, 2, 4 - - elseif fm == "HRST" then - - return nil - - else - - E = 0 +local function crsfToModeID(value) + if not value then return nil end + + if value == "OK" then + return M.MODE.READY_TO_ARM + elseif value == "!ERR" then + return M.MODE.ERROR + elseif value == "WAIT" then + return M.MODE.WAIT + elseif value == "AIR" then + return M.MODE.ACRO_AIR + elseif value == "ACRO" then + return M.MODE.ACRO + elseif value == "!FS!" then + return M.MODE.FAILSAFE + elseif value == "HRST" then + return M.MODE.HOME_RESET + elseif value == "MANU" then + return M.MODE.PASSTHRU + elseif value == "RTH" then + return M.MODE.RTH + elseif value == "HOLD" then + return M.MODE.POS_HOLD_ANGLE + elseif value == "CRUZ" then + return M.MODE.CRUISE + elseif value == "CRSH" then + return M.MODE.COURSE_HOLD + elseif value == "WP" then + return M.MODE.WAYPOINT + elseif value == "AH" then + return M.MODE.ALT_HOLD_ANGLE + elseif value == "ANGL" then + return M.MODE.ANGLE + elseif value == "HOR" then + return M.MODE.HORIZON + elseif value == "ANGH" then + return M.MODE.ANGLE_HOLD + elseif value == "LAND" then + return M.MODE.LANDING end - - return (A or 0) * 10000 + (B or 0) * 1000 + (C or 0) * 100 + (D or 0) * 10 + (E or 0) end -local function mapABCDEtoMode(abcde) +local function sportToModeID(abcde) local A, B, C, D, E = digits_ABCDE(abcde) if bit_is_set(A, 4) then return M.MODE.FAILSAFE end @@ -139,34 +110,29 @@ local function mapABCDEtoMode(abcde) return M.MODE.ACRO end -local function toABCDE(telemType, value) +local function valueToModeId(telemType, value) if telemType == "sport" then - return tonumber(value) or 0 + return sportToModeID(value or 0) elseif telemType == "crsf" then - return crsfToABCDE(tostring(value or "")) + return crsfToModeID(tostring(value or "")) else - return 0 + return nil end end function M.eval(telemType, value) - local abcde = toABCDE(telemType, value) - - if abcde == nil then return last_mode end - - local mode = mapABCDEtoMode(abcde) - - last_abcde = abcde - last_mode = mode + local mode_id = valueToModeId(telemType, value) + + if mode_id == nil then return last_mode_id end + + last_mode_id = mode_id - return mode + return mode_id end -function M.last_abcde() return last_abcde end function M.last_mode() return last_mode end function M.reset() - last_abcde = 0 - last_mode = M.MODE.DISARMED + last_mode_id = M.MODE.DISARMED end return M diff --git a/scripts/inav-dashboard/widget.lua b/scripts/inav-dashboard/widget.lua index aac9001..d8101d3 100644 --- a/scripts/inav-dashboard/widget.lua +++ b/scripts/inav-dashboard/widget.lua @@ -303,7 +303,7 @@ function widget.wakeup() local new_lock if fm == nil then new_lock = false - elseif fm == 2 then + elseif fm == 2 or fm == 100 or fm == 101 then new_lock = false else new_lock = true @@ -317,7 +317,7 @@ function widget.wakeup() local lat = sensors['gps_latitude'] local lon = sensors['gps_longitude'] if new_lock then - if (not sensors['home_latitude'] or sensors['home_latitude'] == 0) and lat and lon then + if (not sensors['home_latitude'] or sensors['home_latitude'] == 0 or fm == 103) and lat and lon then sensors['home_latitude'] = lat sensors['home_longitude'] = lon end