From ca24499da49ee278f76395cf4c8ea27d4083ff82 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Wed, 13 May 2026 14:59:24 +0800 Subject: [PATCH] fix --- Dockerfile | 2 +- README.md | 2 +- .../include/emqtt.hrl | 0 .../include/light.hrl} | 0 .../src/efka_client.erl | 8 +-- .../src/emqtt/emqtt.erl | 56 +++++++++---------- .../src/emqtt/emqtt_frame.erl | 18 +++--- .../src/emqtt/emqtt_props.erl | 4 +- .../src/emqtt/emqtt_sock.erl | 6 +- .../src/http_protocol.erl | 0 .../src/light.app.src} | 4 +- .../src/light_app.erl} | 10 ++-- .../src/light_args.erl} | 8 +-- .../src/light_device.erl} | 14 ++--- .../src/light_device_sup.erl} | 12 ++-- .../src/light_logger.erl} | 2 +- .../src/light_mqtt_subscriber.erl} | 16 +++--- .../src/light_sup.erl} | 34 +++++------ boot.sh | 2 +- build.sh | 2 +- config/sys-dev.config | 4 +- config/sys-prod.config | 6 +- config/vm.args | 4 +- rebar.config | 4 +- run | 2 +- stop.sh | 2 +- 26 files changed, 111 insertions(+), 111 deletions(-) rename apps/{power_gateway => light}/include/emqtt.hrl (100%) rename apps/{power_gateway/include/power_gateway.hrl => light/include/light.hrl} (100%) rename apps/{power_gateway => light}/src/efka_client.erl (98%) rename apps/{power_gateway => light}/src/emqtt/emqtt.erl (97%) rename apps/{power_gateway => light}/src/emqtt/emqtt_frame.erl (98%) rename apps/{power_gateway => light}/src/emqtt/emqtt_props.erl (99%) rename apps/{power_gateway => light}/src/emqtt/emqtt_sock.erl (95%) rename apps/{power_gateway => light}/src/http_protocol.erl (100%) rename apps/{power_gateway/src/power_gateway.app.src => light/src/light.app.src} (81%) rename apps/{power_gateway/src/power_gateway_app.erl => light/src/light_app.erl} (79%) rename apps/{power_gateway/src/power_gateway_args.erl => light/src/light_args.erl} (94%) rename apps/{power_gateway/src/power_device.erl => light/src/light_device.erl} (94%) rename apps/{power_gateway/src/power_device_sup.erl => light/src/light_device_sup.erl} (90%) rename apps/{power_gateway/src/power_logger.erl => light/src/light_logger.erl} (99%) rename apps/{power_gateway/src/power_gateway_mqtt_subscriber.erl => light/src/light_mqtt_subscriber.erl} (93%) rename apps/{power_gateway/src/power_gateway_sup.erl => light/src/light_sup.erl} (73%) diff --git a/Dockerfile b/Dockerfile index 4e15c39..8949b53 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,3 @@ FROM erlang:25.3 -CMD /data/power_gateway/bin/power_gateway foreground \ No newline at end of file +CMD /data/light/bin/light foreground \ No newline at end of file diff --git a/README.md b/README.md index 1af784d..7928a39 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -power_gateway +light ===== An OTP application diff --git a/apps/power_gateway/include/emqtt.hrl b/apps/light/include/emqtt.hrl similarity index 100% rename from apps/power_gateway/include/emqtt.hrl rename to apps/light/include/emqtt.hrl diff --git a/apps/power_gateway/include/power_gateway.hrl b/apps/light/include/light.hrl similarity index 100% rename from apps/power_gateway/include/power_gateway.hrl rename to apps/light/include/light.hrl diff --git a/apps/power_gateway/src/efka_client.erl b/apps/light/src/efka_client.erl similarity index 98% rename from apps/power_gateway/src/efka_client.erl rename to apps/light/src/efka_client.erl index 47dd03b..cb49751 100644 --- a/apps/power_gateway/src/efka_client.erl +++ b/apps/light/src/efka_client.erl @@ -389,7 +389,7 @@ unpack(<>) -> %%%=================================================================== handle_poll_command(#{<<"device_uuid">> := DeviceUUID, <<"command">> := <<"query_status">>}) when is_binary(DeviceUUID) -> - case power_device:get_pid(DeviceUUID) of + case light_device:get_pid(DeviceUUID) of undefined -> #{ <<"c">> => 1, @@ -403,7 +403,7 @@ handle_poll_command(#{<<"device_uuid">> := DeviceUUID, <<"command">> := <<"query 0 => <<"离线"/utf8>>, 1 => <<"在线"/utf8>> }, - {ok, Status} = power_device:poll_status(Pid), + {ok, Status} = light_device:poll_status(Pid), #{ <<"c">> => 1, <<"r">> => #{ @@ -415,12 +415,12 @@ handle_poll_command(#{<<"device_uuid">> := DeviceUUID, <<"command">> := <<"query -spec handle_param(Params :: map()) -> ok | {error, Reason :: binary()}. handle_param(Params) when is_map(Params) -> - power_gateway_args:push_param(Params), + light_args:push_param(Params), ok. -spec handle_metric(Metric :: list()) -> ok | {error, Reason :: binary()}. handle_metric(Metric) when is_list(Metric) -> - power_gateway_args:push_metric(Metric), + light_args:push_metric(Metric), ok. -spec handle_stream_call(ServiceName :: binary(), Fields :: list(), Tag :: map()) -> diff --git a/apps/power_gateway/src/emqtt/emqtt.erl b/apps/light/src/emqtt/emqtt.erl similarity index 97% rename from apps/power_gateway/src/emqtt/emqtt.erl rename to apps/light/src/emqtt/emqtt.erl index 586c828..7030434 100644 --- a/apps/power_gateway/src/emqtt/emqtt.erl +++ b/apps/light/src/emqtt/emqtt.erl @@ -45,20 +45,20 @@ -export_type([host/0 , option/0 , properties/0 , payload/0 , pubopt/0 , subopt/0 , mqtt_msg/0 , client/0]). --type(host() :: inet:ip_address() | inet:hostname()). +-type host() :: inet:ip_address() | inet:hostname(). %% Message handler is a set of callbacks defined to handle MQTT messages %% as well as the disconnect event. -define(NO_MSG_HDLR, undefined). --type(mfas() :: {module(), atom(), list()} | {function(), list()}). +-type mfas() :: {module(), atom(), list()} | {function(), list()}. --type(msg_handler() :: #{puback := fun((_) -> any()) | mfas(), +-type msg_handler() :: #{puback := fun((_) -> any()) | mfas(), publish := fun((emqx_types:message()) -> any()) | mfas(), disconnected := fun(({reason_code(), _Properties :: term()}) -> any()) | mfas() - }). + }. --type(option() :: {name, atom()} +-type option() :: {name, atom()} | {owner, pid()} | {msg_handler, msg_handler()} | {host, host()} @@ -86,34 +86,34 @@ | {auto_ack, boolean()} | {ack_timeout, pos_integer()} | {force_ping, boolean()} - | {properties, properties()}). + | {properties, properties()}. --type(maybe(T) :: undefined | T). --type(topic() :: binary()). --type(payload() :: iodata()). --type(packet_id() :: 0..16#FFFF). --type(reason_code() :: 0..16#FF). --type(properties() :: #{atom() => term()}). --type(version() :: ?MQTT_PROTO_V3 +-type maybe_t(T) :: undefined | T. +-type topic() :: binary(). +-type payload() :: iodata(). +-type packet_id() :: 0..16#FFFF. +-type reason_code() :: 0..16#FF. +-type properties() :: #{atom() => term()}. +-type version() :: ?MQTT_PROTO_V3 | ?MQTT_PROTO_V4 - | ?MQTT_PROTO_V5). --type(qos() :: ?QOS_0 | ?QOS_1 | ?QOS_2). --type(qos_name() :: qos0 | at_most_once | + | ?MQTT_PROTO_V5. +-type qos() :: ?QOS_0 | ?QOS_1 | ?QOS_2. +-type qos_name() :: qos0 | at_most_once | qos1 | at_least_once | - qos2 | exactly_once). --type(pubopt() :: {retain, boolean()} - | {qos, qos() | qos_name()}). --type(subopt() :: {rh, 0 | 1 | 2} + qos2 | exactly_once. +-type pubopt() :: {retain, boolean()} + | {qos, qos() | qos_name()}. +-type subopt() :: {rh, 0 | 1 | 2} | {rap, boolean()} | {nl, boolean()} - | {qos, qos() | qos_name()}). + | {qos, qos() | qos_name()}. --type(subscribe_ret() :: - {ok, properties(), [reason_code()]} | {error, term()}). +-type subscribe_ret() :: + {ok, properties(), [reason_code()]} | {error, term()}. --type(client() :: pid() | atom()). +-type client() :: pid() | atom(). --opaque(mqtt_msg() :: #mqtt_msg{}). +-opaque mqtt_msg() :: #mqtt_msg{}. -record(state, { name :: atom(), @@ -128,12 +128,12 @@ bridge_mode :: boolean(), clientid :: binary(), clean_start :: boolean(), - username :: maybe(binary()), - password :: maybe(binary()), + username :: maybe_t(binary()), + password :: maybe_t(binary()), proto_ver :: version(), proto_name :: iodata(), keepalive :: non_neg_integer(), - keepalive_timer :: maybe(reference()), + keepalive_timer :: maybe_t(reference()), force_ping :: boolean(), paused :: boolean(), will_flag :: boolean(), diff --git a/apps/power_gateway/src/emqtt/emqtt_frame.erl b/apps/light/src/emqtt/emqtt_frame.erl similarity index 98% rename from apps/power_gateway/src/emqtt/emqtt_frame.erl rename to apps/light/src/emqtt/emqtt_frame.erl index 96393f3..1564f4a 100644 --- a/apps/power_gateway/src/emqtt/emqtt_frame.erl +++ b/apps/light/src/emqtt/emqtt_frame.erl @@ -24,22 +24,22 @@ -export_type([options/0, parse_state/0, parse_result/0, serialize_fun/0]). --type(version() :: ?MQTT_PROTO_V3 +-type version() :: ?MQTT_PROTO_V3 | ?MQTT_PROTO_V4 - | ?MQTT_PROTO_V5). + | ?MQTT_PROTO_V5. --type(options() :: #{strict_mode => boolean(), +-type options() :: #{strict_mode => boolean(), max_size => 1..?MAX_PACKET_SIZE, - version => version()}). + version => version()}. --opaque(parse_state() :: {none, options()} | cont_fun()). +-opaque parse_state() :: {none, options()} | cont_fun(). --opaque(parse_result() :: {more, cont_fun()} - | {ok, #mqtt_packet{}, binary(), parse_state()}). +-opaque parse_result() :: {more, cont_fun()} + | {ok, #mqtt_packet{}, binary(), parse_state()}. --type(cont_fun() :: fun((binary()) -> parse_result())). +-type cont_fun() :: fun((binary()) -> parse_result()). --type(serialize_fun() :: fun((emqx_types:packet()) -> iodata())). +-type serialize_fun() :: fun((emqx_types:packet()) -> iodata()). -define(none(Options), {none, Options}). diff --git a/apps/power_gateway/src/emqtt/emqtt_props.erl b/apps/light/src/emqtt/emqtt_props.erl similarity index 99% rename from apps/power_gateway/src/emqtt/emqtt_props.erl rename to apps/light/src/emqtt/emqtt_props.erl index a30f037..f1235c2 100644 --- a/apps/power_gateway/src/emqtt/emqtt_props.erl +++ b/apps/light/src/emqtt/emqtt_props.erl @@ -24,8 +24,8 @@ %% For tests -export([all/0]). --type(prop_name() :: atom()). --type(prop_id() :: pos_integer()). +-type prop_name() :: atom(). +-type prop_id() :: pos_integer(). -define(PROPS_TABLE, #{16#01 => {'Payload-Format-Indicator', 'Byte', [?PUBLISH]}, diff --git a/apps/power_gateway/src/emqtt/emqtt_sock.erl b/apps/light/src/emqtt/emqtt_sock.erl similarity index 95% rename from apps/power_gateway/src/emqtt/emqtt_sock.erl rename to apps/light/src/emqtt/emqtt_sock.erl index 05b234f..cd09c79 100644 --- a/apps/power_gateway/src/emqtt/emqtt_sock.erl +++ b/apps/light/src/emqtt/emqtt_sock.erl @@ -25,11 +25,11 @@ ssl }). --type(socket() :: inet:socket() | #ssl_socket{}). +-type socket() :: inet:socket() | #ssl_socket{}. --type(sockname() :: {inet:ip_address(), inet:port_number()}). +-type sockname() :: {inet:ip_address(), inet:port_number()}. --type(option() :: gen_tcp:connect_option() | {ssl_opts, [ssl:ssl_option()]}). +-type option() :: gen_tcp:connect_option() | {ssl_opts, [ssl:ssl_option()]}. -export_type([socket/0, option/0]). diff --git a/apps/power_gateway/src/http_protocol.erl b/apps/light/src/http_protocol.erl similarity index 100% rename from apps/power_gateway/src/http_protocol.erl rename to apps/light/src/http_protocol.erl diff --git a/apps/power_gateway/src/power_gateway.app.src b/apps/light/src/light.app.src similarity index 81% rename from apps/power_gateway/src/power_gateway.app.src rename to apps/light/src/light.app.src index 8281d8f..bdcdd83 100644 --- a/apps/power_gateway/src/power_gateway.app.src +++ b/apps/light/src/light.app.src @@ -1,8 +1,8 @@ -{application, power_gateway, +{application, light, [{description, "An OTP application"}, {vsn, "1.0"}, {registered, []}, - {mod, {power_gateway_app, []}}, + {mod, {light_app, []}}, {applications, [ hackney, diff --git a/apps/power_gateway/src/power_gateway_app.erl b/apps/light/src/light_app.erl similarity index 79% rename from apps/power_gateway/src/power_gateway_app.erl rename to apps/light/src/light_app.erl index 111832a..6c4b676 100644 --- a/apps/power_gateway/src/power_gateway_app.erl +++ b/apps/light/src/light_app.erl @@ -1,16 +1,16 @@ %%%------------------------------------------------------------------- -%% @doc power_gateway public API +%% @doc light public API %% @end %%%------------------------------------------------------------------- --module(power_gateway_app). +-module(light_app). -behaviour(application). -export([start/2, stop/1]). start(_StartType, _StartArgs) -> - SupResult = power_gateway_sup:start_link(), + SupResult = light_sup:start_link(), start_http_server(), SupResult. @@ -20,7 +20,7 @@ stop(_State) -> %% internal functions start_http_server() -> - {ok, Props} = application:get_env(power_gateway, http_server), + {ok, Props} = application:get_env(light, http_server), Acceptors = proplists:get_value(acceptors, Props, 50), MaxConnections = proplists:get_value(max_connections, Props, 10240), Backlog = proplists:get_value(backlog, Props, 1024), @@ -41,4 +41,4 @@ start_http_server() -> {ok, Pid} = cowboy:start_clear(http_listener, TransOpts, #{env => #{dispatch => Dispatcher}}), - lager:debug("[iot_app] the http server start at: ~p, pid is: ~p", [Port, Pid]). + lager:debug("[light_app] the http server start at: ~p, pid is: ~p", [Port, Pid]). diff --git a/apps/power_gateway/src/power_gateway_args.erl b/apps/light/src/light_args.erl similarity index 94% rename from apps/power_gateway/src/power_gateway_args.erl rename to apps/light/src/light_args.erl index ac3a146..45e22c1 100644 --- a/apps/power_gateway/src/power_gateway_args.erl +++ b/apps/light/src/light_args.erl @@ -6,7 +6,7 @@ %%% @end %%% Created : 06. 9月 2023 16:37 %%%------------------------------------------------------------------- --module(power_gateway_args). +-module(light_args). -author("aresei"). -behaviour(gen_server). @@ -69,13 +69,13 @@ init([]) -> {ok, Metrics} = efka_client:request_metric(), try convert_metric(Metrics) of {ok, MetricMap} -> - lager:debug("[power_gateway_args] init load metric_map: ~p", [MetricMap]), + lager:debug("[light_args] init load metric_map: ~p", [MetricMap]), {ok, Param} = efka_client:request_param(), {ok, #state{metrics = MetricMap, param = Param}} catch _:Error:Stack-> - lager:warning("[power_gateway_args] request_metric get error: ~p, stack: ~p", [Error, Stack]), + lager:warning("[light_args] request_metric get error: ~p, stack: ~p", [Error, Stack]), {ok, #state{metrics = #{}, param = #{}}} end. @@ -111,7 +111,7 @@ handle_cast({push_param, Param}, State = #state{}) -> handle_cast({push_metric, Metrics}, State = #state{}) -> try convert_metric(Metrics) of {ok, MetricMap} -> - lager:debug("[power_gateway_args] push metric_map: ~p", [MetricMap]), + lager:debug("[light_args] push metric_map: ~p", [MetricMap]), {noreply, State#state{metrics = MetricMap}} catch _:_ -> {noreply, State} diff --git a/apps/power_gateway/src/power_device.erl b/apps/light/src/light_device.erl similarity index 94% rename from apps/power_gateway/src/power_device.erl rename to apps/light/src/light_device.erl index c3b061d..4bbc9a2 100644 --- a/apps/power_gateway/src/power_device.erl +++ b/apps/light/src/light_device.erl @@ -6,7 +6,7 @@ %%% @end %%% Created : 04. 9月 2024 16:13 %%%------------------------------------------------------------------- --module(power_device). +-module(light_device). -author("anlicheng"). -behaviour(gen_server). @@ -40,7 +40,7 @@ get_pid(DeviceUUID) when is_binary(DeviceUUID) -> -spec get_name(DeviceUUID :: binary()) -> atom(). get_name(DeviceUUID) when is_binary(DeviceUUID) -> - binary_to_atom(<<"power_device:", DeviceUUID/binary>>). + binary_to_atom(<<"light_device:", DeviceUUID/binary>>). -spec metric_data(Pid :: pid(), Message :: binary()) -> no_return(). metric_data(Pid, Message) when is_pid(Pid), is_binary(Message) -> @@ -67,7 +67,7 @@ start_link(Name, DeviceUUID) when is_atom(Name), is_binary(DeviceUUID) -> {ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} | {stop, Reason :: term()} | ignore). init([DeviceUUID]) -> - {ok, HeartbeatTicker0} = application:get_env(power_gateway, heartbeat_ticker), + {ok, HeartbeatTicker0} = application:get_env(light, heartbeat_ticker), HeartbeatTicker = HeartbeatTicker0 * 1000, erlang:start_timer(HeartbeatTicker, self(), heartbeat_ticker), @@ -101,9 +101,9 @@ handle_cast({metric_data, Message}, State = #state{device_uuid = DeviceUUID, dat Info = iolist_to_binary(jiffy:encode(Props, [force_utf8])), case catch efka_client:send_metric_data(Props, #{}) of {ok, _} -> - power_logger:write([<<"OK">>, Info]); + light_logger:write([<<"OK">>, Info]); _ -> - power_logger:write([<<"ERROR">>, Info]) + light_logger:write([<<"ERROR">>, Info]) end, %% 如果设备当前是离线状态,则需要发送上线消息 @@ -111,9 +111,9 @@ handle_cast({metric_data, Message}, State = #state{device_uuid = DeviceUUID, dat {noreply, State#state{data_counter = DataCounter + 1, status = 1}}; M when is_map(M) -> - lager:notice("[power_device] invalid map: ~p", [M]); + lager:notice("[light_device] invalid map: ~p", [M]); Error -> - lager:notice("[power_device] jiffy decode error: ~p", [Error]), + lager:notice("[light_device] jiffy decode error: ~p", [Error]), {noreply, State} end. diff --git a/apps/power_gateway/src/power_device_sup.erl b/apps/light/src/light_device_sup.erl similarity index 90% rename from apps/power_gateway/src/power_device_sup.erl rename to apps/light/src/light_device_sup.erl index 8af11bb..7231979 100644 --- a/apps/power_gateway/src/power_device_sup.erl +++ b/apps/light/src/light_device_sup.erl @@ -6,7 +6,7 @@ %%% @end %%% Created : 04. 9月 2024 15:39 %%%------------------------------------------------------------------- --module(power_device_sup). +-module(light_device_sup). -author("anlicheng"). -behaviour(supervisor). @@ -49,7 +49,7 @@ init([]) -> -spec ensure_device_started(DeviceUUID :: binary()) -> {ok, Pid :: pid()} | {error, Reason :: any()}. ensure_device_started(DeviceUUID) when is_binary(DeviceUUID) -> - case power_device:get_pid(DeviceUUID) of + case light_device:get_pid(DeviceUUID) of DevicePid when is_pid(DevicePid) -> {ok, DevicePid}; undefined -> @@ -64,17 +64,17 @@ ensure_device_started(DeviceUUID) when is_binary(DeviceUUID) -> end. delete_device(DeviceUUID) when is_binary(DeviceUUID) -> - Id = power_device:get_name(DeviceUUID), + Id = light_device:get_name(DeviceUUID), ok = supervisor:terminate_child(?MODULE, Id), supervisor:delete_child(?MODULE, Id). child_spec(DeviceUUID) when is_binary(DeviceUUID) -> - Name = power_device:get_name(DeviceUUID), + Name = light_device:get_name(DeviceUUID), #{ id => Name, - start => {power_device, start_link, [Name, DeviceUUID]}, + start => {light_device, start_link, [Name, DeviceUUID]}, restart => permanent, shutdown => 2000, type => worker, - modules => ['power_device'] + modules => ['light_device'] }. \ No newline at end of file diff --git a/apps/power_gateway/src/power_logger.erl b/apps/light/src/light_logger.erl similarity index 99% rename from apps/power_gateway/src/power_logger.erl rename to apps/light/src/light_logger.erl index e78cb2f..8b0dfbe 100644 --- a/apps/power_gateway/src/power_logger.erl +++ b/apps/light/src/light_logger.erl @@ -6,7 +6,7 @@ %%% @end %%% Created : 07. 9月 2023 17:07 %%%------------------------------------------------------------------- --module(power_logger). +-module(light_logger). -author("aresei"). -behaviour(gen_server). diff --git a/apps/power_gateway/src/power_gateway_mqtt_subscriber.erl b/apps/light/src/light_mqtt_subscriber.erl similarity index 93% rename from apps/power_gateway/src/power_gateway_mqtt_subscriber.erl rename to apps/light/src/light_mqtt_subscriber.erl index db48e59..e1c1996 100644 --- a/apps/power_gateway/src/power_gateway_mqtt_subscriber.erl +++ b/apps/light/src/light_mqtt_subscriber.erl @@ -7,7 +7,7 @@ %%% @end %%% Created : 12. 3月 2023 21:27 %%%------------------------------------------------------------------- --module(power_gateway_mqtt_subscriber). +-module(light_mqtt_subscriber). -author("aresei"). -behaviour(gen_server). @@ -50,7 +50,7 @@ start_link() -> {stop, Reason :: term()} | ignore). init([]) -> %% 建立到emqx服务器的连接 - Opts = emqx_opts(<<"power-subscriber">>), + Opts = emqx_opts(<<"light-subscriber">>), lager:debug("[opts] is: ~p", [Opts]), case emqtt:start_link(Opts) of {ok, ConnPid} -> @@ -135,10 +135,10 @@ terminate(Reason, _State = #state{conn_pid = ConnPid}) when is_pid(ConnPid) -> {ok, _Props, _ReasonCode} = emqtt:unsubscribe(ConnPid, #{}, TopicNames), ok = emqtt:disconnect(ConnPid), - lager:debug("[iot_mqtt_subscriber] terminate with reason: ~p", [Reason]), + lager:debug("[light_mqtt_subscriber] terminate with reason: ~p", [Reason]), ok; terminate(Reason, _State) -> - lager:debug("[iot_mqtt_subscriber] terminate with reason: ~p", [Reason]), + lager:debug("[light_mqtt_subscriber] terminate with reason: ~p", [Reason]), ok. %% @private @@ -156,7 +156,7 @@ code_change(_OldVsn, State = #state{}, _Extra) -> -spec emqx_opts(ClientSuffix :: binary()) -> list(). emqx_opts(ClientSuffix) when is_binary(ClientSuffix) -> %% 建立到emqx服务器的连接 - {ok, Props} = application:get_env(power_gateway, emqx_server), + {ok, Props} = application:get_env(light, emqx_server), EMQXHost = proplists:get_value(host, Props), EMQXPort = proplists:get_value(port, Props, 1883), Username = proplists:get_value(username, Props), @@ -182,13 +182,13 @@ emqx_opts(ClientSuffix) when is_binary(ClientSuffix) -> -spec dispatch(DeviceMac :: binary(), Message :: binary()) -> no_return(). dispatch(DeviceMac, Message) when is_binary(DeviceMac), is_binary(Message) -> - case power_gateway_args:get_device_uuid(DeviceMac) of + case light_args:get_device_uuid(DeviceMac) of error -> lager:notice("[mqtt_subscriber] device_mac: ~p, device_uuid not found", [DeviceMac]); {ok, DeviceUUID} -> - case power_device_sup:ensure_device_started(DeviceUUID) of + case light_device_sup:ensure_device_started(DeviceUUID) of {ok, DevicePid} -> - power_device:metric_data(DevicePid, Message); + light_device:metric_data(DevicePid, Message); {error, Reason} -> lager:notice("[mqtt_subscriber] start device get error: ~p", [Reason]) end diff --git a/apps/power_gateway/src/power_gateway_sup.erl b/apps/light/src/light_sup.erl similarity index 73% rename from apps/power_gateway/src/power_gateway_sup.erl rename to apps/light/src/light_sup.erl index 3b82ec2..b03cf75 100644 --- a/apps/power_gateway/src/power_gateway_sup.erl +++ b/apps/light/src/light_sup.erl @@ -1,9 +1,9 @@ %%%------------------------------------------------------------------- -%% @doc power_gateway top level supervisor. +%% @doc light top level supervisor. %% @end %%%------------------------------------------------------------------- --module(power_gateway_sup). +-module(light_sup). -behaviour(supervisor). @@ -30,7 +30,7 @@ init([]) -> intensity => 1000, period => 3600}, - {ok, EfkaServer} = application:get_env(power_gateway, efka_server), + {ok, EfkaServer} = application:get_env(light, efka_server), Host = proplists:get_value(host, EfkaServer), Port = proplists:get_value(port, EfkaServer), @@ -48,39 +48,39 @@ init([]) -> }, #{ - id => 'power_logger', - start => {'power_logger', start_link, ["device_data"]}, + id => 'light_logger', + start => {'light_logger', start_link, ["device_data"]}, restart => permanent, shutdown => 2000, type => worker, - modules => ['power_logger'] + modules => ['light_logger'] }, #{ - id => 'power_gateway_args', - start => {'power_gateway_args', start_link, []}, + id => 'light_args', + start => {'light_args', start_link, []}, restart => permanent, shutdown => 2000, type => worker, - modules => ['power_gateway_args'] + modules => ['light_args'] }, #{ - id => 'power_device_sup', - start => {'power_device_sup', start_link, []}, + id => 'light_device_sup', + start => {'light_device_sup', start_link, []}, restart => permanent, shutdown => 2000, type => worker, - modules => ['power_device_sup'] + modules => ['light_device_sup'] }, #{ - id => 'power_gateway_mqtt_subscriber', - start => {'power_gateway_mqtt_subscriber', start_link, []}, + id => 'light_mqtt_subscriber', + start => {'light_mqtt_subscriber', start_link, []}, restart => permanent, shutdown => 2000, type => worker, - modules => ['power_gateway_mqtt_subscriber'] + modules => ['light_mqtt_subscriber'] } ], @@ -98,6 +98,6 @@ read_service_name() -> {ok, RegisterName0} -> string:trim(RegisterName0); {error, Reason} -> - lager:warning("[power_app] read .version file get error: ~p", [Reason]), - <<"power_gateway">> + lager:warning("[light_app] read .version file get error: ~p", [Reason]), + <<"light">> end. \ No newline at end of file diff --git a/boot.sh b/boot.sh index 63c3836..082dd0a 100755 --- a/boot.sh +++ b/boot.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker run -e TZ=Asia/Shanghai --hostname=power_gateway --net=host --restart=always -v /data/docker/power_gateway/:/data/power_gateway/ power_gateway:latest \ No newline at end of file +docker run -e TZ=Asia/Shanghai --hostname=light --net=host --restart=always -v /data/docker/light/:/data/light/ light:latest \ No newline at end of file diff --git a/build.sh b/build.sh index 4c6e711..2cc4fa2 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ #!/bin/bash rebar3 compile && rebar3 release && rebar3 tar -tar -czvf power_gateway.tgz boot.sh stop.sh Dockerfile .args.yaml \ No newline at end of file +tar -czvf light.tgz boot.sh stop.sh Dockerfile .args.yaml \ No newline at end of file diff --git a/config/sys-dev.config b/config/sys-dev.config index d694452..43d3995 100644 --- a/config/sys-dev.config +++ b/config/sys-dev.config @@ -1,5 +1,5 @@ [ - {power_gateway, [ + {light, [ {http_server, [ {port, 18082}, @@ -31,7 +31,7 @@ {lager, [ {colored, true}, %% Whether to write a crash log, and where. Undefined means no crash logger. - {crash_log, "trade_hub.crash.log"}, + {crash_log, "light.crash.log"}, %% Maximum size in bytes of events in the crash log - defaults to 65536 {crash_log_msg_size, 65536}, %% Maximum size of the crash log in bytes, before its rotated, set diff --git a/config/sys-prod.config b/config/sys-prod.config index fd38ed9..e13abdf 100644 --- a/config/sys-prod.config +++ b/config/sys-prod.config @@ -1,5 +1,5 @@ [ - {power_gateway, [ + {light, [ {http_server, [ {port, 18082}, @@ -15,7 +15,7 @@ {host, "172.30.37.212"}, {port, 1883}, {tcp_opts, []}, - {username, "power_gateway"}, + {username, "light"}, {password, "PqRsTuVwXyZ!@#xy"}, {keepalive, 86400}, {retry_interval, 5} @@ -31,7 +31,7 @@ {lager, [ {colored, true}, %% Whether to write a crash log, and where. Undefined means no crash logger. - {crash_log, "trade_hub.crash.log"}, + {crash_log, "light.crash.log"}, %% Maximum size in bytes of events in the crash log - defaults to 65536 {crash_log_msg_size, 65536}, %% Maximum size of the crash log in bytes, before its rotated, set diff --git a/config/vm.args b/config/vm.args index bd04bda..080e1b9 100644 --- a/config/vm.args +++ b/config/vm.args @@ -1,6 +1,6 @@ --sname power_gateway +-sname light --setcookie power_gateway_cookie +-setcookie light_cookie +K true +A30 diff --git a/rebar.config b/rebar.config index 19ac816..4aef9d8 100644 --- a/rebar.config +++ b/rebar.config @@ -10,8 +10,8 @@ {lager, ".*", {git,"https://github.com/erlang-lager/lager.git", {tag, "3.9.2"}}} ]}. -{relx, [{release, {power_gateway, "1.0"}, - [power_gateway, +{relx, [{release, {light, "1.0"}, + [light, sasl]}, {mode, dev}, diff --git a/run b/run index 90ad2be..48f5eba 100755 --- a/run +++ b/run @@ -2,4 +2,4 @@ rebar3 compile rebar3 release -_build/default/rel/power_gateway/bin/power_gateway console +_build/default/rel/light/bin/light console diff --git a/stop.sh b/stop.sh index 397f238..ea041cd 100755 --- a/stop.sh +++ b/stop.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker ps -a | grep "power_gateway:latest" | awk -F " " '{print $1}' | xargs docker stop | xargs docker rm \ No newline at end of file +docker ps -a | grep "light:latest" | awk -F " " '{print $1}' | xargs docker stop | xargs docker rm \ No newline at end of file