CAN FD 波特率等参数的增加和联动配置

This commit is contained in:
2025-07-09 22:15:19 +08:00
parent 6a2ce24cbb
commit 42c4502a8d
14 changed files with 430 additions and 29 deletions

View File

@@ -73,6 +73,38 @@ namespace CapMachine.Wpf.CanDrive
#region
/// <summary>
/// 仲裁波特率
/// </summary>
public uint ArbBaudRate { get; set; } = 500000;
/// <summary>
/// 数据波特率
/// </summary>
public uint DataBaudRate { get; set; } = 2000000;
/// <summary>
/// CAN FD标准 ISO是否启用
/// </summary>
public bool ISOEnable { get; set; } = true;
/// <summary>
/// 终端电阻 是否启用
/// </summary>
public bool ResEnable { get; set; } = true;
/// <summary>
/// 更新配置
/// </summary>
public void UpdateConfig(uint arbBaudRate, uint dataBaudRate, bool iSOEnable, bool resEnable)
{
ArbBaudRate = arbBaudRate;
DataBaudRate = dataBaudRate;
ISOEnable = iSOEnable;
ResEnable = resEnable;
}
/// <summary>
/// 设备固件信息
/// </summary>
@@ -256,7 +288,7 @@ namespace CapMachine.Wpf.CanDrive
public void GetCANConfig()
{
//获取CAN波特率参数
ret = USB2CANFD.CANFD_GetCANSpeedArg(DevHandle, ref CANConfig, 500000, 2000000);
ret = USB2CANFD.CANFD_GetCANSpeedArg(DevHandle, ref CANConfig, ArbBaudRate, DataBaudRate);
if (ret != USB2CANFD.CANFD_SUCCESS)
{
Console.WriteLine("Get CAN Speed failed!");
@@ -276,7 +308,8 @@ namespace CapMachine.Wpf.CanDrive
public void InitCAN()
{
//初始化CAN
CANConfig.ISOCRCEnable = 1;//使能ISOCRC
CANConfig.ISOCRCEnable = ISOEnable == true ? (byte)1 : (byte)0;//使能ISOCRC
CANConfig.ResEnable = ResEnable == true ? (byte)1 : (byte)0;//使能终端电阻
ret = USB2CANFD.CANFD_Init(DevHandle, WriteCANIndex, ref CANConfig);
if (ret != USB2CANFD.CANFD_SUCCESS)
{
@@ -554,7 +587,7 @@ namespace CapMachine.Wpf.CanDrive
//发送CAN数据
int SendedNum = USB2CANFD.CANFD_SendMsg(DevHandle, WriteCANIndex, CanMsg, (Int32)CanMsg.Length);
if (SendedNum >= 0)
{
//Console.WriteLine("Success send frames:{0}", SendedNum);