[stable] i hope
parent
a3b7058508
commit
1d4bfb5db5
2
FAQ.md
2
FAQ.md
|
@ -40,6 +40,6 @@ rm /data/* -rf
|
|||
```
|
||||
Or if you have a hdmi monitor plugged into your RPI you can use IEX
|
||||
```elixir
|
||||
Fw.factory_reset()
|
||||
Farmbot.factory_reset()
|
||||
```
|
||||
Or (probably the easiest) you can just flash a new SD Card.
|
||||
|
|
|
@ -2,7 +2,7 @@ use Mix.Config
|
|||
config :uart,
|
||||
baud: 115200
|
||||
|
||||
config :fb,
|
||||
config :farmbot,
|
||||
state_path: "/tmp/state"
|
||||
|
||||
config :json_rpc,
|
||||
|
|
|
@ -6,7 +6,7 @@ config :nerves, :firmware,
|
|||
config :uart,
|
||||
baud: 115200
|
||||
|
||||
config :fb,
|
||||
config :farmbot,
|
||||
state_path: "/state",
|
||||
dnsmasq_path: "/root/dnsmasq.lease"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ defmodule SafeStorage do
|
|||
"""
|
||||
require Logger
|
||||
use GenServer
|
||||
@state_path Application.get_env(:fb, :state_path)
|
||||
@state_path Application.get_env(:farmbot, :state_path)
|
||||
@block_device "/dev/mmcblk0p3"
|
||||
@fs_type "ext4"
|
||||
@env Mix.env
|
||||
|
@ -153,7 +153,7 @@ defmodule SafeStorage do
|
|||
|
||||
def terminate(:reset, _state) do
|
||||
System.cmd("umount", [@block_device])
|
||||
Fw.format_state_part
|
||||
Farmbot.format_state_part
|
||||
File.rm("#{@state_path}/STATE")
|
||||
:reset
|
||||
end
|
||||
|
|
|
@ -287,7 +287,7 @@ defmodule Farmbot.BotState do
|
|||
{:crash, state}
|
||||
error ->
|
||||
Logger.error("Something bad happened when logging in!: #{inspect error}")
|
||||
Fw.factory_reset
|
||||
Farmbot.factory_reset
|
||||
{:noreply, state}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
defmodule Fw do
|
||||
defmodule Farmbot do
|
||||
@moduledoc """
|
||||
Main entry point to the application.
|
||||
Basically just starts some supervisors.
|
||||
"""
|
||||
require Logger
|
||||
use Supervisor
|
||||
@state_path Application.get_env(:fb, :state_path)
|
||||
@state_path Application.get_env(:farmbot, :state_path)
|
||||
|
||||
@doc """
|
||||
Shortcut to Nerves.Firmware.reboot
|
||||
|
@ -47,29 +47,13 @@ defmodule Fw do
|
|||
end
|
||||
|
||||
def init([%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}])
|
||||
version: version, env: env}])
|
||||
do
|
||||
children = [
|
||||
# Storage that needs to persist across reboots.
|
||||
worker(SafeStorage, [env], restart: :permanent),
|
||||
|
||||
# master state tracker.
|
||||
worker(Farmbot.BotState,
|
||||
[%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}],
|
||||
restart: :permanent),
|
||||
|
||||
# something sarcastic
|
||||
worker(SSH, [env], restart: :permanent),
|
||||
|
||||
# these handle communications between the frontend and bot.
|
||||
supervisor(Mqtt.Supervisor, [[]], restart: :permanent ),
|
||||
supervisor(RPC.Supervisor, [[]], restart: :permanent ),
|
||||
|
||||
# Main controller stuff.
|
||||
supervisor(Farmbot.Supervisor, [[]], restart: :permanent)
|
||||
supervisor(Farmbot.Supervisor, [%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}], restart: :permanent)
|
||||
]
|
||||
opts = [strategy: :one_for_one, name: Fw]
|
||||
opts = [strategy: :one_for_one, name: Farmbot]
|
||||
supervise(children, opts)
|
||||
end
|
||||
|
||||
|
@ -79,8 +63,8 @@ defmodule Fw do
|
|||
{:ok, _} = fs_init(env)
|
||||
Logger.debug("Starting Firmware on Target: #{target}")
|
||||
Supervisor.start_link(__MODULE__,
|
||||
[%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}])
|
||||
[%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}])
|
||||
end
|
||||
|
||||
def factory_reset do
|
|
@ -2,8 +2,25 @@ defmodule Farmbot.Supervisor do
|
|||
require Logger
|
||||
use Supervisor
|
||||
|
||||
def init(_args) do
|
||||
def init(%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}) do
|
||||
children = [
|
||||
# Storage that needs to persist across reboots.
|
||||
worker(SafeStorage, [env], restart: :permanent),
|
||||
|
||||
# master state tracker.
|
||||
worker(Farmbot.BotState,
|
||||
[%{target: target, compat_version: compat_version,
|
||||
version: version, env: env}],
|
||||
restart: :permanent),
|
||||
|
||||
# something sarcastic
|
||||
worker(SSH, [env], restart: :permanent),
|
||||
|
||||
# these handle communications between the frontend and bot.
|
||||
supervisor(Mqtt.Supervisor, [[]], restart: :permanent ),
|
||||
supervisor(RPC.Supervisor, [[]], restart: :permanent ),
|
||||
|
||||
# handles communications between bot and arduino
|
||||
supervisor(Farmbot.Serial.Supervisor, [[]], restart: :permanent ),
|
||||
|
||||
|
@ -18,7 +35,7 @@ defmodule Farmbot.Supervisor do
|
|||
end
|
||||
|
||||
def start_link(args) do
|
||||
Logger.debug("Starting Controller")
|
||||
Logger.debug("Starting Farmbot")
|
||||
Supervisor.start_link(__MODULE__, args)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@ defmodule JsonRpc.Parser do
|
|||
%Response{result: result, error: error, id: id}
|
||||
end
|
||||
|
||||
def parse(blah) do
|
||||
def parse(_blah) do
|
||||
:not_valid
|
||||
end
|
||||
|
||||
|
|
6
mix.exs
6
mix.exs
|
@ -1,4 +1,4 @@
|
|||
defmodule Fw.Mixfile do
|
||||
defmodule Farmbot.Mixfile do
|
||||
use Mix.Project
|
||||
|
||||
def target(:prod) do
|
||||
|
@ -19,7 +19,7 @@ defmodule Fw.Mixfile do
|
|||
|> String.to_integer
|
||||
|
||||
def project do
|
||||
[app: :fw,
|
||||
[app: :farmbot,
|
||||
version: @version,
|
||||
target: target(Mix.env),
|
||||
archives: [nerves_bootstrap: "~> 0.1.4"],
|
||||
|
@ -33,7 +33,7 @@ defmodule Fw.Mixfile do
|
|||
end
|
||||
|
||||
def application do
|
||||
[mod: {Fw, [%{target: target(Mix.env), compat_version: @compat_version,
|
||||
[mod: {Farmbot, [%{target: target(Mix.env), compat_version: @compat_version,
|
||||
version: @version, env: Mix.env}]},
|
||||
applications: apps(Mix.env)]
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue