This commit is contained in:
anlicheng 2023-08-10 11:32:06 +08:00
parent 39a3a91023
commit d8ce62f42c

View File

@ -15,7 +15,7 @@
%% API %% API
-export([start_link/2, get_name/1, get_pid/1, handle/2, reload/1, activate/2]). -export([start_link/2, get_name/1, get_pid/1, handle/2, reload/1, activate/2]).
-export([get_metric/1, publish_message/4, get_aes/1]). -export([get_metric/1, publish_message/4, get_aes/1]).
-export([has_session/1, create_session/2, attach_channel/2]). -export([create_session/2, attach_channel/2]).
%% gen_statem callbacks %% gen_statem callbacks
-export([init/1, format_status/2, handle_event/4, terminate/3, code_change/4, callback_mode/0]). -export([init/1, format_status/2, handle_event/4, terminate/3, code_change/4, callback_mode/0]).
@ -71,10 +71,6 @@ activate(Pid, Auth) when is_pid(Pid), is_boolean(Auth) ->
get_metric(Pid) when is_pid(Pid) -> get_metric(Pid) when is_pid(Pid) ->
gen_statem:call(Pid, get_metric). gen_statem:call(Pid, get_metric).
-spec has_session(Pid :: pid()) -> boolean().
has_session(Pid) when is_pid(Pid) ->
gen_statem:call(Pid, has_session).
-spec attach_channel(pid(), pid()) -> ok. -spec attach_channel(pid(), pid()) -> ok.
attach_channel(Pid, ChannelPid) when is_pid(Pid), is_pid(ChannelPid) -> attach_channel(Pid, ChannelPid) when is_pid(Pid), is_pid(ChannelPid) ->
gen_statem:call(Pid, {attach_channel, ChannelPid}). gen_statem:call(Pid, {attach_channel, ChannelPid}).
@ -160,10 +156,6 @@ handle_event({call, From}, get_metric, _, State) ->
handle_event({call, From}, get_aes, _, State = #state{aes = Aes}) -> handle_event({call, From}, get_aes, _, State = #state{aes = Aes}) ->
{keep_state, State, [{reply, From, {ok, Aes}}]}; {keep_state, State, [{reply, From, {ok, Aes}}]};
handle_event({call, From}, has_session, StateName, State) ->
HasSession = (StateName =:= session) orelse false,
{keep_state, State, [{reply, From, HasSession}]};
%% , ; aes类型的命令的时候session是存在的 %% , ; aes类型的命令的时候session是存在的
handle_event({call, From}, {publish_message, ReceiverPid, CommandType, {aes, Command0}}, session, State = #state{aes = AES, channel_pid = ChannelPid}) -> handle_event({call, From}, {publish_message, ReceiverPid, CommandType, {aes, Command0}}, session, State = #state{aes = AES, channel_pid = ChannelPid}) ->
Command = iot_cipher_aes:encrypt(AES, Command0), Command = iot_cipher_aes:encrypt(AES, Command0),