CAN驱动修改优化

This commit is contained in:
“hsc”
2026-08-07 09:06:43 +08:00
parent deb3544143
commit 062582e238
18 changed files with 583 additions and 558 deletions
-36
View File
@@ -120,44 +120,8 @@ namespace TSMasterCAN
NODE_RX_CANFD_MESSAGE_INDEX = 110,
}
/// <summary>
/// DBC 解码后的信号信息(替代原 ZLG ZDBC.DBCSignal)。
/// </summary>
public struct DBCSignal
{
/// <summary>信号名称(原始字节,兼容 Encoding.Default 解码)</summary>
public byte[] strName;
/// <summary>原始值(TSMaster tsdb_get_signal_value_canfd 返回的物理值)</summary>
public double nRawvalue;
/// <summary>因子(TSMaster 返回物理值,因子固定为 1</summary>
public double nFactor;
/// <summary>偏移(TSMaster 返回物理值,偏移固定为 0</summary>
public double nOffset;
}
/// <summary>
/// DBC 解码后的报文信息(替代原 ZLG ZDBC.DBCMessage)。
/// 在 CAN 接收回调中对原始 TLIBCANFD 帧解码后构建此对象并触发 OnDbcMessageDecoded 事件。
/// </summary>
public class DBCMessage
{
/// <summary>报文 ID</summary>
public uint nID;
/// <summary>信号数量</summary>
public int nSignalCount;
/// <summary>信号数组</summary>
public DBCSignal[] vSignals;
}
public class DBCParse
{
private static DBCParse? _instance;
/// <summary>单例实例,供 CAN.DBCParser 属性使用(MsgDatabase 等成员为 static,实例仅用于属性访问兼容)。</summary>
public static DBCParse Instance => _instance ??= new DBCParse();
/// <summary>最大通道数(等于 MsgDatabase 的维度)</summary>
public int MaxChannels => MsgDatabase.Count;
public static List<List<_Msg_>> MsgDatabase { get; set; } =
[.. Enumerable.Range(0, 12).Select(_ => new List<_Msg_>())];
public static can_network can_Network;