CAN和LIN增加报文标记
This commit is contained in:
@@ -611,6 +611,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
// 任务被取消,正常退出
|
||||
IsSendOk = false;
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -618,6 +619,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
LogService.Error(ex.Message);
|
||||
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
||||
// 短暂暂停避免异常情况下CPU占用过高
|
||||
IsSendOk = false;
|
||||
await Task.Delay(10, token);
|
||||
}
|
||||
}
|
||||
@@ -629,11 +631,13 @@ namespace CapMachine.Wpf.CanDrive
|
||||
LogService.Error(ex.Message);
|
||||
// 清理其他可能的资源
|
||||
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
||||
IsSendOk = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
IsSendOk = false;
|
||||
}
|
||||
|
||||
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
||||
@@ -739,6 +743,25 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private bool _IsReviceOk;
|
||||
/// <summary>
|
||||
/// 接收报文是否OK
|
||||
/// </summary>
|
||||
public bool IsReviceOk
|
||||
{
|
||||
get { return _IsReviceOk; }
|
||||
set
|
||||
{
|
||||
if (_IsReviceOk != value)
|
||||
{
|
||||
RaisePropertyChanged();
|
||||
_IsReviceOk = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 要发送的数据
|
||||
/// </summary>
|
||||
@@ -763,6 +786,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
int CanNum = USB2CANFD.CANFD_GetMsg(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
||||
if (CanNum > 0)
|
||||
{
|
||||
IsReviceOk = true;
|
||||
Console.WriteLine("Read CanMsgNum = {0}", CanNum);
|
||||
for (int i = 0; i < CanNum; i++)
|
||||
{
|
||||
@@ -787,10 +811,12 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
else if (CanNum == 0)
|
||||
{
|
||||
IsReviceOk = false;
|
||||
Console.WriteLine("No CAN data!");
|
||||
}
|
||||
else
|
||||
{
|
||||
IsReviceOk = false;
|
||||
Console.WriteLine("Get CAN data error!");
|
||||
}
|
||||
Console.WriteLine("");
|
||||
@@ -826,6 +852,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
IsReviceOk = false;
|
||||
LogService.Error(ex.Message);
|
||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user