TuyaOS
rpc_base.h
浏览该文件的文档.
1
11#ifndef __RPC_BASE_H__
12#define __RPC_BASE_H__
13
14/*============================ INCLUDES ======================================*/
15#include "tuya_os_adapter.h"
16#include "uni_slist.h"
17#include "tal_workq_service.h"
18#include "tal_sw_timer.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/*============================ MACROS ========================================*/
25/*============================ TYPES =========================================*/
36typedef int (*rpc_send_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data);
48typedef int (*rpc_reply_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint8_t *fuck_key);
49
61typedef int (*rpc_recv_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint16_t sequence);
62
63
64typedef struct {
65 rpc_send_cb send_cb;
66 rpc_recv_cb request_cb;
67 rpc_recv_cb notify_cb;
68 void *priv_data;
70
71typedef struct {
72 void *data;
73 uint32_t data_len;
74 uint16_t timeout;
75 rpc_reply_cb reply_cb;
76 char *addr;
77 void *priv_data;
78 uint8_t *fuck_key;
79} rpc_msg_t;
80
81typedef struct {
82 MUTEX_HANDLE mutex;
83 uint16_t sequence;
84 rpc_send_cb send_cb;
85 rpc_recv_cb request_cb;
86 rpc_recv_cb notify_cb;
87 rpc_recv_cb pipe_cb;
88 TIMER_ID async_timer;
89 MUTEX_HANDLE async_mutex;
90 SLIST_HEAD async_list;
91 void *priv_data;
93
94/*============================ PROTOTYPES ====================================*/
103
112
121
130int rpc_base_reply(rpc_base_t *base, rpc_msg_t *msg, uint16_t sequence);
131
132
144 char *addr,
145 uint8_t *frame,
146 uint32_t frame_len,
147 uint8_t *fuck_key);
148#ifdef __cplusplus
149}
150#endif
151
152#endif
int(* rpc_recv_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint16_t sequence)
rpc received callback
Definition: rpc_base.h:61
int(* rpc_reply_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint8_t *fuck_key)
rpc reply callback
Definition: rpc_base.h:48
int(* rpc_send_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data)
rpc send callback
Definition: rpc_base.h:36
int rpc_base_reply(rpc_base_t *base, rpc_msg_t *msg, uint16_t sequence)
rpc base reply
int rpc_base_init(rpc_base_t *base, rpc_base_cfg_t *cfg)
rpc base init
int rpc_base_request(rpc_base_t *base, rpc_msg_t *msg)
rpc base request
int rpc_base_notify(rpc_base_t *base, rpc_msg_t *msg)
rpc base notify
int rpc_base_frame_process(rpc_base_t *base, char *addr, uint8_t *frame, uint32_t frame_len, uint8_t *fuck_key)
rpc base reply
Definition: rpc_base.h:64
Definition: rpc_base.h:81
Definition: rpc_base.h:71
sigle list head
Definition: tuya_slist.h:24
Common process - Initialization
Common process - Initialization
tuya sigle list module