%%%------------------------------------------------------------------- %%% @author licheng5 %%% @copyright (C) 2023, %%% @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_CALL, 16#05). -define(PACKET_ASYNC_CALL_REPLY, 16#06). %% ping包,客户端主动发起 -define(PACKET_PING, 16#FF). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 二级分类定义 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 主机端上报数据类型标识 -define(METHOD_AUTH, 16#01). -define(METHOD_DATA, 16#02). -define(METHOD_PING, 16#03). -define(METHOD_INFORM, 16#04). -define(METHOD_EVENT, 16#05). -define(METHOD_PHASE, 16#06). %%%% 命令类型子分类, 不需要返回值 %% 授权 -define(COMMAND_AUTH, 16#08). %%%% 主动推送的消息类型子分类, 需要返回值 -define(PUSH_DEPLOY, 16#01). -define(PUSH_START_SERVICE, 16#02). -define(PUSH_STOP_SERVICE, 16#03). -define(PUSH_SERVICE_CONFIG, 16#04). -define(PUSH_INVOKE, 16#05). -define(PUSH_TASK_LOG, 16#06). %% 缓存数据库表 -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(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() }).