mirror of
https://github.com/m5stack/M5Stack_MicroPython.git
synced 2026-05-20 10:14:44 -07:00
49 lines
1.2 KiB
C
49 lines
1.2 KiB
C
#ifndef INC_MACHINE_UART_H
|
|
#define INC_MACHINE_UART_H
|
|
|
|
#include "driver/uart.h"
|
|
#include "py/runtime.h"
|
|
|
|
#define UART_CB_TYPE_DATA 1
|
|
#define UART_CB_TYPE_PATTERN 2
|
|
#define UART_CB_TYPE_ERROR 3
|
|
#define UART_BUFF_SIZE 256
|
|
|
|
typedef struct _machine_uart_obj_t {
|
|
mp_obj_base_t base;
|
|
uart_port_t uart_num;
|
|
int8_t bits;
|
|
int8_t parity;
|
|
int8_t stop;
|
|
int8_t tx;
|
|
int8_t rx;
|
|
int8_t rts;
|
|
int8_t cts;
|
|
int data_cb_size;
|
|
uint8_t pattern[16];
|
|
uint8_t pattern_len;
|
|
uint16_t timeout; // timeout waiting for first char (in ms)
|
|
uint16_t buffer_size;
|
|
uint32_t *data_cb;
|
|
uint32_t *pattern_cb;
|
|
uint32_t *error_cb;
|
|
uint32_t inverted;
|
|
uint8_t end_task;
|
|
uint8_t lineend[3];
|
|
} machine_uart_obj_t;
|
|
|
|
typedef struct _uart_ringbuf_t {
|
|
uint8_t *buf;
|
|
uint16_t size;
|
|
uint16_t iget;
|
|
uint16_t iput;
|
|
} uart_ringbuf_t;
|
|
|
|
|
|
char *_uart_read(uart_port_t uart_num, int timeout, char *lnend, char *lnstart);
|
|
int match_pattern(uint8_t *text, int text_length, uint8_t *pattern, int pattern_length);
|
|
int uart_buf_get(uart_ringbuf_t *r, uint8_t *dest, uint16_t len);
|
|
int uart_buf_put(uart_ringbuf_t *r, uint8_t *source, uint16_t len);
|
|
|
|
#endif
|