diff --git a/src/SCRIPTS/BF/battery_voltage.lua b/src/SCRIPTS/BF/battery_voltage.lua new file mode 100644 index 0000000..29d9ce8 --- /dev/null +++ b/src/SCRIPTS/BF/battery_voltage.lua @@ -0,0 +1,46 @@ +local MSP_SET_BATTERY_CONFIG = 210 +local MSP_BATTERY_CONFIG = 211 + +local batteryConfig = { + warningVoltage = 0, + minVoltage = 0, + batteryType = 0 +} + +local function processMspReply(cmd, payload, err) + if cmd == MSP_BATTERY_CONFIG and not err then + batteryConfig.warningVoltage = payload[1] + batteryConfig.minVoltage = payload[2] + batteryConfig.batteryType = payload[3] + end +end + +local function getBatteryConfig() + protocol.mspRead(MSP_BATTERY_CONFIG) + mspProcessTxQ() + processMspReply(mspPollReply()) +end + +local function setBatteryConfig() + local values = { + batteryConfig.warningVoltage, + batteryConfig.minVoltage, + batteryConfig.batteryType + } + protocol.mspWrite(MSP_SET_BATTERY_CONFIG, values) + mspProcessTxQ() + processMspReply(mspPollReply()) +end + +local function init() + getBatteryConfig() +end + +local function run(event) + if event == EVT_VIRTUAL_ENTER then + setBatteryConfig() + end + return 0 +end + +return { init = init, run = run } diff --git a/src/SCRIPTS/BF/pages.lua b/src/SCRIPTS/BF/pages.lua index 9763e1c..8ae2d3f 100644 --- a/src/SCRIPTS/BF/pages.lua +++ b/src/SCRIPTS/BF/pages.lua @@ -64,4 +64,6 @@ if apiVersion >= 1.45 and features.osdSD then PageFiles[#PageFiles + 1] = { title = "OSD Elements", script = "pos_osd.lua" } end +PageFiles[#PageFiles + 1] = { title = "Battery Settings", script = "battery_voltage.lua" } + return PageFiles diff --git a/src/SCRIPTS/BF/ui.lua b/src/SCRIPTS/BF/ui.lua index df45bba..cb98621 100644 --- a/src/SCRIPTS/BF/ui.lua +++ b/src/SCRIPTS/BF/ui.lua @@ -97,6 +97,7 @@ local function createPopupMenu() if apiVersion >= 1.44 then popupMenu[#popupMenu + 1] = { t = "board info", f = function() confirm("CONFIRM/pwm.lua") end } end + popupMenu[#popupMenu + 1] = { t = "battery settings", f = function() confirm("battery_voltage.lua") end } end local function processMspReply(cmd,rx_buf,err)