fix alarms

This commit is contained in:
anlicheng 2025-07-04 00:50:24 +08:00
parent 3561a3e3ad
commit 80c88d91f4
2 changed files with 4 additions and 10 deletions

View File

@ -55,11 +55,12 @@ parse(Input) when is_binary(Input) ->
false
end
end, Trees),
lager:debug("alarms is: ~p", [Alarms]),
case length(Modbus) == 1 of
true ->
NDevices = lists:map(fun(Device) -> merge_io(Device, Templates) end, Devices),
AST = #ast{modbus = hd(Modbus), devices = NDevices, alarms = Alarms },
AST = #ast{modbus = hd(Modbus), devices = NDevices},
{ok, AST};
false ->
{error, modbus_block_error}
@ -190,9 +191,7 @@ parse_ast0(#block{ident = <<"alarm", Name0/binary>>, props = Props}) ->
#modbus_alarm {
name = string:trim(Name0),
condition = map_of_binary(<<"condition">>, MapProps, <<>>),
hold_time = map_of_time(<<"hold_time">>, MapProps, 0),
actions = maps:get(<<"actions">>, MapProps, undefined),
recovery_actions = maps:get(<<"recovery_actions">>, MapProps, undefined)
hold_time = map_of_time(<<"hold_time">>, MapProps, 0)
}.
parse_ast1(Props) ->

View File

@ -94,7 +94,7 @@ start_link(OwnerPid, AST = #ast{}) when is_pid(OwnerPid) ->
%% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or
%% gen_statem:start_link/[3,4], this function is called by the new
%% process to initialize.
init([OwnerPid, AST = #ast{modbus = Modbus = #modbus{transport = Transport, error_log = ErrorLog, access_log = AccessLog}, devices = Devices, alarms = Alarms}]) ->
init([OwnerPid, AST = #ast{modbus = Modbus = #modbus{transport = Transport, error_log = ErrorLog, access_log = AccessLog}, devices = Devices}]) ->
%lager:debug("[modbus_service] ast is: ~p", [AST]),
lager:debug("[modbus_service] devices is: ~p", [Devices]),
@ -207,11 +207,6 @@ handle_event(info, {device_report, DeviceName, MetricName, Value, Uint}, ?CONNEC
OwnerPid ! {metric_data, DeviceName, MetricName, Value, Uint},
{keep_state, State};
handle_event(info, {device_alarm, AlarmName, HoldTime, Val}, ?CONNECTED, State = #state{owner_pid = OwnerPid}) ->
lager:debug("[modbus_service] get alarm device_name: ~p, name: ~p, value: ~p, uint: ~p", [DeviceName, MetricName, Value, Uint]),
% OwnerPid ! {metric_data, DeviceName, MetricName, Value, Uint},
{keep_state, State};
%% 广
handle_event(info, {broadcast, Key, Val}, ?CONNECTED, State = #state{alarm_pids = AlarmPids}) ->
%%