Skip to content

Commit 277239d

Browse files
committed
v0.5.9
1 parent 0f1af94 commit 277239d

File tree

17 files changed

+572
-487
lines changed

17 files changed

+572
-487
lines changed

app/include/driver/wdrv.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
#ifdef USE_WDRV
1212

1313
#define WDRV_TASK_QUEUE_LEN 3
14+
#if defined(USE_RS485DRV) || defined(USE_TCP2UART)
15+
#define WDRV_TASK_PRIO (USER_TASK_PRIO_1) // + SDK_TASK_PRIO)
16+
#else
1417
#define WDRV_TASK_PRIO (USER_TASK_PRIO_0) // + SDK_TASK_PRIO)
18+
#endif
1519
#define WDRV_SIG_DATA 1
1620
#define WDRV_SIG_INIT 2
1721
#define WDRV_SIG_STOP 3

app/include/tcp2uart.h

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#define DEFAULT_TCP2UART_PORT USE_TCP2UART // 12345
2020

21-
void uart_init(void) ICACHE_FLASH_ATTR;
21+
void uarts_init(void) ICACHE_FLASH_ATTR;
2222

2323
void uart_save_fcfg(uint8 set) ICACHE_FLASH_ATTR;
2424
void uart_read_fcfg(uint8 set) ICACHE_FLASH_ATTR;
@@ -33,27 +33,46 @@ void update_mux_uart0(void) ICACHE_FLASH_ATTR;
3333
void update_mux_txd1(void) ICACHE_FLASH_ATTR;
3434
void set_uartx_invx(uint8 uartn, uint8 set, uint32 bit_mask) ICACHE_FLASH_ATTR;
3535

36-
#define RST_FIFO_CNT_SET 16 // при остатке в fifo места для 16 символов срабатывает RTS
36+
#define RST_FIFO_CNT_SET 8 // при остатке в fifo места для 16 символов срабатывает RTS
3737

3838
#ifdef USE_TCP2UART
39-
extern os_timer_t uart0_rx_buf_timer;
40-
extern os_timer_t uart0_tx_buf_timer;
41-
extern TCP_SERV_CONN * tcp2uart_conn;
42-
extern TCP_SERV_CFG * tcp2uart_servcfg;
43-
extern uint32 wait_send_tx;
4439

45-
void loading_rx_buf(void) ICACHE_FLASH_ATTR;
46-
void send_tx_buf(void) ICACHE_FLASH_ATTR;
40+
#define UART_RX_BUF_MAX 8192 // размер приемного буфера (не менее TCP_MSS*2 + ...)
41+
#define UART_TASK_QUEUE_LEN 3
42+
#define UART_TASK_PRIO (USER_TASK_PRIO_0) // + SDK_TASK_PRIO)
43+
44+
typedef void uart_rx_blk_func(uint8 *buf, uint32 count); // функция обработки принятых блоков из UART
45+
typedef void uart_tx_next_chars_func(void); // запрос на передачу следующих символов блока в UART
46+
47+
typedef enum {
48+
UART_RX_CHARS = 1,
49+
UART_TX_CHARS,
50+
} UART_SIGS;
4751

48-
err_t tcp2uart_write(uint8 *pblk, uint16 len) ICACHE_FLASH_ATTR;
49-
err_t tcp2uart_server_init(uint16 portn) ICACHE_FLASH_ATTR;
50-
err_t tcp2uart_client_init(uint32 ip, uint16 portn);
51-
err_t tcp2uart_start(uint16 newportn) ICACHE_FLASH_ATTR;
52-
void tcp2uart_close(void) ICACHE_FLASH_ATTR;
52+
typedef struct {
53+
uint8 * uart_rx_buf; // указатель на буфер [UART_RX_BUF_MAX], если равер NULL, драйвер отключен
54+
uint32 uart_rx_buf_count; // указатель принимаемых с UART символов в буфере
55+
uint32 uart_out_buf_count; // кол-во переданных байт из буфера на обработку
56+
uint32 uart_nsnd_buf_count; // кол-во ещё не переданных байт из буфера (находящихся в ожидании к передаче)
57+
uart_rx_blk_func * uart_send_rx_blk; // функция обработки принятых блоков из UART
58+
uart_tx_next_chars_func * uart_tx_next_chars; // запрос на передачу следующих символов блока в UART
59+
ETSEvent taskQueue[UART_TASK_QUEUE_LEN];
60+
}suart_drv;
5361

54-
void tcp2uart_int_rxtx_disable(void) ICACHE_FLASH_ATTR;
62+
void uart0_set_tout(void);
63+
void uart_del_rx_chars(uint32 len);
64+
uint32 uart_tx_buf(uint8 *buf, uint32 count);
65+
bool uart_drv_start(void);
66+
void uart_drv_close(void);
5567

56-
#define MAX_WAIT_TX_BUF 50000ul // 50 ms
68+
69+
err_t tcp2uart_write(uint8 *pblk, uint16 len);
70+
err_t tcp2uart_start(uint16 newportn);
71+
void tcp2uart_close(void);
72+
73+
extern suart_drv uart_drv;
74+
extern TCP_SERV_CONN * tcp2uart_conn;
75+
extern TCP_SERV_CFG * tcp2uart_servcfg;
5776

5877
#endif // USE_TCP2UART
5978
#endif /* _TCP2UART_H_ */

app/include/tcp_srv_conn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ typedef struct t_TCP_SERV_CONN {
111111
uint16 sizeo; //+48 размер буфера передачи
112112
uint16 sizei; //+52 размер приемного буфера
113113
uint16 cntro; //+56 кол-во обработанных байт в буфере передачи
114-
uint16 cntri; //+60 кол-во не обработанных байт в буфере приема
114+
uint16 cntri; //+60 кол-во обработанных байт в буфере приема
115115
uint16 unrecved_bytes; //+64 используется при ручном управлении TCP WIN / This can be used to throttle data reception
116116
// далее идут переменные не относящиеся к работе tcp_srv_conn
117117
uint8 *linkd; //+68 указатель на прилепленные данные пользователя (при закрытии соединения вызывается os_close(linkd), если linkd != NULL;

app/sdklib/system/mem_manager.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ void *pvPortMalloc( size_t xWantedSize )
166166
xBlockLink *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
167167
void *pvReturn = NULL;
168168

169-
// os_printf("%s %d %d\n", __func__, xWantedSize, xFreeBytesRemaining);
169+
//ets_printf("%s %d %d\n", __func__, xWantedSize, xFreeBytesRemaining);
170170

171171
ets_intr_lock();
172172
{

app/user/user_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ void ICACHE_FLASH_ATTR user_init(void) {
8989
GPIO13_MUX = VAL_MUX_GPIO13_SDK_DEF;
9090
GPIO14_MUX = VAL_MUX_GPIO14_SDK_DEF;
9191
GPIO15_MUX = VAL_MUX_GPIO15_SDK_DEF;
92-
uart_init();
92+
uarts_init();
9393
system_timer_reinit();
9494
#if (DEBUGSOO > 0 && defined(USE_WEB))
9595
os_printf("\nSimple WEB version: " WEB_SVERSION "\n");

0 commit comments

Comments
 (0)