2025-05-08 17:53:56 +08:00

119 lines
2.7 KiB
Erlang
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%%%-------------------------------------------------------------------
%%% @author licheng5
%%% @copyright (C) 2023, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 14. 2月 2023 19:48
%%%-------------------------------------------------------------------
-author("licheng5").
%% 主机是否在线
-define(HOST_OFFLINE, 0).
-define(HOST_ONLINE, 1).
-define(HOST_NOT_JOINED, -1).
%% 设备是否在线状态
-define(DEVICE_OFFLINE, 0).
-define(DEVICE_ONLINE, 1).
-define(DEVICE_NOT_JOINED, -1).
%% 下发的任务状态
-define(TASK_STATUS_INIT, -1). %% 未接入
-define(TASK_STATUS_FAILED, 0). %% 离线
-define(TASK_STATUS_OK, 1). %% 在线
%% efka主动发起的消息体类型
-define(PACKET_REQUEST, 16#01).
-define(PACKET_RESPONSE, 16#02).
%% 服务器基于pub/sub的消息
-define(PACKET_PUB, 16#03).
%% push调用不需要返回
-define(PACKET_COMMAND, 16#04).
%% 服务器端推送消息
-define(PACKET_ASYNC_REQUEST, 16#5).
-define(PACKET_ASYNC_RESPONSE, 16#6).
%% 授权
-define(COMMAND_AUTH, 16#8).
%% 主机端上报数据类型标识
%% 建立到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_EVENT, 16#07).
-define(METHOD_PHASE, 16#09).
%% 部署微服务
-define(METHOD_DEPLOY, 16#10).
%% 事件类型
-define(EVENT_DEVICE, 16#01).
%% 主机的相关事件
-define(EVENT_HOST, 16#02).
%% ai相关的事件
-define(EVENT_AI, 16#03).
%% 指令相关
-define(DIRECTIVE_ZD_CTRL, 16#01).
%% 缓存数据库表
-record(kv, {
key :: binary(),
val :: binary() | list() | map() | sets:set(),
expire_at = 0 :: integer(),
type :: atom()
}).
%% id生成器
-record(id_generator, {
tab :: atom(),
increment_id = 0 :: integer()
}).
%% 统计项
-record(option, {
success_num = 0,
fail_num = 0
}).
%% 统计累加器
-record(totalizator, {
key :: {SceneId :: integer(), Date :: calendar:date()},
scene_id :: integer(),
date :: calendar:date(),
option :: #option{}
}).
%% 北向数据
-record(north_data, {
id = 0 :: integer(),
location_code :: binary(),
%% 数据库类型的endpoint 可以返回list: [{K, V}, {K1, V1}]
fields :: [{K :: binary(), V :: any()}],
timestamp = 0 :: integer()
}).
%% 事件相关的数据
-record(event_data, {
id = 0 :: integer(),
location_code :: binary(),
event_type :: integer(),
params :: map()
}).
%% 发送数据
-record(post_data, {
id = 0 :: integer(),
location_code :: binary(),
%% 数据库类型的endpoint 可以返回list: [{K, V}, {K1, V1}]
body :: binary() | list()
}).