Add a button to update the samd's firmware

custom
jacqueline 1 year ago
parent 7f630cebdd
commit 727847017d
  1. 52
      lua/settings.lua
  2. 8
      src/lua/lua_version.cpp

@ -403,6 +403,38 @@ local DatabaseSettings = SettingsScreen:new {
end end
} }
local SamdConfirmation = SettingsScreen:new {
title = "Are you sure?",
createUi = function(self)
SettingsScreen.createUi(self)
self.content:Label {
w = lvgl.PCT(100),
text = "After selecting 'flash', copy the new UF2 file onto the USB drive that appears. The screen will be blank until the update is finished.",
long_mode = lvgl.LABEL.LONG_WRAP,
}
local button_container = self.content:Object {
w = lvgl.PCT(100),
h = lvgl.SIZE_CONTENT,
flex = {
flex_direction = "row",
justify_content = "center",
align_items = "space-evenly",
align_content = "center",
},
pad_top = 4,
pad_column = 4,
}
button_container:add_style(styles.list_item)
local update = button_container:Button {}
update:Label { text = "Flash" }
update:onClicked(function()
require("version").update_samd()
end)
end
}
local FirmwareSettings = SettingsScreen:new { local FirmwareSettings = SettingsScreen:new {
title = "Firmware", title = "Firmware",
createUi = function(self) createUi = function(self)
@ -411,6 +443,26 @@ local FirmwareSettings = SettingsScreen:new {
widgets.Row(self.content, "ESP32", version.esp()) widgets.Row(self.content, "ESP32", version.esp())
widgets.Row(self.content, "SAMD21", version.samd()) widgets.Row(self.content, "SAMD21", version.samd())
widgets.Row(self.content, "Collator", version.collator()) widgets.Row(self.content, "Collator", version.collator())
local button_container = self.content:Object {
w = lvgl.PCT(100),
h = lvgl.SIZE_CONTENT,
flex = {
flex_direction = "row",
justify_content = "center",
align_items = "space-evenly",
align_content = "center",
},
pad_top = 4,
pad_column = 4,
}
button_container:add_style(styles.list_item)
local update = button_container:Button {}
update:Label { text = "Update SAMD21" }
update:onClicked(function()
backstack.push(SamdConfirmation:new())
end)
end end
} }

@ -34,6 +34,13 @@ static auto samd(lua_State* L) -> int {
return 1; return 1;
} }
static auto update_samd(lua_State* L) -> int {
Bridge* instance = Bridge::Get(L);
auto& samd = instance->services().samd();
samd.ResetToFlashSamd();
return 0;
}
static auto collator(lua_State* L) -> int { static auto collator(lua_State* L) -> int {
Bridge* instance = Bridge::Get(L); Bridge* instance = Bridge::Get(L);
auto& collator = instance->services().collator(); auto& collator = instance->services().collator();
@ -45,6 +52,7 @@ static auto collator(lua_State* L) -> int {
static const struct luaL_Reg kVersionFuncs[] = {{"esp", esp}, static const struct luaL_Reg kVersionFuncs[] = {{"esp", esp},
{"samd", samd}, {"samd", samd},
{"collator", collator}, {"collator", collator},
{"update_samd", update_samd},
{NULL, NULL}}; {NULL, NULL}};
static auto lua_version(lua_State* L) -> int { static auto lua_version(lua_State* L) -> int {

Loading…
Cancel
Save