32 lines
905 B
Elixir
32 lines
905 B
Elixir
defmodule FarmbotOS.SysCalls.FactoryReset do
|
|
@moduledoc false
|
|
require FarmbotCore.Logger
|
|
alias FarmbotCore.{Asset, BotState}
|
|
alias FarmbotExt.API
|
|
|
|
def factory_reset("farmbot_os") do
|
|
_ = API.put!(API.client(), "/api/device", %{needs_reset: false})
|
|
|
|
FarmbotOS.System.factory_reset(
|
|
"Factory reset requested by Sequence or frontend",
|
|
true
|
|
)
|
|
|
|
:ok
|
|
end
|
|
|
|
def factory_reset("arduino_firmware") do
|
|
FarmbotCore.Logger.warn(1, "Arduino Firmware going down for factory reset!")
|
|
|
|
id = Asset.firmware_config(:id)
|
|
if id, do: Asset.delete_firmware_config!(id)
|
|
|
|
_ = API.delete!(API.client(), "/api/firmware_config")
|
|
_ = API.get!(API.client(), "/api/firmware_config")
|
|
_ = API.put!(API.client(), "/api/firmware_config", %{api_migrated: true})
|
|
BotState.set_sync_status("maintenance")
|
|
FarmbotOS.System.reboot("Arduino factory reset")
|
|
:ok
|
|
end
|
|
end
|