fix device

This commit is contained in:
anlicheng 2023-08-31 19:05:47 +08:00
parent c92bfb70dd
commit c92f3ec921

View File

@ -49,8 +49,8 @@ is_activated(undefined) ->
is_activated(Pid) when is_pid(Pid) -> is_activated(Pid) when is_pid(Pid) ->
gen_statem:call(Pid, is_activated). gen_statem:call(Pid, is_activated).
-spec change_status(Pid :: pid(), NewStatus :: integer()) -> no_return(). -spec change_status(Pid :: pid() | undefined, NewStatus :: integer()) -> no_return().
change_status(undefined, _NewStatus) -> change_status(undefined, _) ->
ok; ok;
change_status(Pid, NewStatus) when is_pid(Pid), is_integer(NewStatus) -> change_status(Pid, NewStatus) when is_pid(Pid), is_integer(NewStatus) ->
gen_statem:cast(Pid, {change_status, NewStatus}). gen_statem:cast(Pid, {change_status, NewStatus}).
@ -114,19 +114,12 @@ callback_mode() ->
handle_event({call, From}, is_activated, StateName, State = #state{}) -> handle_event({call, From}, is_activated, StateName, State = #state{}) ->
{keep_state, State, [{reply, From, StateName =:= ?STATE_ACTIVATED}]}; {keep_state, State, [{reply, From, StateName =:= ?STATE_ACTIVATED}]};
%% , 线(线)
handle_event(cast, {change_status, ?DEVICE_OFFLINE}, ?STATE_ACTIVATED, State = #state{device_uuid = DeviceUUID}) ->
{ok, _} = device_bo:change_status(DeviceUUID, ?DEVICE_OFFLINE),
{keep_state, State#state{status = ?DEVICE_OFFLINE}};
%% 线线 %% 线线
handle_event(cast, {change_status, ?DEVICE_ONLINE}, ?STATE_ACTIVATED, State = #state{status = ?DEVICE_ONLINE}) -> handle_event(cast, {change_status, ?DEVICE_ONLINE}, ?STATE_ACTIVATED, State = #state{status = ?DEVICE_ONLINE}) ->
{keep_state, State}; {keep_state, State};
%% 线 %% ,
handle_event(cast, {change_status, ?DEVICE_ONLINE}, ?STATE_ACTIVATED, State = #state{device_uuid = DeviceUUID}) -> handle_event(cast, {change_status, NewStatus}, _, State = #state{device_uuid = DeviceUUID}) ->
{ok, _} = device_bo:change_status(DeviceUUID, ?DEVICE_ONLINE), {ok, _} = device_bo:change_status(DeviceUUID, NewStatus),
{keep_state, State#state{status = ?DEVICE_ONLINE}};
%% 线
handle_event(cast, {change_status, _}, _, State = #state{}) ->
{keep_state, State}; {keep_state, State};
%% %%