fix device

This commit is contained in:
anlicheng 2023-08-15 23:20:02 +08:00
parent 30c0d6c198
commit 5cc6665a3d

View File

@ -415,16 +415,22 @@ handle_event(info, {'EXIT', Pid, Reason}, StateName, State = #state{uuid = UUID,
false -> false ->
{keep_state, State}; {keep_state, State};
{value, {DeviceUUID, _}} -> {value, {DeviceUUID, _}} ->
%% device进程不一定能成功 %%
case iot_device:start_link(self(), DeviceUUID) of erlang:start_timer(5000, self(), {restart_device, DeviceUUID}),
{ok, DevicePid} -> {keep_state, State#state{device_map = maps:remove(DeviceUUID, DeviceMap)}}
%% DeviceUUID end;
NDeviceMap = maps:put(DeviceUUID, DevicePid, DeviceMap),
{keep_state, State#state{device_map = NDeviceMap}}; handle_event(info, {timeout, _, {restart_device, DeviceUUID}}, _, State = #state{uuid = UUID, device_map = DeviceMap}) ->
Error -> %% device进程不一定能成功
lager:warning("[iot_host] uuid: ~p, restart device: ~p, get error: ~p", [UUID, DeviceUUID, Error]), case catch iot_device:start_link(self(), DeviceUUID) of
{keep_state, State} {ok, DevicePid} ->
end lager:debug("[iot_host] uuid: ~p, restart device: ~p, success", [UUID, DeviceUUID]),
%% DeviceUUID
NDeviceMap = maps:put(DeviceUUID, DevicePid, DeviceMap),
{keep_state, State#state{device_map = NDeviceMap}};
Error ->
lager:warning("[iot_host] uuid: ~p, restart device: ~p, get error: ~p", [UUID, DeviceUUID, Error]),
{keep_state, State}
end; end;
handle_event(EventType, EventContent, StateName, State) -> handle_event(EventType, EventContent, StateName, State) ->