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#define TUYA_TRANSPORTER_SET_TLS_CONFIG 0x0005
52
58 uint8_t isBlock;
59 uint8_t isReuse;
60 uint8_t isDisableNagle;
61 uint8_t isKeepAlive;
62 uint16_t bindPort;
63 TUYA_IP_ADDR_T bindAddr;
64 uint32_t sendTimeoutMs;
65 uint32_t recvTimeoutMs;
66 uint32_t keepAliveIdleTime;
67 uint32_t keepAliveInterval;
68 uint32_t keepAliveCount;
69};
70
75
76
80//struct tuya_transport_array_handle;
81// struct tuya_transporter_inter_t;
82
83typedef struct tuya_transport_array_handle* tuya_transport_array_handle_t;
84
90
91
100tuya_transport_array_handle_t tuya_transport_array_create();
101
112OPERATE_RET tuya_transport_array_destroy(tuya_transport_array_handle_t transport_handle);
113
125OPERATE_RET tuya_transport_array_add_transporter(tuya_transport_array_handle_t transport_handle, tuya_transporter_t transporter, char* scheme);
126
137OPERATE_RET tuya_transport_array_remove_transporter(tuya_transport_array_handle_t transport_handle, tuya_transporter_t transporter);
138
149tuya_transporter_t tuya_transport_array_get_transporter(tuya_transport_array_handle_t transport_handle, char* scheme);
150
151
152
153
158typedef uint8_t TUYA_TRANSPORT_TYPE_E;
159
160#define TRANSPORT_TYPE_TCP (1) //tcp transporter
161#define TRANSPORT_TYPE_TLS (2) //tls transporter
162#define TRANSPORT_TYPE_WEBSOCKET (3) //websocket transporter
163
174tuya_transporter_t tuya_transporter_create(TUYA_TRANSPORT_TYPE_E transport_type, tuya_transporter_t dependency);
175
185OPERATE_RET tuya_transporter_destroy(tuya_transporter_t transporter);
186
199OPERATE_RET tuya_transporter_connect(tuya_transporter_t transporter, const char* host, int port, int timeout_ms);
212OPERATE_RET tuya_transporter_read(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
213
226OPERATE_RET tuya_transporter_write(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
227
228
239OPERATE_RET tuya_transporter_poll_read(tuya_transporter_t transporter, int timeout_ms);
249OPERATE_RET tuya_transporter_close(tuya_transporter_t transporter);
250
264OPERATE_RET tuya_transporter_ctrl(tuya_transporter_t transporter, uint32_t cmd, void* args);
265
276typedef OPERATE_RET(*transporter_destroy_fn)(tuya_transporter_t t);
277
290typedef OPERATE_RET(*transporter_connect_fn)(tuya_transporter_t transporter, const char* host, int port, int timeout_ms);
291
304typedef OPERATE_RET(*transporter_read_fn)(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
305
318typedef OPERATE_RET(*transporter_write_fn)(tuya_transporter_t transporter, uint8_t* buf, int len, int timeout_ms);
319
320
331typedef OPERATE_RET(*transporter_poll_read_fn)(tuya_transporter_t transporter, int timeout_ms);
332
344typedef OPERATE_RET(*transporter_poll_write_fn)(tuya_transporter_t transporter, int timeout_ms);
354typedef OPERATE_RET(*transporter_close_fn)(tuya_transporter_t transporter);
355
369typedef OPERATE_RET(*transporter_ctrl)(tuya_transporter_t transporter, uint32_t cmd, void* args);
370
381OPERATE_RET tuya_transporter_set_func(tuya_transporter_t transporter,
382 transporter_connect_fn connect, transporter_close_fn close,
383 transporter_read_fn read, transporter_write_fn write, transporter_poll_read_fn poll_read,
384 transporter_poll_read_fn poll_write, transporter_destroy_fn destroy, transporter_ctrl ctrl);
385
386
388 char* scheme;
389 transporter_connect_fn f_connect;
390 transporter_read_fn f_read;
391 transporter_write_fn f_write;
392 transporter_poll_read_fn f_poll_read;
393 transporter_poll_write_fn f_poll_write;
394 transporter_close_fn f_close;
395 transporter_destroy_fn f_destroy;
396 transporter_ctrl f_ctrl;
397};
398
399
400
401#ifdef __cplusplus
402} // extern "C"
403#endif
404
405#endif
定义了tcp transporter配置选项
Definition: tuya_transporter.h:57
Definition: tuya_transporter.h:387