mirror of https://github.com/ArduPilot/ardupilot
AP_Periph: added reboot link to web UI
This commit is contained in:
parent
7c711d7525
commit
9904dca558
|
@ -198,6 +198,7 @@ local DYNAMIC_PAGES = {
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="mnt/">Filesystem Access</a></li>
|
<li><a href="mnt/">Filesystem Access</a></li>
|
||||||
|
<li><a href="?FWUPDATE">Reboot for Firmware Update</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<h2>Controller Status</h2>
|
<h2>Controller Status</h2>
|
||||||
|
@ -219,6 +220,15 @@ local DYNAMIC_PAGES = {
|
||||||
]]
|
]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reboot_counter = 0
|
||||||
|
|
||||||
|
local ACTION_PAGES = {
|
||||||
|
["/?FWUPDATE"] = function()
|
||||||
|
periph:can_printf("Rebooting for firmware update")
|
||||||
|
reboot_counter = 50
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
builtin javascript library functions
|
builtin javascript library functions
|
||||||
--]]
|
--]]
|
||||||
|
@ -835,6 +845,21 @@ local function Client(_sock, _idx)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if ACTION_PAGES[path] ~= nil then
|
||||||
|
DEBUG(string.format("Running ACTION %s", path))
|
||||||
|
local fn = ACTION_PAGES[path]
|
||||||
|
self.send_header(200, "OK", {["Content-Type"]=CONTENT_TEXT_HTML})
|
||||||
|
self.sendstring([[
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="2; url=/">
|
||||||
|
</head>
|
||||||
|
</html>
|
||||||
|
]])
|
||||||
|
fn()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if DYNAMIC_PAGES[path] ~= nil then
|
if DYNAMIC_PAGES[path] ~= nil then
|
||||||
self.file_download(path)
|
self.file_download(path)
|
||||||
return
|
return
|
||||||
|
@ -956,6 +981,13 @@ end
|
||||||
local function update()
|
local function update()
|
||||||
check_new_clients()
|
check_new_clients()
|
||||||
check_clients()
|
check_clients()
|
||||||
|
if reboot_counter then
|
||||||
|
reboot_counter = reboot_counter - 1
|
||||||
|
if reboot_counter == 0 then
|
||||||
|
periph:can_printf("Rebooting")
|
||||||
|
periph:reboot(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
return update,5
|
return update,5
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -368,8 +368,10 @@ void AP_Periph_FW::handle_begin_firmware_update(CanardInstance* canard_instance,
|
||||||
{
|
{
|
||||||
#if HAL_RAM_RESERVE_START >= 256
|
#if HAL_RAM_RESERVE_START >= 256
|
||||||
// setup information on firmware request at start of ram
|
// setup information on firmware request at start of ram
|
||||||
struct app_bootloader_comms *comms = (struct app_bootloader_comms *)HAL_RAM0_START;
|
auto *comms = (struct app_bootloader_comms *)HAL_RAM0_START;
|
||||||
memset(comms, 0, sizeof(struct app_bootloader_comms));
|
if (comms->magic != APP_BOOTLOADER_COMMS_MAGIC) {
|
||||||
|
memset(comms, 0, sizeof(*comms));
|
||||||
|
}
|
||||||
comms->magic = APP_BOOTLOADER_COMMS_MAGIC;
|
comms->magic = APP_BOOTLOADER_COMMS_MAGIC;
|
||||||
|
|
||||||
uavcan_protocol_file_BeginFirmwareUpdateRequest req;
|
uavcan_protocol_file_BeginFirmwareUpdateRequest req;
|
||||||
|
|
|
@ -181,6 +181,20 @@ void Networking_Periph::update(void)
|
||||||
p.update();
|
p.update();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HAL_RAM_RESERVE_START >= 256
|
||||||
|
if (!got_addresses && networking_lib.get_ip_active() != 0) {
|
||||||
|
got_addresses = true;
|
||||||
|
auto *comms = (struct app_bootloader_comms *)HAL_RAM0_START;
|
||||||
|
if (comms->magic != APP_BOOTLOADER_COMMS_MAGIC) {
|
||||||
|
memset(comms, 0, sizeof(*comms));
|
||||||
|
}
|
||||||
|
comms->magic = APP_BOOTLOADER_COMMS_MAGIC;
|
||||||
|
comms->ip = networking_lib.get_ip_active();
|
||||||
|
comms->netmask = networking_lib.get_netmask_active();
|
||||||
|
comms->gateway = networking_lib.get_gateway_active();
|
||||||
|
}
|
||||||
|
#endif // HAL_RAM_RESERVE_START
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAL_PERIPH_ENABLE_NETWORKING
|
#endif // HAL_PERIPH_ENABLE_NETWORKING
|
||||||
|
|
|
@ -62,6 +62,7 @@ private:
|
||||||
#endif // HAL_PERIPH_NETWORK_NUM_PASSTHRU
|
#endif // HAL_PERIPH_NETWORK_NUM_PASSTHRU
|
||||||
|
|
||||||
AP_Networking networking_lib;
|
AP_Networking networking_lib;
|
||||||
|
bool got_addresses;
|
||||||
|
|
||||||
#if AP_NETWORKING_BACKEND_PPP
|
#if AP_NETWORKING_BACKEND_PPP
|
||||||
AP_Int8 ppp_port;
|
AP_Int8 ppp_port;
|
||||||
|
|
Loading…
Reference in New Issue