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