changed
CHANGELOG.md
|
@@ -1,5 +1,10 @@
|
1
1
|
# Release Notes
|
2
2
|
|
3
|
+ ## v0.6.0
|
4
|
+
|
5
|
+ * Enhancements
|
6
|
+ * Changed from `nerves_uart` to `circuits_uart`
|
7
|
+
|
3
8
|
## v0.5.0
|
4
9
|
|
5
10
|
* Enhancements
|
changed
hex_metadata.config
|
@@ -3,30 +3,32 @@
|
3
3
|
{<<"description">>,<<"Hardware Abstraction Layer for Nerves Devices">>}.
|
4
4
|
{<<"elixir">>,<<"~> 1.4">>}.
|
5
5
|
{<<"files">>,
|
6
|
- [<<"lib">>,<<"lib/nerves_hal">>,<<"lib/nerves_hal.ex">>,
|
7
|
- <<"lib/nerves_hal/application.ex">>,<<"lib/nerves_hal/device">>,
|
8
|
- <<"lib/nerves_hal/device.ex">>,<<"lib/nerves_hal/device/adapter">>,
|
9
|
- <<"lib/nerves_hal/device/adapter.ex">>,
|
10
|
- <<"lib/nerves_hal/device/adapter/connection.ex">>,
|
6
|
+ [<<"lib">>,<<"lib/nerves_hal.ex">>,<<"lib/nerves_hal">>,
|
7
|
+ <<"lib/nerves_hal/application.ex">>,<<"lib/nerves_hal/device.ex">>,
|
8
|
+ <<"lib/nerves_hal/device">>,<<"lib/nerves_hal/device/spec.ex">>,
|
11
9
|
<<"lib/nerves_hal/device/adapters">>,
|
12
|
- <<"lib/nerves_hal/device/adapters/hidraw.ex">>,
|
13
10
|
<<"lib/nerves_hal/device/adapters/tty.ex">>,
|
14
|
- <<"lib/nerves_hal/device/spec.ex">>,<<"lib/nerves_hal/device/tree.ex">>,
|
11
|
+ <<"lib/nerves_hal/device/adapters/hidraw.ex">>,
|
12
|
+ <<"lib/nerves_hal/device/tree.ex">>,<<"lib/nerves_hal/device/adapter.ex">>,
|
15
13
|
<<".formatter.exs">>,<<"mix.exs">>,<<"README.md">>,<<"LICENSE">>,
|
16
14
|
<<"CHANGELOG.md">>]}.
|
17
15
|
{<<"licenses">>,[<<"Apache 2.0">>]}.
|
18
16
|
{<<"links">>,[{<<"Github">>,<<"https://github.com/letoteteam/nerves_hal">>}]}.
|
19
|
- {<<"maintainers">>,[<<"Justin Schneck">>]}.
|
20
17
|
{<<"name">>,<<"nerves_hal">>}.
|
21
18
|
{<<"requirements">>,
|
22
|
- [[{<<"app">>,<<"gen_stage">>},
|
19
|
+ [[{<<"app">>,<<"system_registry">>},
|
20
|
+ {<<"name">>,<<"system_registry">>},
|
21
|
+ {<<"optional">>,false},
|
22
|
+ {<<"repository">>,<<"hexpm">>},
|
23
|
+ {<<"requirement">>,<<"~> 0.7">>}],
|
24
|
+ [{<<"app">>,<<"gen_stage">>},
|
23
25
|
{<<"name">>,<<"gen_stage">>},
|
24
26
|
{<<"optional">>,false},
|
25
27
|
{<<"repository">>,<<"hexpm">>},
|
26
28
|
{<<"requirement">>,<<"~> 0.13">>}],
|
27
|
- [{<<"app">>,<<"system_registry">>},
|
28
|
- {<<"name">>,<<"system_registry">>},
|
29
|
- {<<"optional">>,false},
|
29
|
+ [{<<"app">>,<<"circuits_uart">>},
|
30
|
+ {<<"name">>,<<"circuits_uart">>},
|
31
|
+ {<<"optional">>,true},
|
30
32
|
{<<"repository">>,<<"hexpm">>},
|
31
|
- {<<"requirement">>,<<"~> 0.7">>}]]}.
|
32
|
- {<<"version">>,<<"0.5.0">>}.
|
33
|
+ {<<"requirement">>,<<"~> 1.3">>}]]}.
|
34
|
+ {<<"version">>,<<"0.6.0">>}.
|
removed
lib/nerves_hal/device/adapter/connection.ex
|
@@ -1,5 +0,0 @@
|
1
|
- defmodule Nerves.HAL.Device.Adapter.Connection do
|
2
|
- @callback handle_data_in(device :: Device.t(), data :: term, state :: term) ::
|
3
|
- {:noreply, state :: term}
|
4
|
- | {:disconnect, state :: term}
|
5
|
- end
|
changed
lib/nerves_hal/device/adapters/tty.ex
|
@@ -1,14 +1,15 @@
|
1
|
- if Code.ensure_loaded?(Nerves.UART) do
|
1
|
+ if Code.ensure_loaded?(Circuits.UART) do
|
2
2
|
defmodule Nerves.HAL.Device.Adapters.Tty do
|
3
3
|
use Nerves.HAL.Device.Adapter, subsystem: "tty"
|
4
4
|
|
5
|
+ alias Circuits.UART
|
5
6
|
require Logger
|
6
7
|
|
7
8
|
def attributes(device) do
|
8
9
|
<<"/dev/", device_file::binary>> = Nerves.HAL.Device.device_file(device)
|
9
10
|
|
10
11
|
info =
|
11
|
- Nerves.UART.enumerate()
|
12
|
+ UART.enumerate()
|
12
13
|
|> Enum.find(fn {dev_file, _} -> dev_file == device_file end)
|
13
14
|
|
14
15
|
case info do
|
|
@@ -20,9 +21,9 @@ if Code.ensure_loaded?(Nerves.UART) do
|
20
21
|
def handle_connect(device, s) do
|
21
22
|
case Nerves.HAL.Device.device_file(device) do
|
22
23
|
<<"/dev/", devfile::binary>> ->
|
23
|
- {:ok, pid} = Nerves.UART.start_link()
|
24
|
- Nerves.UART.configure(pid, s.opts)
|
25
|
- Nerves.UART.open(pid, devfile, s.opts)
|
24
|
+ {:ok, pid} = UART.start_link()
|
25
|
+ UART.configure(pid, s.opts)
|
26
|
+ UART.open(pid, devfile, s.opts)
|
26
27
|
{:ok, Map.put(s, :driver, pid)}
|
27
28
|
|
28
29
|
_ ->
|
|
@@ -30,7 +31,7 @@ if Code.ensure_loaded?(Nerves.UART) do
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
33
|
- def handle_info({:nerves_uart, _dev, message}, s) do
|
34
|
+ def handle_info({:circuits_uart, _dev, message}, s) do
|
34
35
|
{:data_in, message, s}
|
35
36
|
end
|
36
37
|
end
|
changed
lib/nerves_hal/device/spec.ex
|
@@ -5,6 +5,10 @@ defmodule Nerves.HAL.Device.Spec do
|
5
5
|
|
6
6
|
@callback handle_connect(device :: Device.t(), state :: term) :: {:noreply, new_state :: term}
|
7
7
|
|
8
|
+ @callback handle_data_in(device :: Device.t(), data :: term, state :: term) ::
|
9
|
+ {:noreply, state :: term}
|
10
|
+ | {:disconnect, state :: term}
|
11
|
+
|
8
12
|
@callback handle_discover(device :: Device.t(), state :: term) ::
|
9
13
|
{:connect, new_state :: term}
|
10
14
|
| {:noreply, new_state :: term}
|
|
@@ -30,7 +34,6 @@ defmodule Nerves.HAL.Device.Spec do
|
30
34
|
|
31
35
|
quote location: :keep do
|
32
36
|
@behaviour Nerves.HAL.Device.Spec
|
33
|
- @behaviour Nerves.HAL.Device.Adapter.Connection
|
34
37
|
|
35
38
|
@adapter unquote(adapter)
|
36
39
|
@adapter_opts unquote(opts)
|
changed
mix.exs
|
@@ -6,7 +6,7 @@ defmodule Nerves.HAL.Mixfile do
|
6
6
|
def project do
|
7
7
|
[
|
8
8
|
app: @app,
|
9
|
- version: "0.5.0",
|
9
|
+ version: "0.6.0",
|
10
10
|
elixir: "~> 1.4",
|
11
11
|
build_embedded: Mix.env() == :prod,
|
12
12
|
start_permanent: Mix.env() == :prod,
|
|
@@ -25,7 +25,8 @@ defmodule Nerves.HAL.Mixfile do
|
25
25
|
[
|
26
26
|
{:system_registry, "~> 0.7"},
|
27
27
|
{:gen_stage, "~> 0.13"},
|
28
|
- {:ex_doc, "~> 0.18", only: :dev}
|
28
|
+ {:ex_doc, "~> 0.18", only: :dev},
|
29
|
+ {:circuits_uart, "~> 1.3", optional: true}
|
29
30
|
]
|
30
31
|
end
|