RP-01_Flutter/lib/CanLib/abstract_can_device.dart
2025-04-30 17:01:25 +08:00

60 lines
1.3 KiB
Dart

import 'can_fd_msg.dart';
//CAN设备状态抽象类
class CANDev {
//CAN设备名称
String devname;
//CAN设备序列号
String devsn='sn_none';
//CAN设备通道数量
int devchannel;
//CAN运行设备状态
bool runstatus=false;
//通道状态
List<bool> channelstatus=[];
//固件版本号
String firmwareversion='0.0.0';
//设备句柄
int devhandle=0;
int errCounter=0;
CANDev({
required this.devname,
required this.devchannel,
this.devsn='sn_none',
this.runstatus=false,
this.devhandle=0,
this.firmwareversion='0.0.0',
})
{
for(int i=0;i<devchannel;i++) {
channelstatus.add(false);
}
}
}
abstract class AbstractCANDevice {
// 初始化CAN设备
bool initialize();
// 刷新CAN设备
int refresh();
//获取CAN设备列表
List<CANDev> getDeviceList();
// 启动CAN设备
bool start({required int canIndex,required int canChannel , required int baudrate});
// 停止CAN设备
bool stop({required int canIndex});
// 发送CAN消息
Future<bool> sendMessage({required int canIndex, required int canChannel, required int canid,required List<int> data});
// 接收CAN消息
Stream<CanFdMsg> receiveMessage({required int canIndex, required int canChannel});
}