34 lines
919 B
Elixir
34 lines
919 B
Elixir
defmodule FarmbotCore do
|
|
@moduledoc """
|
|
Core Farmbot Services.
|
|
This includes
|
|
* Core global state management
|
|
* Data storage management
|
|
* Firmware management
|
|
* RPC and IPC management
|
|
|
|
"""
|
|
use Application
|
|
|
|
@doc false
|
|
def start(_, args), do: Supervisor.start_link(__MODULE__, args, name: __MODULE__)
|
|
|
|
def init([]) do
|
|
|
|
children = [
|
|
FarmbotCore.DepTracker,
|
|
FarmbotCore.Leds,
|
|
FarmbotCore.EctoMigrator,
|
|
FarmbotCore.BotState.Supervisor,
|
|
FarmbotCore.StorageSupervisor,
|
|
FarmbotCore.FirmwareTTYDetector,
|
|
FarmbotCore.FirmwareOpenTask,
|
|
FarmbotCore.FirmwareEstopTimer,
|
|
# Also error handling for a transport not starting ?
|
|
{FarmbotFirmware, transport: FarmbotFirmware.StubTransport, side_effects: FarmbotCore.FirmwareSideEffects},
|
|
FarmbotCeleryScript.Scheduler
|
|
]
|
|
Supervisor.init(children, [strategy: :one_for_one])
|
|
end
|
|
end
|