openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
canbus.h
浏览该文件的文档.
1/*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2025. 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 */
18#ifndef DRIVER_CANBUS_H
19#define DRIVER_CANBUS_H
20#include <linux/can.h>
21#include "driver.h"
22
23namespace DRIVER_CANBUS {
24using namespace std;
25using namespace bcal;
26
27constexpr string_view_t CANBUS_TRACE_NAME = "canbus";
28
33class Canbus : public IDriver {
34public:
44 virtual string_t read(int32_t index, uint32_t can_id, uint32_t len, uint32_t timeout) = 0;
45
54 virtual int32_t write(int32_t index, const string_view_t &val, uint32_t timeout) = 0;
55
62 virtual void set_speed(int32_t index, uint32_t speed) = 0;
63
71 virtual void set_filter(int32_t index, uint32_t can_id, uint32_t mask) = 0;
72
78 virtual void reset(int32_t index) = 0;
79};
80
81} // namespace
82#endif // DRIVER_CANBUS
CANBUS 驱动接口
Definition canbus.h:33
virtual void set_speed(int32_t index, uint32_t speed)=0
设置 CANBUS 的通信速率
virtual int32_t write(int32_t index, const string_view_t &val, uint32_t timeout)=0
向 CANBUS 写入数据
virtual string_t read(int32_t index, uint32_t can_id, uint32_t len, uint32_t timeout)=0
读取 CANBUS 数据
virtual void set_filter(int32_t index, uint32_t can_id, uint32_t mask)=0
设置 CANBUS 的过滤器 设置CAN过滤器。当 <接收的CAN ID> & mask == id & mask,报文接收
virtual void reset(int32_t index)=0
复位 CANBUS
BCAL层驱动公共接口
Definition driver.h:41
BCAL 驱动公共接口定义