TuyaOS
mqc_app.h
1
9#ifndef _MQC_APP_H
10#define _MQC_APP_H
11
12#include "tuya_cloud_types.h"
14#include "gw_intf.h"
15#include "tuya_smartpointer.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_DEV_DA_REQ 18 /* dev -> cloud send data resp */
31#define PRO_DEV_DA_RESP 19 /* cloud -> dev send data req */
32#define PRO_IOT_DA_REQ 22 /* cloud -> dev send data req */
33#define PRO_IOT_DA_RESP 23 /* dev -> cloud send data resp */
34#define PRO_DEV_LINE_STAT_UPDATE 25 /* dev -> sub device online status update */
35#define PRO_CMD_ACK 26 /* dev -> cloud dev send ackId to cloud */
36#define PRO_MQ_EXT_CFG_INF 27 /* cloud -> dev runtime cfg update */
37#define PRO_MQ_BLE_RAW_CMD 28 /* cloud -> ble dev RAW data */
38#define PRO_MQ_QUERY_DP 31 /* cloud -> dev query dp stat */
39#define PRO_GW_SIGMESH_TOPO_UPDATE 33 /* cloud -> dev sigmesh topo update */
40#define PRO_UG_SUMMER_TABLE 41 // ug sumer timer table
41#define PRO_GW_UPLOAD_LOG 45 /* dev -> cloud, upload log*/
42#define PRO_GW_LINKAGE_UPDATE 49 /* cloud -> dev 场景更新推送 */
43#define PRO_MQ_THINGCONFIG 51 /* 设备免密配网 */
44#define PRO_MQ_PEGASUS_CONFIG 63 /* 闪电配网 */
45#define PRO_MQ_APP_PROTOCOL_RX 64 /* 应用用户自定义协议 cloud->dev */
46#define PRO_MQ_APP_PROTOCOL_TX 65 /* 应用用户自定义协议 dev->cloud */
47#define PRO_MQ_NG_DEV_EVENT 55 /* NG下发的设备事件 */
48#define PRO_DEV_WAKEUP 102 /* cloud -> dev, 更新子设备待唤醒标志 */
49#define PRO_MQ_COMMON 100 /* cloud -> dev common protocol*/
50#define PRO_MQ_EN_GW_ADD_DEV_REQ 200 // gw enable add sub device request
51#define PRO_MQ_EN_GW_ADD_DEV_RESP 201 // gw enable add sub device respond
52#define PRO_DEV_LC_GROUP_OPER 202 /* cloud -> dev */
53#define PRO_DEV_LC_GROUP_OPER_RESP 203 /* dev -> cloud */
54#define PRO_DEV_LC_SENCE_OPER 204 /* cloud -> dev */
55#define PRO_DEV_LC_SENCE_OPER_RESP 205 /* dev -> cloud */
56#define PRO_DEV_LC_SENCE_EXEC 206 /* cloud -> dev */
57#define PRO_CLOUD_STORAGE_ORDER_REQ 300 /* 云存储订单 */
58#define PRO_3RD_PARTY_STREAMING_REQ 301 /* echo show/chromecast request */
59#define PRO_RTC_REQ 302 /* cloud -> dev */
60#define PRO_AI_DETECT_DATA_SYNC_REQ 304 /* 本地AI数据更新,当前用于人脸检测样本数据更新(新增/删除/变更) */
61#define PRO_FACE_DETECT_DATA_SYNC 306 /* 人脸识别数据同步通知,门禁设备使用 */
62#define PRO_CLOUD_STORAGE_EVENT_REQ 307 /* 联动触发云存储 */
63#define PRO_DOORBELL_STATUS_REQ 308 /* 门铃请求被用户处理,接听或者拒绝 */
64#define PRO_MQ_CLOUD_STREAM_GATEWAY 312
65#define PRO_GW_COM_SENCE_EXE 403 /* cloud -> dev 原云端场景放到本地执行 */
66#define PRO_DEV_ALARM_DOWN 701 /* cloud -> dev */
67#define PRO_DEV_ALARM_UP 702 /* dev -> cloud */
68
74OPERATE_RET mqc_app_init(VOID);
75
81OPERATE_RET mqc_app_start(VOID);
82
88OPERATE_RET mqc_app_stop(VOID);
89
95OPERATE_RET mqc_app_restart(VOID);
96
102OPERATE_RET mqc_app_pause(VOID);
103
109OPERATE_RET mqc_app_resume(VOID);
110
116OPERATE_RET mqc_app_quit(VOID);
117
123BOOL_T get_mqc_conn_stat(VOID);
124
135OPERATE_RET mqc_dp_report_async(SMARTPOINTER_T *rfc_da, IN CONST UINT_T to_lmt, IN CONST CB_MQTT_PUB_INFORM cb, IN VOID *prv_data);
136
144OPERATE_RET mqc_obj_dp_query(SMARTPOINTER_T *rfc_da);
145
156OPERATE_RET mqc_upgd_progress_rept(IN CONST UINT_T percent, IN CONST CHAR_T *devid, IN CONST DEV_TYPE_T tp, IN CONST UINT_T remain_time);
157
170OPERATE_RET mqc_prot_data_rept_seq(IN CONST UINT_T pro, IN CONST CHAR_T *data, IN CONST BYTE_T qos,
171 IN CONST UINT_T to_lmt, IN CONST CB_MQTT_PUB_INFORM cb, IN VOID *prv_data);
172
181OPERATE_RET mqc_get_wakeup_data(INOUT BYTE_T *wakeup_data_arr, INOUT UINT_T *p_len);
182
191OPERATE_RET mqc_get_heartbeat_data(INOUT BYTE_T *heartbeat_data_arr, INOUT UINT_T *p_len);
192
204#define mqc_subscribe_multi_topics(topics, cnt, msg_cb) mqc_subscribe_multi_topics_ext(topics, cnt, msg_cb, TRUE)
205OPERATE_RET mqc_subscribe_multi_topics_ext(IN CONST CHAR_T *topics[], IN CONST BYTE_T cnt, CB_MQTT_DATA_RECV msg_cb, BOOL_T auto_resub);
206
215OPERATE_RET mqc_unsubscribe_multi_topics(IN CONST CHAR_T *topics[], IN CONST BYTE_T cnt);
216
224INT_T mqc_get_alive_time_s(VOID);
225
231INT_T mqc_get_mqtt_socket_fd(VOID);
232
238TUYA_IP_ADDR_T mqc_get_mqtt_socket_ip(VOID);
239
248OPERATE_RET mqc_send_custom_mqtt_msg(IN CONST UINT_T protocol, IN CONST BYTE_T *p_data);
249
259OPERATE_RET mqc_send_mqtt_msg_with_topic(IN CONST CHAR_T* topic, IN CONST UINT_T protocol, IN CONST BYTE_T *p_data);
260
268typedef OPERATE_RET(*mqc_protocol_handler_cb)(IN ty_cJSON *root_json);
269
278OPERATE_RET mqc_app_register_cb(UINT_T mq_pro, mqc_protocol_handler_cb handler);
279
290OPERATE_RET mqc_media_pub_async(IN CONST FLOW_BODY_ST *dt_body,
291 IN CONST UINT_T to_lmt, IN CONST CB_MQTT_PUB_INFORM cb, IN VOID *prv_data);
292
301OPERATE_RET mqc_media_pub_sync(IN CONST FLOW_BODY_ST *dt_body, IN CONST UINT_T timeout);
302
311OPERATE_RET mqc_media_pub_sync_v2(IN CONST FLOW_BODY_V2_ST *dt_body, IN CONST UINT_T timeout);
312
323OPERATE_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);
324
338OPERATE_RET mqc_custom_pub_async(IN CONST BYTE_T *data, IN CONST INT_T len, IN CONST CHAR_T *topic,
339 IN CONST BYTE_T qos, IN CONST UINT_T timeout, IN CONST CB_MQTT_PUB_INFORM cb,
340 IN VOID *prv_data);
341
353OPERATE_RET mqc_custom_pub_sync(IN CONST BYTE_T *data, IN CONST INT_T len, IN CONST CHAR_T *topic,
354 IN CONST BYTE_T qos, IN CONST UINT_T timeout);
355
364OPERATE_RET mqc_app_reg_ext_proto(CONST CHAR_T *sub_mq_pro, mqc_protocol_handler_cb handler);
365
373OPERATE_RET mqc_app_unreg_ext_proto(CONST CHAR_T *sub_mq_pro);
374
383OPERATE_RET mqc_app_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
384
393OPERATE_RET mqc_sdk_reg_ext_proto(CONST CHAR_T *sub_mq_pro, mqc_protocol_handler_cb handler);
394
402OPERATE_RET mqc_sdk_unreg_ext_proto(CONST CHAR_T *sub_mq_pro);
403
412OPERATE_RET mqc_sdk_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
413
422OPERATE_RET mqc_dev_reg_ext_proto(CONST CHAR_T *ext_mq_pro, mqc_protocol_handler_cb handler);
423
431OPERATE_RET mqc_dev_unreg_ext_proto(IN CONST CHAR_T *ext_mq_pro);
432
441OPERATE_RET mqc_dev_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
442
451OPERATE_RET mqc_ng_reg_ext_proto(CONST CHAR_T *ext_mq_pro, mqc_protocol_handler_cb handler);
452
460OPERATE_RET mqc_ng_unreg_ext_proto(IN CONST CHAR_T *ext_mq_pro);
461
469OPERATE_RET mqc_ng_ext_proto_data_rept(CONST CHAR_T *data, CONST BYTE_T qos);
470
478OPERATE_RET mqc_set_connection_linkage(netmgr_linkage_t *linkage);
479
487OPERATE_RET mqc_get_connection_linkage(netmgr_linkage_t **linkage);
488
497OPERATE_RET mqc_set_connection_switch(BOOL_T is_auto);
498
506OPERATE_RET mqtt_set_alive_time_s(IN CONST USHORT_T time);
507
515OPERATE_RET mqc_set_backoff_strategy(mqtt_backoff_t *backoff);
516
526OPERATE_RET mqc_app_get_cloud_time_sync(UINT64_T *cloud_recv_time, UINT64_T *cloud_send_time, UINT_T timeout_sec);
527
528#ifdef __cplusplus
529}
530#endif
531
532#endif
533
Facility of DevOS definitions
Definition: tuya_cloud_com_defs.h:852
Definition: tuya_cloud_com_defs.h:861
Definition: tuya_svc_mqtt_client.h:111
Definition: tuya_svc_netmgr_linkage.h:55
Definition: ty_cJSON.h:104
VOID(* CB_MQTT_DATA_RECV)(CONST CHAR_T *topic, BYTE_T *data, UINT_T len)
Callback when recv msg from broker
Definition: tuya_svc_mqtt_client.h:76
VOID(* CB_MQTT_PUB_INFORM)(OPERATE_RET op_ret, VOID *ctx)
Async callback that indicates QOS1 publish success or not.
Definition: tuya_svc_mqtt_client.h:142
TUYA network manager service