Skip to content

Commit 1637b9b

Browse files
author
CI
committed
Sync to GitHub
1 parent 2d6c578 commit 1637b9b

45 files changed

Lines changed: 613 additions & 491 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/bacnet/beam_types.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ defmodule BACnet.BeamTypes do
417417
:string
418418
end
419419

420+
# credo:disable-for-lines:50 Credo.Check.Refactor.CyclomaticComplexity
420421
# Remote type (such as Date.t), resolve it based on type
421422
defp field_typespec_to_bactype(
422423
{{:., _any3, [ast, type]}, _any, params},

lib/bacnet/internal.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ defmodule BACnet.Internal do
4040
(Logger.level() == :debug and Application.compile_env(:bacstack, :debug, false)) do
4141
defmacro log_debug(message_or_fun) do
4242
quote do
43+
# credo:disable-for-next-line Credo.Check.Warning.MissedMetadataKeyInLoggerConfig
4344
Logger.debug(unquote(message_or_fun), source: __MODULE__)
4445
end
4546
end

lib/bacnet/protocol/action_list.ex

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,23 @@ defmodule BACnet.Protocol.ActionList do
1919
@spec encode(t(), Keyword.t()) ::
2020
{:ok, ApplicationTags.encoding_list()} | {:error, term()}
2121
def encode(%__MODULE__{} = list, opts \\ []) do
22-
with {:ok, cmds} <-
23-
Enum.reduce_while(list.actions, {:ok, []}, fn
24-
cmd, {:ok, acc} ->
25-
case ActionCommand.encode(cmd, opts) do
26-
{:ok, encoded} -> {:cont, {:ok, [encoded | acc]}}
27-
{:error, _err} = err -> {:halt, err}
28-
end
29-
end) do
30-
cmdlist =
31-
cmds
32-
|> Enum.reverse()
33-
|> List.flatten()
22+
case Enum.reduce_while(list.actions, {:ok, []}, fn
23+
cmd, {:ok, acc} ->
24+
case ActionCommand.encode(cmd, opts) do
25+
{:ok, encoded} -> {:cont, {:ok, [encoded | acc]}}
26+
{:error, _err} = err -> {:halt, err}
27+
end
28+
end) do
29+
{:ok, cmds} ->
30+
cmdlist =
31+
cmds
32+
|> Enum.reverse()
33+
|> List.flatten()
3434

35-
{:ok, [{:constructed, {0, cmdlist, 0}}]}
36-
else
37-
{:error, _err} = err -> err
35+
{:ok, [{:constructed, {0, cmdlist, 0}}]}
36+
37+
{:error, _err} = err ->
38+
err
3839
end
3940
end
4041

@@ -47,24 +48,25 @@ defmodule BACnet.Protocol.ActionList do
4748
def parse(tags) when is_list(tags) do
4849
case tags do
4950
[{:constructed, {0, tags, _len}} | rest] ->
50-
with {:ok, {actions, _rest}} <-
51-
Enum.reduce_while(1..100_000//1, {:ok, {[], tags}}, fn
52-
_ind, {:ok, {acc, []}} ->
53-
{:halt, {:ok, {acc, []}}}
51+
case Enum.reduce_while(1..100_000//1, {:ok, {[], tags}}, fn
52+
_ind, {:ok, {acc, []}} ->
53+
{:halt, {:ok, {acc, []}}}
54+
55+
_ind, {:ok, {acc, tags}} ->
56+
case ActionCommand.parse(tags) do
57+
{:ok, {cmd, rest}} -> {:cont, {:ok, {[cmd | acc], rest}}}
58+
{:error, _err} = err -> {:halt, err}
59+
end
60+
end) do
61+
{:ok, {actions, _rest}} ->
62+
list = %__MODULE__{
63+
actions: Enum.reverse(actions)
64+
}
5465

55-
_ind, {:ok, {acc, tags}} ->
56-
case ActionCommand.parse(tags) do
57-
{:ok, {cmd, rest}} -> {:cont, {:ok, {[cmd | acc], rest}}}
58-
{:error, _err} = err -> {:halt, err}
59-
end
60-
end) do
61-
list = %__MODULE__{
62-
actions: Enum.reverse(actions)
63-
}
66+
{:ok, {list, rest}}
6467

65-
{:ok, {list, rest}}
66-
else
67-
{:error, _err} = err -> err
68+
{:error, _err} = err ->
69+
err
6870
end
6971

7072
_term ->

lib/bacnet/protocol/apdu/confirmed_service_request.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ defmodule BACnet.Protocol.APDU.ConfirmedServiceRequest do
9494
@doc """
9595
Converts the APDU into a service, if supported and possible.
9696
"""
97+
# credo:disable-for-lines:50 Credo.Check.Refactor.CyclomaticComplexity
9798
@spec to_service(t()) :: {:ok, service()} | {:error, term()} | :not_supported
9899
def to_service(%__MODULE__{} = apdu) do
99100
case apdu.service do

lib/bacnet/protocol/bacnet_date.ex

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,12 @@ defmodule BACnet.Protocol.BACnetDate do
7777
@spec parse(ApplicationTags.encoding_list()) ::
7878
{:ok, {t(), rest :: ApplicationTags.encoding_list()}} | {:error, term}
7979
def parse(tags) when is_list(tags) do
80-
with [{:date, %__MODULE__{} = date} | rest] <- tags do
81-
{:ok, {date, rest}}
82-
else
83-
_else -> {:error, :invalid_tags}
80+
case tags do
81+
[{:date, %__MODULE__{} = date} | rest] ->
82+
{:ok, {date, rest}}
83+
84+
_else ->
85+
{:error, :invalid_tags}
8486
end
8587
end
8688

lib/bacnet/protocol/bacnet_date_time.ex

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,17 @@ defmodule BACnet.Protocol.BACnetDateTime do
8282
@spec parse(ApplicationTags.encoding_list()) ::
8383
{:ok, {t(), rest :: ApplicationTags.encoding_list()}} | {:error, term}
8484
def parse(tags) when is_list(tags) do
85-
with [{:date, %BACnetDate{} = date}, {:time, %BACnetTime{} = time} | rest] <- tags do
86-
dt = %__MODULE__{
87-
date: date,
88-
time: time
89-
}
90-
91-
{:ok, {dt, rest}}
92-
else
93-
_else -> {:error, :invalid_tags}
85+
case tags do
86+
[{:date, %BACnetDate{} = date}, {:time, %BACnetTime{} = time} | rest] ->
87+
dt = %__MODULE__{
88+
date: date,
89+
time: time
90+
}
91+
92+
{:ok, {dt, rest}}
93+
94+
_else ->
95+
{:error, :invalid_tags}
9496
end
9597
end
9698

lib/bacnet/protocol/bacnet_time.ex

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,12 @@ defmodule BACnet.Protocol.BACnetTime do
7474
@spec parse(ApplicationTags.encoding_list()) ::
7575
{:ok, {t(), rest :: ApplicationTags.encoding_list()}} | {:error, term}
7676
def parse(tags) when is_list(tags) do
77-
with [{:time, %__MODULE__{} = time} | rest] <- tags do
78-
{:ok, {time, rest}}
79-
else
80-
_else -> {:error, :invalid_tags}
77+
case tags do
78+
[{:time, %__MODULE__{} = time} | rest] ->
79+
{:ok, {time, rest}}
80+
81+
_else ->
82+
{:error, :invalid_tags}
8183
end
8284
end
8385

lib/bacnet/protocol/bacnet_timestamp.ex

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,19 @@ defmodule BACnet.Protocol.BACnetTimestamp do
114114
end
115115

116116
defp do_parse({:constructed, {2, ts, _len}}) when is_list(ts) do
117-
with {:ok, {dt, _rest}} <- BACnetDateTime.parse(ts) do
118-
result = %__MODULE__{
119-
type: :datetime,
120-
datetime: dt,
121-
sequence_number: nil,
122-
time: nil
123-
}
117+
case BACnetDateTime.parse(ts) do
118+
{:ok, {dt, _rest}} ->
119+
result = %__MODULE__{
120+
type: :datetime,
121+
datetime: dt,
122+
sequence_number: nil,
123+
time: nil
124+
}
124125

125-
{:ok, result}
126-
else
127-
_term -> {:error, :invalid_tags}
126+
{:ok, result}
127+
128+
_term ->
129+
{:error, :invalid_tags}
128130
end
129131
end
130132

lib/bacnet/protocol/bvlc_forwarded_npdu.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ defmodule BACnet.Protocol.BvlcForwardedNPDU do
3636
def encode(npdu)
3737

3838
def encode(%__MODULE__{originating_port: port} = npdu)
39-
when is_integer(port) and port in 1..65535 do
39+
when is_integer(port) and port in 1..65_535 do
4040
with {:ok, ip} <-
4141
(case npdu.originating_ip do
4242
{ip_a, ip_b, ip_c, ip_d} -> {:ok, <<ip_a, ip_b, ip_c, ip_d>>}

lib/bacnet/protocol/daily_schedule.ex

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,23 @@ defmodule BACnet.Protocol.DailySchedule do
2424
@spec encode(t(), Keyword.t()) ::
2525
{:ok, ApplicationTags.encoding_list()} | {:error, term()}
2626
def encode(%__MODULE__{} = schedule, opts \\ []) do
27-
with {:ok, schedules} <-
28-
Enum.reduce_while(schedule.schedule, {:ok, []}, fn
29-
tv, {:ok, acc} ->
30-
case TimeValue.encode(tv, opts) do
31-
{:ok, encoded} -> {:cont, {:ok, [encoded | acc]}}
32-
{:error, _err} = err -> {:halt, err}
33-
end
34-
end) do
35-
day_schedule =
36-
schedules
37-
|> Enum.reverse()
38-
|> List.flatten()
27+
case Enum.reduce_while(schedule.schedule, {:ok, []}, fn
28+
tv, {:ok, acc} ->
29+
case TimeValue.encode(tv, opts) do
30+
{:ok, encoded} -> {:cont, {:ok, [encoded | acc]}}
31+
{:error, _err} = err -> {:halt, err}
32+
end
33+
end) do
34+
{:ok, schedules} ->
35+
day_schedule =
36+
schedules
37+
|> Enum.reverse()
38+
|> List.flatten()
3939

40-
{:ok, [{:constructed, {0, day_schedule, 0}}]}
41-
else
42-
{:error, _err} = err -> err
40+
{:ok, [{:constructed, {0, day_schedule, 0}}]}
41+
42+
{:error, _err} = err ->
43+
err
4344
end
4445
end
4546

@@ -52,24 +53,25 @@ defmodule BACnet.Protocol.DailySchedule do
5253
def parse(tags) when is_list(tags) do
5354
case tags do
5455
[{:constructed, {0, tags, _len}} | rest] ->
55-
with {:ok, schedules} when is_list(schedules) <-
56-
Enum.reduce_while(1..100_000//1, {:ok, {[], tags}}, fn
57-
_ind, {:ok, {acc, []}} ->
58-
{:halt, {:ok, acc}}
56+
case Enum.reduce_while(1..100_000//1, {:ok, {[], tags}}, fn
57+
_ind, {:ok, {acc, []}} ->
58+
{:halt, {:ok, acc}}
59+
60+
_ind, {:ok, {acc, tags}} ->
61+
case TimeValue.parse(tags) do
62+
{:ok, {tv, rest}} -> {:cont, {:ok, {[tv | acc], rest}}}
63+
{:error, _err} = err -> {:halt, err}
64+
end
65+
end) do
66+
{:ok, schedules} when is_list(schedules) ->
67+
schedule = %__MODULE__{
68+
schedule: Enum.reverse(schedules)
69+
}
5970

60-
_ind, {:ok, {acc, tags}} ->
61-
case TimeValue.parse(tags) do
62-
{:ok, {tv, rest}} -> {:cont, {:ok, {[tv | acc], rest}}}
63-
{:error, _err} = err -> {:halt, err}
64-
end
65-
end) do
66-
schedule = %__MODULE__{
67-
schedule: Enum.reverse(schedules)
68-
}
71+
{:ok, {schedule, rest}}
6972

70-
{:ok, {schedule, rest}}
71-
else
72-
{:error, _err} = err -> err
73+
{:error, _err} = err ->
74+
err
7375
end
7476

7577
_term ->

0 commit comments

Comments
 (0)