现场功能更改5

This commit is contained in:
2026-05-14 14:57:28 +08:00
parent 985ad12d63
commit 873f6ced0a

View File

@@ -26,6 +26,7 @@ namespace CapMachine.Wpf.CanDrive
{
private readonly IContainerProvider ContainerProvider;
private readonly object _dbcParserLock = new object();
private const int DbcStringBufferCapacity = 256;
/// <summary>
/// 实例化函数
@@ -354,11 +355,11 @@ namespace CapMachine.Wpf.CanDrive
int DBCMsgNum = CAN_DBCParser.DBC_GetMsgQuantity(DBCHandle);
for (int i = 0; i < DBCMsgNum; i++)
{
StringBuilder MsgName = new StringBuilder(32);
StringBuilder MsgName = new StringBuilder(DbcStringBufferCapacity);
CAN_DBCParser.DBC_GetMsgName(DBCHandle, i, MsgName);
//Console.WriteLine("Msg.Name = {0}", MsgName);
int DBCSigNum = CAN_DBCParser.DBC_GetMsgSignalQuantity(DBCHandle, MsgName);
StringBuilder Publisher = new StringBuilder(32);
StringBuilder Publisher = new StringBuilder(DbcStringBufferCapacity);
CAN_DBCParser.DBC_GetMsgPublisher(DBCHandle, MsgName, Publisher);
long MsgId;
MsgId = CAN_DBCParser.DBC_GetMsgIDByName(DBCHandle, MsgName);
@@ -366,7 +367,7 @@ namespace CapMachine.Wpf.CanDrive
//Console.Write("Signals:");
for (int j = 0; j < DBCSigNum; j++)
{
StringBuilder SigName = new StringBuilder(32);
StringBuilder SigName = new StringBuilder(DbcStringBufferCapacity);
CAN_DBCParser.DBC_GetMsgSignalName(DBCHandle, MsgName, j, SigName);
//Console.Write("{0} ", SigName);
@@ -628,15 +629,16 @@ namespace CapMachine.Wpf.CanDrive
//将CAN消息数据填充到信号里面用DBC解析数据
CAN_DBCParser.DBC_SyncCANMsgToValue(DBCHandle, msgPtRead, CanNum);
double[] valueDouble = new double[1];
//循环获取消息的数据
foreach (var item in ListCanDbcModel)
{
//有配置的名称的,认为是有用的,则需要读取数据
//if (!string.IsNullOrEmpty(item.Name))
//{
var valueSb = new StringBuilder(64);
CAN_DBCParser.DBC_GetSignalValueStr(DBCHandle, new StringBuilder(item.MsgName), new StringBuilder(item.SignalName), valueSb);
item.SignalRtValueSb = valueSb;
valueDouble[0] = 0;
CAN_DBCParser.DBC_GetSignalValue(DBCHandle, new StringBuilder(item.MsgName), new StringBuilder(item.SignalName), valueDouble);
item.SignalRtValue = valueDouble[0].ToString();
//}
}
}