14#include "tuya_cloud_com_defs.h"
16#include "tuya_slist.h"
19#include "tal_thread.h"
25#define OPRT_RPC_CALL_TIMEOUT -10
26#define OPRT_RPC_CALL_NOT_FOUND -11
27#define OPRT_RPC_CALL_ERROR -11
28#define TUYA_RPC_DEFAULT_BUFSZ 256
29#define TUYA_RPC_ID_LEN (GW_ID_LEN)
30#define TUYA_RPC_KEY_LEN (LOCAL_KEY_LEN)
36} tuya_rpc_crypt_mode_t;
42typedef int (*rpc_crypt_cb)(uint8_t **data, uint32_t *len, uint8_t key[16], tuya_rpc_crypt_mode_t mode);
49 MUTEX_HANDLE node_mutex;
52 SLIST_HEAD declare_list;
53 SLIST_HEAD publish_list;
54 SLIST_HEAD subscribe_list;
55 rpc_crypt_cb crypt_cb;
56 char id [TUYA_RPC_ID_LEN + 1];
60 uint8_t default_buffer[TUYA_RPC_DEFAULT_BUFSZ];
Common process - base rpc
Definition: json_rpc.h:42
Definition: rpc_base.h:82
int tuya_rpc_set_crypt_cb(tuya_rpc_t *rpc, rpc_crypt_cb crypt_cb)
set encryption callback
void(* rpc_subscribe_cb)(jrpc_msg_t *request, void *arg)
rpc subscribe callback
Definition: svc_rpc.h:82
int tuya_rpc_declare(tuya_rpc_t *rpc, char *name, rpc_method_cb cb, void *arg)
declare one rpc according name
void(* rpc_method_cb)(jrpc_msg_t *request, void *arg, jrpc_msg_t *reply)
rpc method callback
Definition: svc_rpc.h:73
int tuya_rpc_set_crypt_key(tuya_rpc_t *rpc, uint8_t key[(LOCAL_KEY_LEN)])
set encryption key
void(* rpc_async_cb)(jrpc_msg_t *result, void *arg)
rpc async callback
Definition: svc_rpc.h:91
int tuya_rpc_call_sync(tuya_rpc_t *rpc, char *id, jrpc_msg_t *requset, jrpc_msg_t *reply, uint32_t sec)
rpc synchronous call
int tuya_rpc_call_notify(tuya_rpc_t *rpc, char *id, jrpc_msg_t *requset)
rpc call notify
int tuya_rpc_unsubscribe(tuya_rpc_t *rpc, char *id, char *name)
unsubscribe one rpc
int tuya_rpc_run(tuya_rpc_t *rpc, uint32_t stack_size, uint32_t prio)
create rpc task
int tuya_rpc_subscribe(tuya_rpc_t *rpc, char *id, char *name, rpc_subscribe_cb cb, void *arg)
subscribe one rpc
int tuya_rpc_init(tuya_rpc_t *rpc, char *id, char *addr)
rpc function init
int tuya_rpc_publish(tuya_rpc_t *rpc, char *name, jrpc_msg_t *msg)
publish one rpc
int tuya_rpc_control(tuya_rpc_t *rpc, uint8_t cmd, void *arg)
rpc control
int tuya_rpc_undeclare(tuya_rpc_t *rpc, char *name)
undeclare one rpc according name
int tuya_rpc_set_crypt(tuya_rpc_t *rpc, rpc_crypt_cb crypt_cb, uint8_t key[(LOCAL_KEY_LEN)])
set encryption key and callback
int tuya_rpc_call_async(tuya_rpc_t *rpc, char *id, jrpc_msg_t *requset, rpc_async_cb cb, void *arg, uint32_t sec)
rpc asynchronous call