更新,未成功
This commit is contained in:
@@ -940,10 +940,11 @@ namespace CapMachine.Wpf.CanDrive
|
||||
//释放申请的临时缓冲区
|
||||
Marshal.FreeHGlobal(msgPtSend);
|
||||
|
||||
//********就是可以设置多个调度表放那里,但是运行时同一个时刻只能运行调度表其中的一个 ********
|
||||
|
||||
//Sample:总共3个调度表,第一个表里面包含3帧数据,第二个调度表包含6帧数据,第三个调度表包含11帧数据
|
||||
//约定每帧对应一个调度表,预设5个调度表,每个调度表对应一个帧
|
||||
MsgTabNum = new Byte[MsgTabCount] { 1, 1, 1, 1, 1 };
|
||||
//预设5个调度表,约定每个调度表对应5个帧
|
||||
MsgTabNum = new Byte[MsgTabCount] { 5, 5, 5, 5, 5 };
|
||||
//0xFFFF:调度表循环发送数据,X:调度表循环发送的次数
|
||||
//设置每个调度表的发送方式,约定全部为循环发送
|
||||
SendTimes = new UInt16[MsgTabCount] { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF };
|
||||
@@ -971,7 +972,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
ret = USB2CAN.CAN_StartSchedule(DevHandle, WriteCANIndex, (byte)CANScheduleConfig.SchTabIndex, (byte)CANScheduleConfig.Cycle, (byte)CANScheduleConfig.OrderSend);
|
||||
if (ret == USB2CAN.CAN_SUCCESS)
|
||||
{
|
||||
Console.WriteLine($"Start CAN Schedule 1 Success,SchTabIndex:{(byte)CANScheduleConfig.SchTabIndex}-Cycle:{(byte)CANScheduleConfig.Cycle}-OrderSend:{(byte)CANScheduleConfig.OrderSend}");
|
||||
Console.WriteLine($"Start CAN Schedule 1 Success,SchTabIndex:{(byte)CANScheduleConfig.SchTabIndex} - Cycle:{(byte)CANScheduleConfig.Cycle} - OrderSend:{(byte)CANScheduleConfig.OrderSend}");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1037,7 +1038,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
{
|
||||
foreach (var itemSignal in itemMsg)
|
||||
{
|
||||
itemSignal.SignalCmdValue = random.Next(0, 100); //仿真测试数据使用
|
||||
itemSignal.SignalCmdValue = random.Next(0, 10); //仿真测试数据使用
|
||||
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue);
|
||||
}
|
||||
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPtSend);
|
||||
@@ -1059,14 +1060,14 @@ namespace CapMachine.Wpf.CanDrive
|
||||
|
||||
// MsgTabIndex CAN调度表索引号 ;MsgIndex 开始更新帧起始索引,若起始索引大于调度表帧数,则将帧添加到调度表后面, ;
|
||||
// pCanMsg 需要更新的CAN帧指针,消息数据 ; MsgNum pCanMsgTab里面包含的有效帧数,一个调度表对应一个帧/消息,即为:1 (byte)(itemMsgSchConfig.MsgIndex+0)
|
||||
var ret = USB2CAN.CAN_UpdateSchedule(DevHandle, WriteCANIndex, (byte)(itemMsgSchConfig.SchTabIndex+0), (byte)0, SchCanMsg, 1);//配置调度表,该函数耗时可能会比较长,但是只需要执行一次即可
|
||||
var ret = USB2CAN.CAN_UpdateSchedule(DevHandle, WriteCANIndex, (byte)(itemMsgSchConfig.SchTabIndex), (byte)(0), SchCanMsg, 1);//配置调度表,该函数耗时可能会比较长,但是只需要执行一次即可
|
||||
if (ret == USB2CAN.CAN_SUCCESS)
|
||||
{
|
||||
Console.WriteLine($"Update CAN Schedule Success--SchTabIndex:{(byte)itemMsgSchConfig.SchTabIndex} --MsgIndex:{(byte)(itemMsgSchConfig.MsgIndex)} ");
|
||||
Console.WriteLine($"Update CAN Schedule Success -- SchTabIndex:{(byte)itemMsgSchConfig.SchTabIndex} -- MsgIndex:{(byte)(0)} ");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"Update CAN Schedule Error ret = {ret}---SchTabIndex:{(byte)itemMsgSchConfig.SchTabIndex} --MsgIndex:{(byte)(itemMsgSchConfig.MsgIndex)}");
|
||||
Console.WriteLine($"Update CAN Schedule Error ret = {ret} -- SchTabIndex:{(byte)itemMsgSchConfig.SchTabIndex} -- MsgIndex:{(byte)(0)}");
|
||||
//return;
|
||||
}
|
||||
|
||||
@@ -1106,20 +1107,20 @@ namespace CapMachine.Wpf.CanDrive
|
||||
if (CanNum > 0)
|
||||
{
|
||||
IsReviceOk = true;
|
||||
//Console.WriteLine("Read CanMsgNum = {0}", CanNum);
|
||||
Console.WriteLine("Read CanMsgNum = {0}", CanNum);
|
||||
for (int i = 0; i < CanNum; i++)
|
||||
{
|
||||
//CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)((UInt32)msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG)); //有溢出报错
|
||||
CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)(msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG));
|
||||
|
||||
//Console.WriteLine("CanMsg[{0}].ID = 0x{1}", i, CanMsgBuffer[i].ID.ToString("X8"));
|
||||
//Console.WriteLine("CanMsg[{0}].TimeStamp = {1}", i, CanMsgBuffer[i].TimeStamp);
|
||||
//Console.Write("CanMsg[{0}].Data = ", i);
|
||||
//for (int j = 0; j < CanMsgBuffer[i].DataLen; j++)
|
||||
//{
|
||||
// Console.Write("{0} ", CanMsgBuffer[i].Data[j].ToString("X2"));
|
||||
//}
|
||||
//Console.WriteLine("");
|
||||
Console.WriteLine("CanMsg[{0}].ID = 0x{1}", i, CanMsgBuffer[i].ID.ToString("X8"));
|
||||
Console.WriteLine("CanMsg[{0}].TimeStamp = {1}", i, CanMsgBuffer[i].TimeStamp);
|
||||
Console.Write("CanMsg[{0}].Data = ", i);
|
||||
for (int j = 0; j < CanMsgBuffer[i].DataLen; j++)
|
||||
{
|
||||
Console.Write("{0} ", CanMsgBuffer[i].Data[j].ToString("X2"));
|
||||
}
|
||||
Console.WriteLine("");
|
||||
|
||||
//报文给高速记录的服务
|
||||
HighSpeedDataService.AppendOrUpdateMsg(new Models.HighSpeed.CommMsg()
|
||||
|
||||
Reference in New Issue
Block a user