TuyaOS
tuya_transporter.h
1#ifndef __TRANSPORT_H__
2#define __TRANSPORT_H__
3
4#ifdef __cplusplus
5extern "C" {
6#endif
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#include "tuya_cloud_types.h"
45
46/*tuya transporter command definitions*/
47#define TUYA_TRANSPORTER_SET_TLS_CERT 0x0001
48#define TUYA_TRANSPORTER_GET_TCP_SOCKET 0x0002
49#define TUYA_TRANSPORTER_SET_TCP_CONFIG 0x0003
50#define TUYA_TRANSPORTER_SET_WEBSOCKET_CONFIG 0x0004
51
57 uint8_t isBlock;
58 uint8_t isReuse;
59 uint8_t isDisableNagle;
60 uint8_t isKeepAlive;
61 uint16_t bindPort;
62 TUYA_IP_ADDR_T bindAddr;
63 uint32_t sendTimeoutMs;
64 uint32_t recvTimeoutMs;
65 uint32_t keepAliveIdleTime;
66 uint32_t keepAliveInterval;
67 uint32_t keepAliveCount;
68};
69
74
75
79//struct tuya_transport_array_handle;
80// struct tuya_transporter_inter_t;
81
82typedef struct tuya_transport_array_handle* tuya_transport_array_handle_t;
83
89
90
99tuya_transport_array_handle_t tuya_transport_array_create();
100
111OPERATE_RET tuya_transport_array_destroy(tuya_transport_array_handle_t transport_handle);
112
124OPERATE_RET tuya_transport_array_add_transporter(tuya_transport_array_handle_t transport_handle, tuya_transporter_t transporter, char* scheme);
125
136OPERATE_RET tuya_transport_array_remove_transporter(tuya_transport_array_handle_t transport_handle, tuya_transporter_t transporter);
137
148tuya_transporter_t tuya_transport_array_get_transporter(tuya_transport_array_handle_t transport_handle, char* scheme);
149
150
151
152
157typedef uint8_t TUYA_TRANSPORT_TYPE_E;
158
159#define TRANSPORT_TYPE_TCP (1) //tcp transporter
160#define TRANSPORT_TYPE_TLS (2) //tls transporter
161#define TRANSPORT_TYPE_WEBSOCKET (3) //websocket transporter
162
173tuya_transporter_t tuya_transporter_create(TUYA_TRANSPORT_TYPE_E transport_type, tuya_transporter_t dependency);
174
184OPERATE_RET tuya_transporter_destroy(tuya_transporter_t transporter);
185
198OPERATE_RET tuya_transporter_connect(tuya_transporter_t transporter, const char* host, int port, int timeout_ms);
211OPERATE_RET tuya_transporter_read(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
212
225OPERATE_RET tuya_transporter_write(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
226
227
238OPERATE_RET tuya_transporter_poll_read(tuya_transporter_t transporter, int timeout_ms);
248OPERATE_RET tuya_transporter_close(tuya_transporter_t transporter);
249
263OPERATE_RET tuya_transporter_ctrl(tuya_transporter_t transporter, uint32_t cmd, void* args);
264
275typedef OPERATE_RET(*transporter_destroy_fn)(tuya_transporter_t t);
276
289typedef OPERATE_RET(*transporter_connect_fn)(tuya_transporter_t transporter, const char* host, int port, int timeout_ms);
290
303typedef OPERATE_RET(*transporter_read_fn)(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
304
317typedef OPERATE_RET(*transporter_write_fn)(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
318
319
330typedef OPERATE_RET(*transporter_poll_read_fn)(tuya_transporter_t transporter, int timeout_ms);
331
343typedef OPERATE_RET(*transporter_poll_write_fn)(tuya_transporter_t transporter, int timeout_ms);
353typedef OPERATE_RET(*transporter_close_fn)(tuya_transporter_t transporter);
354
368typedef OPERATE_RET(*transporter_ctrl)(tuya_transporter_t transporter, uint32_t cmd, void* args);
369
380OPERATE_RET tuya_transporter_set_func(tuya_transporter_t transporter,
381 transporter_connect_fn connect, transporter_close_fn close,
382 transporter_read_fn read, transporter_write_fn write, transporter_poll_read_fn poll_read,
383 transporter_poll_read_fn poll_write, transporter_destroy_fn destroy, transporter_ctrl ctrl);
384
385
387 char* scheme;
388 transporter_connect_fn f_connect;
389 transporter_read_fn f_read;
390 transporter_write_fn f_write;
391 transporter_poll_read_fn f_poll_read;
392 transporter_poll_write_fn f_poll_write;
393 transporter_close_fn f_close;
394 transporter_destroy_fn f_destroy;
395 transporter_ctrl f_ctrl;
396};
397
398
399
400#ifdef __cplusplus
401} // extern "C"
402#endif
403
404#endif
定义了tcp transporter配置选项
Definition: tuya_transporter.h:56
Definition: tuya_transporter.h:386