openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
uart.h
浏览该文件的文档.
1/*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved.
3 *
4 * this file licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 * http://license.coscl.org.cn/MulanPSL2
8 *
9 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
10 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
11 * PURPOSE.
12 * See the Mulan PSL v2 for more details.
13 */
14
19#ifndef DRIVER_UART_H
20#define DRIVER_UART_H
21
22#include <termios.h>
23#include <map>
24#include <unordered_set>
25#include "driver.h"
26
27namespace DRIVER_UART {
28using namespace bcal;
29
34class Uart : public IDriver {
35public:
36
42 virtual void open(int32_t index) = 0;
43
49 virtual void close(int32_t index) = 0;
50
58 virtual string_t read(int32_t index, uint32_t len) = 0;
59
68 virtual string_t select_read(int32_t index, uint32_t len, uint32_t timeout) = 0;
69
77 virtual int32_t write(int32_t index, const string_view_t &val) = 0;
78
85 virtual void send_break(int32_t index, int32_t duration) = 0;
86
93 virtual void set_baud_rate(int32_t index, uint32_t baud) = 0;
94
101 virtual void set_parity(int32_t index, char parity) = 0;
102
109 virtual void set_data_bits(int32_t index, uint8_t bits) = 0;
110
117 virtual void set_stop_bits(int32_t index, uint8_t bits) = 0;
118
125 virtual uint32_t query_uart_connection(int32_t index) = 0;
126
133 virtual uint32_t query_port_connection(int32_t index) = 0;
134
141 virtual uint32_t get_host_baud_rate(int32_t index);
142
149 virtual void uart_connect_uart(uint32_t src_uart, uint32_t dst_uart);
150
157 virtual void uart_connect_port(uint32_t src_uart, uint32_t dst_port);
158
165 virtual void port_connect_port(uint32_t src_port, uint32_t dst_port);
166};
167} // namespace
168#endif
UART接口类
Definition uart.h:34
virtual void close(int32_t index)=0
关闭UART通道
virtual void uart_connect_port(uint32_t src_uart, uint32_t dst_port)
连接UART与PORT
virtual void set_baud_rate(int32_t index, uint32_t baud)=0
设置UART波特率
virtual void set_stop_bits(int32_t index, uint8_t bits)=0
设置UART停止位位数
virtual uint32_t get_host_baud_rate(int32_t index)
获取HOST的波特率
virtual void port_connect_port(uint32_t src_port, uint32_t dst_port)
连接PORT与PORT
virtual void open(int32_t index)=0
打开UART通道
virtual string_t read(int32_t index, uint32_t len)=0
读取UART数据
virtual void uart_connect_uart(uint32_t src_uart, uint32_t dst_uart)
连接UART与UART
virtual int32_t write(int32_t index, const string_view_t &val)=0
写UART数据
virtual string_t select_read(int32_t index, uint32_t len, uint32_t timeout)=0
阻塞读取UART数据
virtual void set_data_bits(int32_t index, uint8_t bits)=0
设置UART数据位位数
virtual void set_parity(int32_t index, char parity)=0
设置UART校验位
virtual uint32_t query_port_connection(int32_t index)=0
查询UART连接的Port
virtual uint32_t query_uart_connection(int32_t index)=0
查询串口链接的UART编号
virtual void send_break(int32_t index, int32_t duration)=0
发送UART break信号
BCAL层驱动公共接口
Definition driver.h:41
BCAL 驱动公共接口定义