Fix bug with writing to the reserve time register.

This commit is contained in:
James Harton 2020-01-22 12:36:09 +13:00
parent 6f7c272eb2
commit 5b5110a4d1
2 changed files with 3 additions and 12 deletions

View file

@ -402,16 +402,7 @@ defmodule PCA9641 do
"""
@spec lock_request(t, boolean) :: {:ok, t} | {:error, term}
def lock_request(%PCA9641{conn: conn} = dev, value) when is_boolean(value) do
# with {:ok, conn} <- Registers.update_control(conn, &set_bit(&1, 0, value)),
# do: {:ok, %{dev | conn: conn}}
with {:ok, conn} <-
Registers.update_control(conn, fn data ->
Logger.warn("read CONTROL: #{inspect(data)}")
data = set_bit(data, 0, value)
Logger.warn("write CONTROL: #{inspect(data)}")
data
end),
with {:ok, conn} <- Registers.update_control(conn, &set_bit(&1, 0, value)),
do: {:ok, %{dev | conn: conn}}
end
@ -664,7 +655,7 @@ defmodule PCA9641 do
@spec reserve_time(t) :: {:ok, t} | {:error, term}
def reserve_time(%PCA9641{conn: conn} = dev, ms)
when is_integer(ms) and ms >= 0 and ms <= 0xFF do
with {:ok, conn} <- Registers.write_reserve_time(conn, ms), do: {:ok, %{dev | conn: conn}}
with {:ok, conn} <- Registers.write_reserve_time(conn, <<ms>>), do: {:ok, %{dev | conn: conn}}
end
def reserve_time(_conn, _ms), do: {:error, "Invalid milliseconds value"}

View file

@ -408,7 +408,7 @@ defmodule PCA9641Test do
test "sets the contents of the RESERVE_TIME register" do
Registers
|> expect(:write_reserve_time, 1, fn conn, ms ->
assert ms == 123
assert ms == <<123>>
{:ok, conn}
end)