%%%------------------------------------------------------------------- %%% @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). %% 在线 %% 主机端上报数据类型标识 %% 建立到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(), real_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(), real_location_code :: binary(), event_type :: integer(), params :: map() }). %% 设备数据 -record(device_data, { tags :: map(), val :: any(), timestamp :: integer() }).