TuyaOS
mqc_app.h
1
9#ifndef _MQC_APP_H
10#define _MQC_APP_H
11
12#include "tuya_cloud_types.h"
13#include "mqtt_client.h"
14#include "gw_intf.h"
15#include "uni_rfc.h"
16#include "tuya_svc_netmgr.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22// mqtt protocol
23#define PRO_DATA_PUSH 4 /* dev -> cloud push dp data */
24#define PRO_CMD 5 /* cloud -> dev send dp data */
25#define PRO_DEV_UNBIND 8 /* cloud -> dev */
26#define PRO_GW_RESET 11 /* cloud -> dev reset dev */
27#define PRO_TIMER_UG_INF 13 /* cloud -> dev update timer */
28#define PRO_UPGD_REQ 15 /* cloud -> dev update dev/gw */
29#define PRO_UPGE_PUSH 16 /* dev -> cloud update upgrade percent */
30#define PRO_IOT_DA_REQ 22 /* cloud -> dev send data req */
31#define PRO_IOT_DA_RESP 23 /* dev -> cloud send data resp */
32#define PRO_DEV_LINE_STAT_UPDATE 25 /* dev -> sub device online status update */
33#define PRO_CMD_ACK 26 /* dev -> cloud dev send ackId to cloud */
34#define PRO_MQ_EXT_CFG_INF 27 /* cloud -> dev runtime cfg update */
35#define PRO_MQ_BLE_RAW_CMD 28 /* cloud -> ble dev RAW data */
36#define PRO_MQ_QUERY_DP 31 /* cloud -> dev query dp stat */
37#define PRO_GW_SIGMESH_TOPO_UPDATE 33 /* cloud -> dev sigmesh topo update */
38#define PRO_UG_SUMMER_TABLE 41 // ug sumer timer table
39#define PRO_GW_UPLOAD_LOG 45 /* dev -> cloud, upload log*/
40#define PRO_GW_LINKAGE_UPDATE 49 /* cloud -> dev 场景更新推送 */
41#define PRO_MQ_THINGCONFIG 51 /* 设备免密配网 */
42#define PRO_MQ_PEGASUS_CONFIG 63 /* 闪电配网 */
43#define PRO_MQ_APP_PROTOCOL_RX 64 /* 应用用户自定义协议 cloud->dev */
44#define PRO_MQ_APP_PROTOCOL_TX 65 /* 应用用户自定义协议 dev->cloud */
45#define PRO_MQ_NG_DEV_EVENT 55 /* NG下发的设备事件 */
46#define PRO_DEV_WAKEUP 102 /* cloud -> dev, 更新子设备待唤醒标志 */
47#define PRO_MQ_COMMON 100 /* cloud -> dev common protocol*/
48#define PRO_MQ_EN_GW_ADD_DEV_REQ 200 // gw enable add sub device request
49#define PRO_MQ_EN_GW_ADD_DEV_RESP 201 // gw enable add sub device respond
50#define PRO_DEV_LC_GROUP_OPER 202 /* cloud -> dev */
51#define PRO_DEV_LC_GROUP_OPER_RESP 203 /* dev -> cloud */
52#define PRO_DEV_LC_SENCE_OPER 204 /* cloud -> dev */
53#define PRO_DEV_LC_SENCE_OPER_RESP 205 /* dev -> cloud */
54#define PRO_DEV_LC_SENCE_EXEC 206 /* cloud -> dev */
55#define PRO_CLOUD_STORAGE_ORDER_REQ 300 /* 云存储订单 */
56#define PRO_3RD_PARTY_STREAMING_REQ 301 /* echo show/chromecast request */
57#define PRO_RTC_REQ 302 /* cloud -> dev */
58#define PRO_AI_DETECT_DATA_SYNC_REQ 304 /* 本地AI数据更新,当前用于人脸检测样本数据更新(新增/删除/变更) */
59#define PRO_FACE_DETECT_DATA_SYNC 306 /* 人脸识别数据同步通知,门禁设备使用 */
60#define PRO_CLOUD_STORAGE_EVENT_REQ 307 /* 联动触发云存储 */
61#define PRO_DOORBELL_STATUS_REQ 308 /* 门铃请求被用户处理,接听或者拒绝 */
62#define PRO_MQ_CLOUD_STREAM_GATEWAY 312
63#define PRO_GW_COM_SENCE_EXE 403 /* cloud -> dev 原云端场景放到本地执行 */
64#define PRO_DEV_ALARM_DOWN 701 /* cloud -> dev */
65#define PRO_DEV_ALARM_UP 702 /* dev -> cloud */
66
72OPERATE_RET mqc_app_init(VOID);
73
81OPERATE_RET mqc_app_start(BOOL_T enable_time_check);
82
86VOID mqc_app_disconnect(VOID);
87
93OPERATE_RET mqc_app_quit(VOID_T);
94
98VOID mqc_app_close(VOID);
99
105BOOL_T get_mqc_conn_stat(VOID);
106
115OPERATE_RET mqc_very_pcmcd_mcd(IN CONST UINT_T cmd_from, IN CONST UINT_T seq);
116
127OPERATE_RET mqc_dp_report_async(RFC_DATA_S *rfc_da, IN CONST UINT_T to_lmt, IN CONST MQ_PUB_ASYNC_IFM_CB cb, IN VOID *prv_data);
128
136OPERATE_RET mqc_obj_dp_query(RFC_DATA_S *rfc_da);
137
147OPERATE_RET mqc_upgd_progress_rept_v41(IN CONST UINT_T percent, IN CONST CHAR_T *devid, IN CONST DEV_TYPE_T tp);
148
161OPERATE_RET mqc_prot_data_rept_seq(IN CONST UINT_T pro, IN CONST CHAR_T *data, IN CONST BYTE_T qos,
162 IN CONST UINT_T to_lmt, IN CONST MQ_PUB_ASYNC_IFM_CB cb, IN VOID *prv_data);
163
172OPERATE_RET mqc_get_wakeup_data(INOUT BYTE_T *wakeup_data_arr, INOUT UINT_T *p_len);
173
182OPERATE_RET mqc_get_heartbeat_data(INOUT BYTE_T *heartbeat_data_arr, INOUT UINT_T *p_len);
183
189OPERATE_RET mqc_book_wakeup_topic(VOID);
190
198OPERATE_RET mqc_book_additional_topic(IN CHAR_T *topic);
199
211#define mqc_subscribe_multi_topics(topics, cnt, msg_cb) mqc_subscribe_multi_topics_ext(topics, cnt, msg_cb, TRUE)
212OPERATE_RET mqc_subscribe_multi_topics_ext(IN CONST CHAR_T *topics[], IN CONST BYTE_T cnt, MQ_MSG_RECV_CB msg_cb, BOOL_T auto_resub);
213
222OPERATE_RET mqc_unsubscribe_multi_topics(IN CONST CHAR_T *topics[], IN CONST BYTE_T cnt);
223
231INT_T mqc_get_alive_time_s(VOID);
232
238INT_T mqc_get_mqtt_socket_fd(VOID);
239
243VOID mqc_restart(VOID);
244
250UINT_T mqc_get_mqtt_socket_ip(VOID);
251
260OPERATE_RET mqc_send_custom_mqtt_msg(IN CONST UINT_T protocol, IN CONST BYTE_T *p_data);
261
271OPERATE_RET mqc_send_mqtt_msg_with_topic(IN CONST CHAR_T* topic, IN CONST UINT_T protocol, IN CONST BYTE_T *p_data);
272
280typedef OPERATE_RET(*mqc_protocol_handler_cb)(IN ty_cJSON *root_json);
281
290OPERATE_RET mqc_app_register_cb(UINT_T mq_pro, mqc_protocol_handler_cb handler);
291
302OPERATE_RET mqc_media_pub_async(IN CONST FLOW_BODY_ST *dt_body,
303 IN CONST UINT_T to_lmt, IN CONST MQ_PUB_ASYNC_IFM_CB cb, IN VOID *prv_data);
304
313OPERATE_RET mqc_media_pub_sync(IN CONST FLOW_BODY_ST *dt_body, IN CONST UINT_T timeout);
314
323OPERATE_RET mqc_media_pub_sync_v2(IN CONST FLOW_BODY_V2_ST *dt_body, IN CONST UINT_T timeout);
324
335OPERATE_RET mqc_media_pub_data_sync(IN CONST USHORT_T map_id, IN CONST UINT_T offset, IN CONST BYTE_T *pbuffer, IN CONST USHORT_T buf_len);
336
350OPERATE_RET mqc_custom_pub_async(IN CONST BYTE_T *data, IN CONST INT_T len, IN CONST CHAR_T *topic,
351 IN CONST BYTE_T qos, IN CONST UINT_T timeout, IN CONST MQ_PUB_ASYNC_IFM_CB cb,
352 IN VOID *prv_data);
353
365OPERATE_RET mqc_custom_pub_sync(IN CONST BYTE_T *data, IN CONST INT_T len, IN CONST CHAR_T *topic,
366 IN CONST BYTE_T qos, IN CONST UINT_T timeout);
367
376OPERATE_RET mqc_app_reg_ext_proto(CONST CHAR_T *sub_mq_pro, mqc_protocol_handler_cb handler);
377
385OPERATE_RET mqc_app_unreg_ext_proto(CONST CHAR_T *sub_mq_pro);
386
395OPERATE_RET mqc_app_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
396
405OPERATE_RET mqc_sdk_reg_ext_proto(CONST CHAR_T *sub_mq_pro, mqc_protocol_handler_cb handler);
406
414OPERATE_RET mqc_sdk_unreg_ext_proto(CONST CHAR_T *sub_mq_pro);
415
424OPERATE_RET mqc_sdk_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
425
434OPERATE_RET mqc_ng_reg_ext_proto(CONST CHAR_T *ext_mq_pro, mqc_protocol_handler_cb handler);
435
443OPERATE_RET mqc_ng_unreg_ext_proto(IN CONST CHAR_T *ext_mq_pro);
444
452OPERATE_RET mqc_ng_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
453
459typedef BOOL_T(*mqc_con_permit_cb)(VOID);
460
468OPERATE_RET mqc_set_connection_permit_cb(mqc_con_permit_cb cb_permit);
469
477OPERATE_RET mqc_set_connection_linkage(netmgr_linkage_t *linkage);
478
487OPERATE_RET mqc_set_connection_switch(BOOL_T is_auto);
488
489#ifdef __cplusplus
490}
491#endif
492
493#endif
494
Facility of DevOS definitions
TUYA MQTT service
VOID(* MQ_MSG_RECV_CB)(IN CONST CHAR_T *topic, IN BYTE_T *data, IN UINT_T len)
Callback when specific MQTT msg recv
Definition: mqtt_client.h:337
VOID(* MQ_PUB_ASYNC_IFM_CB)(IN CONST OPERATE_RET op_ret, IN CONST VOID *prv_data)
Async callback that indicates mqtt_publish_async success or not.
Definition: mqtt_client.h:258
Definition: tuya_cloud_com_defs.h:771
Definition: tuya_cloud_com_defs.h:780
Definition: tuya_svc_netmgr_linkage.h:53
Definition: ty_cJSON.h:45
TUYA network manager service
tuya reference data module
SMARTPOINTER_T RFC_DATA_S
the reference data
Definition: uni_rfc.h:23