2024-01-12 17:25:21 +08:00

109 lines
2.5 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). %% 在线
%% 主机端上报数据类型标识
%% 建立到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(PACKET_REQUEST, 16#01).
-define(PACKET_RESPONSE, 16#02).
%% 服务器端推送消息
-define(PACKET_PUBLISH, 16#03).
-define(PACKET_PUBLISH_RESPONSE, 16#04).
%% 事件类型
-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()
}).