添加xcpcore,添加加载dbc至单一通道

This commit is contained in:
“hsc”
2026-10-15 14:05:18 +08:00
parent a2a62a0327
commit 981bc1e558
12 changed files with 983 additions and 225 deletions
+32
View File
@@ -146,7 +146,22 @@ namespace TSMasterCAN
return re;
}
/// <summary>
/// 加载DBC至单一通道
/// </summary>
/// <param name="filePath"></param>
/// <param name="channel"></param>
/// <returns></returns>
public static int LoadDBCToSingleChannel(string filePath, int channel)
{
uint databaseID = 0;
if (!Path.Exists(filePath)) return -1;
var re = TsMasterApi.tsdb_load_can_db(Path.GetFullPath(filePath), string.Join(",", channel), ref databaseID);
DBCParse.parse(databaseID, channel);
DBCParse.rbs_parse(databaseID, channel);
return re;
}
/// <summary>
/// 卸载DBC
/// </summary>
@@ -321,6 +336,23 @@ namespace TSMasterCAN
}
}
/// <summary>
/// 按帧 ID 构造并发送 CANFD 报文(不依赖 DBC 数据库与报文名),可选择单次发送或周期发送。
/// </summary>
/// <param name="channel">通道号</param>
/// <param name="ID">报文帧 ID</param>
/// <param name="bytes">报文数据数组(最多 64 字节,超出部分截断)</param>
/// <param name="sendPeriod">发送周期(毫秒):0 = 只发送一次;&gt;0 = 按该周期循环发送</param>
/// <param name="isExt">是否扩展帧(29 位 ID),默认标准帧</param>
/// <returns>返回代码,0 表示成功,非 0 表示失败(可用 <see cref="GetErrorDescription"/> 查询错误说明)</returns>
public static int SendMsgById(APP_CHANNEL channel, int ID, byte[] bytes, float sendPeriod = 0, bool isExt = false)
{
var data = new byte[64];
Array.Copy(bytes, data, Math.Min(bytes.Length, 64));
return SendMsg(channel, ID, true, isExt, false, (byte)Math.Min(bytes.Length, 64),
data, true, false, false, sendPeriod);
}
/// <summary>
/// 构造并发送自定义 CAN/CANFD 报文,可选择单次发送或周期发送,并可同步更新 DBC 数据库中同 ID 报文的数据。
/// </summary>
+1 -1
View File
@@ -14,7 +14,7 @@
<ItemGroup>
<Reference Include="Interop.TSMasterAPI">
<HintPath>..\CanDriver\bin\Debug\net8.0\Interop.TSMasterAPI.dll</HintPath>
<HintPath>Interop.TSMasterAPI.dll</HintPath>
</Reference>
</ItemGroup>