From 329cb902412bff36167c0f4cc594d8d833e8a306 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Mon, 21 Apr 2025 17:13:24 +0800 Subject: [PATCH] fix --- apps/efka/src/efka_agent.erl | 10 +++++++--- apps/efka/src/efka_codec.erl | 27 ++++++++++++++++++++++++++- efkamove | 3 +++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/apps/efka/src/efka_agent.erl b/apps/efka/src/efka_agent.erl index 2fd6b9d..4e03337 100644 --- a/apps/efka/src/efka_agent.erl +++ b/apps/efka/src/efka_agent.erl @@ -23,7 +23,8 @@ -record(state, { host :: string(), port :: integer(), - socket :: undefined | ssl:sslsocket() + socket :: undefined | ssl:sslsocket(), + packet_id = 1 }). %%%=================================================================== @@ -82,10 +83,13 @@ handle_cast(_Request, State = #state{}) -> {noreply, NewState :: #state{}} | {noreply, NewState :: #state{}, timeout() | hibernate} | {stop, Reason :: term(), NewState :: #state{}}). -handle_info({timeout, _, create_connection}, State = #state{host = Host, port = Port}) -> +handle_info({timeout, _, create_connection}, State = #state{host = Host, port = Port, packet_id = PacketId}) -> case connect(Host, Port) of {ok, Socket} -> - ok = ssl:send(Socket, <<"hello world">>), + AuthRequest = efka_codec:auth_request(PacketId), + + ok = ssl:send(Socket, AuthRequest), + lager:debug("[efka_agent] connected success"), {noreply, State#state{socket = Socket}}; {error, Reason} -> diff --git a/apps/efka/src/efka_codec.erl b/apps/efka/src/efka_codec.erl index 6b629ef..7a7f111 100644 --- a/apps/efka/src/efka_codec.erl +++ b/apps/efka/src/efka_codec.erl @@ -17,6 +17,31 @@ -define(PACKET_PUBLISH, 16#03). -define(PACKET_PUBLISH_RESPONSE, 16#04). +%% 主机端上报数据类型标识 +%% 建立到websocket的register关系 +-define(METHOD_AUTH, 16#00). +-define(METHOD_CREATE_SESSION, 16#01). + +-define(METHOD_DATA, 16#02). +-define(METHOD_PING, 16#03). +-define(METHOD_INFORM, 16#04). +-define(METHOD_FEEDBACK_STEP, 16#05). +-define(METHOD_FEEDBACK_RESULT, 16#06). +-define(METHOD_EVENT, 16#07). +%% ai识别的事件上报 +-define(METHOD_AI_EVENT, 16#08). + +%% 事件类型 +-define(EVENT_DEVICE, 16#01). +%% 主机的相关事件 +-define(EVENT_HOST, 16#02). + +%% ai相关的事件 +-define(EVENT_AI, 16#03). + +%% 指令相关 +-define(DIRECTIVE_ZD_CTRL, 16#01). + %% API -export([auth_request/1]). @@ -38,4 +63,4 @@ auth_request(PacketId) when is_integer(PacketId), PacketId > 0 -> timestamp = efka_util:timestamp() }), - <>. + <>. diff --git a/efkamove b/efkamove index d89688c..3d4a26c 100755 --- a/efkamove +++ b/efkamove @@ -10,5 +10,8 @@ sed -i '' 's/include(\"gpb.hrl\")/include_lib(\"gpb\/include\/gpb.hrl\")/g' mess #sed -i '' 's/sdlv_4_info/sdl_v4_info/g' sdlan_pb.erl #sed -i '' 's/sdlv_6_info/sdl_v6_info/g' sdlan_pb.erl +cp message_pb.hrl /usr/local/code/cloudkit/iot/apps/iot/include/ +cp message_pb.erl /usr/local/code/cloudkit/iot/apps/iot/src/proto/ + mv message_pb.hrl ./apps/efka/include/ mv message_pb.erl ./apps/efka/src/proto/