CAN和LIN增加报文标记
This commit is contained in:
@@ -611,6 +611,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
catch (TaskCanceledException)
|
catch (TaskCanceledException)
|
||||||
{
|
{
|
||||||
// 任务被取消,正常退出
|
// 任务被取消,正常退出
|
||||||
|
IsSendOk = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -618,6 +619,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
LogService.Error(ex.Message);
|
LogService.Error(ex.Message);
|
||||||
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
||||||
// 短暂暂停避免异常情况下CPU占用过高
|
// 短暂暂停避免异常情况下CPU占用过高
|
||||||
|
IsSendOk = false;
|
||||||
await Task.Delay(10, token);
|
await Task.Delay(10, token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -629,11 +631,13 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
LogService.Error(ex.Message);
|
LogService.Error(ex.Message);
|
||||||
// 清理其他可能的资源
|
// 清理其他可能的资源
|
||||||
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
||||||
|
IsSendOk = false;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||||
Stopwatcher.Stop();
|
Stopwatcher.Stop();
|
||||||
|
IsSendOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
}, 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>
|
||||||
/// 要发送的数据
|
/// 要发送的数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -763,6 +786,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
int CanNum = USB2CANFD.CANFD_GetMsg(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
int CanNum = USB2CANFD.CANFD_GetMsg(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
||||||
if (CanNum > 0)
|
if (CanNum > 0)
|
||||||
{
|
{
|
||||||
|
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++)
|
||||||
{
|
{
|
||||||
@@ -787,10 +811,12 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
}
|
}
|
||||||
else if (CanNum == 0)
|
else if (CanNum == 0)
|
||||||
{
|
{
|
||||||
|
IsReviceOk = false;
|
||||||
Console.WriteLine("No CAN data!");
|
Console.WriteLine("No CAN data!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
IsReviceOk = false;
|
||||||
Console.WriteLine("Get CAN data error!");
|
Console.WriteLine("Get CAN data error!");
|
||||||
}
|
}
|
||||||
Console.WriteLine("");
|
Console.WriteLine("");
|
||||||
@@ -826,6 +852,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
IsReviceOk = false;
|
||||||
LogService.Error(ex.Message);
|
LogService.Error(ex.Message);
|
||||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using CapMachine.Wpf.Models.Tag;
|
using CapMachine.Wpf.Models.Tag;
|
||||||
using CapMachine.Wpf.Services;
|
using CapMachine.Wpf.Services;
|
||||||
using HslCommunication;
|
using HslCommunication;
|
||||||
|
using NLog;
|
||||||
using NPOI.OpenXmlFormats.Wordprocessing;
|
using NPOI.OpenXmlFormats.Wordprocessing;
|
||||||
using Prism.Ioc;
|
using Prism.Ioc;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
@@ -33,6 +34,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
{
|
{
|
||||||
ContainerProvider = containerProvider;
|
ContainerProvider = containerProvider;
|
||||||
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
||||||
|
LoggerService = ContainerProvider.Resolve<ILogService>();
|
||||||
|
|
||||||
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
||||||
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
||||||
@@ -57,6 +59,11 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public HighSpeedDataService HighSpeedDataService { get; set; }
|
public HighSpeedDataService HighSpeedDataService { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Logger 实例
|
||||||
|
/// </summary>
|
||||||
|
public ILogService LoggerService { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开始Dbc文件写入
|
/// 开始Dbc文件写入
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -501,6 +508,23 @@ 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>
|
||||||
/// 要发送的数据
|
/// 要发送的数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -653,6 +677,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
// 严重延迟,重新校准
|
// 严重延迟,重新校准
|
||||||
NextExecutionTime = Stopwatcher.ElapsedTicks;
|
NextExecutionTime = Stopwatcher.ElapsedTicks;
|
||||||
Console.WriteLine("定时发送延迟过大,重新校准时间");
|
Console.WriteLine("定时发送延迟过大,重新校准时间");
|
||||||
|
LoggerService.Info($"定时发送延迟过大,重新校准时间");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用Stopwatch记录实际的执行间隔,而不是DateTime
|
// 使用Stopwatch记录实际的执行间隔,而不是DateTime
|
||||||
@@ -711,14 +736,19 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
}
|
}
|
||||||
catch (TaskCanceledException)
|
catch (TaskCanceledException)
|
||||||
{
|
{
|
||||||
|
LoggerService.Info($"精确周期发送CAN数据-任务被取消,正常退出");
|
||||||
// 任务被取消,正常退出
|
// 任务被取消,正常退出
|
||||||
|
IsSendOk = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
||||||
// 短暂暂停避免异常情况下CPU占用过高
|
// 短暂暂停避免异常情况下CPU占用过高
|
||||||
|
IsSendOk = false;
|
||||||
await Task.Delay(10, token);
|
await Task.Delay(10, token);
|
||||||
|
|
||||||
|
LoggerService.Info($"精确周期发送CAN数据-{ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -726,17 +756,21 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
{
|
{
|
||||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||||
Stopwatcher.Stop();
|
Stopwatcher.Stop();
|
||||||
|
LoggerService.Info($"精确周期发送CAN数据-{ex.Message}");
|
||||||
// 清理其他可能的资源
|
// 清理其他可能的资源
|
||||||
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
||||||
|
IsSendOk = false;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||||
Stopwatcher.Stop();
|
Stopwatcher.Stop();
|
||||||
|
LoggerService.Info("精确周期发送CAN数据-正常退出、异常、取消)都会停止计时器");
|
||||||
|
IsSendOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -771,6 +805,7 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
int CanNum = USB2CAN.CAN_GetMsgWithSize(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
int CanNum = USB2CAN.CAN_GetMsgWithSize(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
||||||
if (CanNum > 0)
|
if (CanNum > 0)
|
||||||
{
|
{
|
||||||
|
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++)
|
||||||
{
|
{
|
||||||
@@ -798,10 +833,12 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
}
|
}
|
||||||
else if (CanNum == 0)
|
else if (CanNum == 0)
|
||||||
{
|
{
|
||||||
|
IsReviceOk=false;
|
||||||
Console.WriteLine("No CAN data!");
|
Console.WriteLine("No CAN data!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
IsReviceOk = false;
|
||||||
Console.WriteLine("Get CAN data error!");
|
Console.WriteLine("Get CAN data error!");
|
||||||
}
|
}
|
||||||
Console.WriteLine("");
|
Console.WriteLine("");
|
||||||
@@ -839,7 +876,8 @@ namespace CapMachine.Wpf.CanDrive
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
IsReviceOk = false;
|
||||||
|
LoggerService.Info("接收出现异常");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -55,11 +55,18 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
{
|
{
|
||||||
ContainerProvider = containerProvider;
|
ContainerProvider = containerProvider;
|
||||||
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
||||||
|
LoggerService = ContainerProvider.Resolve<ILogService>();
|
||||||
|
|
||||||
|
|
||||||
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
||||||
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Logger 实例
|
||||||
|
/// </summary>
|
||||||
|
public ILogService LoggerService { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// HighSpeedDataService 实例
|
/// HighSpeedDataService 实例
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -359,10 +366,19 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
LDFParser.LDF_GetSignalValueStr(LDFHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), ReadValueStr);
|
LDFParser.LDF_GetSignalValueStr(LDFHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), ReadValueStr);
|
||||||
itemSignal.SignalRtValueSb = ReadValueStr;
|
itemSignal.SignalRtValueSb = ReadValueStr;
|
||||||
}
|
}
|
||||||
|
//报文给高速记录的服务
|
||||||
|
//HighSpeedDataService.AppendOrUpdateMsg(new Models.HighSpeed.CommMsg()
|
||||||
|
//{
|
||||||
|
// Category = "LIN",
|
||||||
|
// MsgInfo = "0x" + CanMsgBuffer[i].ID.ToString("X8"),
|
||||||
|
// MsgData = BitConverter.ToString(CanMsgBuffer[i].Data),
|
||||||
|
// Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IsReviceOk= true;
|
||||||
|
|
||||||
//StringBuilder ValueStr = new StringBuilder(64);
|
//StringBuilder ValueStr = new StringBuilder(64);
|
||||||
//LDFParser.LDF_ExeFrameToBus(LDFHandle, new StringBuilder("ID_DATA"), 1);
|
//LDFParser.LDF_ExeFrameToBus(LDFHandle, new StringBuilder("ID_DATA"), 1);
|
||||||
@@ -376,7 +392,8 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
IsReviceOk = false;
|
||||||
|
LoggerService.Info($"{ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -454,6 +471,23 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private bool _IsReviceOk;
|
||||||
|
/// <summary>
|
||||||
|
/// 接收报文是否OK
|
||||||
|
/// </summary>
|
||||||
|
public bool IsReviceOk
|
||||||
|
{
|
||||||
|
get { return _IsReviceOk; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_IsReviceOk != value)
|
||||||
|
{
|
||||||
|
RaisePropertyChanged();
|
||||||
|
_IsReviceOk = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 精确发送报文数据
|
#region 精确发送报文数据
|
||||||
|
|
||||||
@@ -578,17 +612,19 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IsSendOk=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (TaskCanceledException)
|
catch (TaskCanceledException)
|
||||||
{
|
{
|
||||||
|
IsSendOk = false;
|
||||||
// 任务被取消,正常退出
|
// 任务被取消,正常退出
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
IsSendOk = false;
|
||||||
Console.WriteLine($"LIN周期发送异常: {ex.Message}");
|
Console.WriteLine($"LIN周期发送异常: {ex.Message}");
|
||||||
// 短暂暂停避免异常情况下CPU占用过高
|
// 短暂暂停避免异常情况下CPU占用过高
|
||||||
await Task.Delay(10, token);
|
await Task.Delay(10, token);
|
||||||
@@ -597,14 +633,16 @@ namespace CapMachine.Wpf.LinDrive
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
IsSendOk = false;
|
||||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||||
Stopwatcher.Stop();
|
Stopwatcher.Stop();
|
||||||
|
LoggerService.Info("接收出现异常");
|
||||||
// 清理其他可能的资源
|
// 清理其他可能的资源
|
||||||
Console.WriteLine("LIN周期发送任务已结束,资源已清理");
|
Console.WriteLine("LIN周期发送任务已结束,资源已清理");
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
IsSendOk = false;
|
||||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||||
Stopwatcher.Stop();
|
Stopwatcher.Stop();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,29 @@ namespace CapMachine.Wpf.ViewModels
|
|||||||
|
|
||||||
EventAggregator.GetEvent<LogicRuleChangeEvent>().Subscribe(LogicRuleChangeEventCall);
|
EventAggregator.GetEvent<LogicRuleChangeEvent>().Subscribe(LogicRuleChangeEventCall);
|
||||||
|
|
||||||
|
//数据波特率
|
||||||
|
DataBaudRateCbxItems = new ObservableCollection<CbxItems>()
|
||||||
|
{
|
||||||
|
new CbxItems(){ Key="100000",Text="100 Kbps"},
|
||||||
|
new CbxItems(){ Key="125000",Text="125 Kbps"},
|
||||||
|
new CbxItems(){ Key="200000",Text="200 Kbps"},
|
||||||
|
new CbxItems(){ Key="250000",Text="250 Kbps"},
|
||||||
|
new CbxItems(){ Key="400000",Text="400 Kbps"},
|
||||||
|
new CbxItems(){ Key="500000",Text="500 Kbps"},
|
||||||
|
new CbxItems(){ Key="666000",Text="666 Kbps"},
|
||||||
|
new CbxItems(){ Key="800000",Text="800 Kbps"},
|
||||||
|
new CbxItems(){ Key="1000000",Text="1.0 Mbps"},
|
||||||
|
|
||||||
|
new CbxItems(){ Key="1500000",Text="1.5 Mbps"},
|
||||||
|
new CbxItems(){ Key="2000000",Text="2.0 Mbps"},
|
||||||
|
new CbxItems(){ Key="3000000",Text="3.0 Mbps"},
|
||||||
|
new CbxItems(){ Key="4000000",Text="4.0 Mbps"},
|
||||||
|
new CbxItems(){ Key="5000000",Text="5.0 Mbps"},
|
||||||
|
new CbxItems(){ Key="6700000",Text="6.7 Mbps"},
|
||||||
|
new CbxItems(){ Key="8000000",Text="8.0 Mbps"},
|
||||||
|
new CbxItems(){ Key="10000000",Text="10.0 Mbps"},
|
||||||
|
};
|
||||||
|
|
||||||
WriteNameCbxItems = new ObservableCollection<CbxItems>()
|
WriteNameCbxItems = new ObservableCollection<CbxItems>()
|
||||||
{
|
{
|
||||||
new CbxItems(){ Key="转速",Text="转速"},
|
new CbxItems(){ Key="转速",Text="转速"},
|
||||||
@@ -843,6 +866,16 @@ namespace CapMachine.Wpf.ViewModels
|
|||||||
set { _SelectedCANConfigExdDto = value; RaisePropertyChanged(); }
|
set { _SelectedCANConfigExdDto = value; RaisePropertyChanged(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ObservableCollection<CbxItems> _DataBaudRateCbxItems;
|
||||||
|
/// <summary>
|
||||||
|
/// CAN FD 数据波特率
|
||||||
|
/// </summary>
|
||||||
|
public ObservableCollection<CbxItems> DataBaudRateCbxItems
|
||||||
|
{
|
||||||
|
get { return _DataBaudRateCbxItems; }
|
||||||
|
set { _DataBaudRateCbxItems = value; RaisePropertyChanged(); }
|
||||||
|
}
|
||||||
|
|
||||||
private DelegateCommand<string> _CanOpCmd;
|
private DelegateCommand<string> _CanOpCmd;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CAN操作的指令
|
/// CAN操作的指令
|
||||||
|
|||||||
@@ -406,7 +406,14 @@
|
|||||||
FontSize="18"
|
FontSize="18"
|
||||||
Text="" />
|
Text="" />
|
||||||
<TextBlock Style="{StaticResource TextBlockStyle}" Text="波特率" />
|
<TextBlock Style="{StaticResource TextBlockStyle}" Text="波特率" />
|
||||||
<TextBox Style="{StaticResource TextBoxStyle}" Text="{Binding SelectedCANConfigExdDto.BaudRate}" />
|
<ComboBox
|
||||||
|
Width="100"
|
||||||
|
DisplayMemberPath="Text"
|
||||||
|
FontSize="16"
|
||||||
|
ItemsSource="{Binding DataBaudRateCbxItems}"
|
||||||
|
SelectedValue="{Binding SelectedCANConfigExdDto.BaudRate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||||
|
SelectedValuePath="Key" />
|
||||||
|
<!--<TextBox Style="{StaticResource TextBoxStyle}" Text="{Binding SelectedCANConfigExdDto.BaudRate}" />-->
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
||||||
@@ -574,6 +581,68 @@
|
|||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="-10,0"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="0,0,10,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
FontFamily="/Assets/Fonts/#iconfont"
|
||||||
|
FontSize="20"
|
||||||
|
Text="" />
|
||||||
|
<TextBlock
|
||||||
|
Width="80"
|
||||||
|
Style="{StaticResource TextBlockStyle}"
|
||||||
|
Text="报文状态:" />
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="5,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding CanDriveService.ToomossCanDrive.IsSendOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="发送" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="10,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding CanDriveService.ToomossCanDrive.IsReviceOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="接收" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -636,6 +636,68 @@
|
|||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="-10,0"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="0,0,10,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
FontFamily="/Assets/Fonts/#iconfont"
|
||||||
|
FontSize="20"
|
||||||
|
Text="" />
|
||||||
|
<TextBlock
|
||||||
|
Width="80"
|
||||||
|
Style="{StaticResource TextBlockStyle}"
|
||||||
|
Text="报文状态:" />
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="5,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding CanFdDriveService.ToomossCanFDDrive.IsSendOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="发送" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="10,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding CanFdDriveService.ToomossCanFDDrive.IsReviceOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="接收" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -573,6 +573,68 @@
|
|||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="-10,0"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="0,0,10,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
FontFamily="/Assets/Fonts/#iconfont"
|
||||||
|
FontSize="20"
|
||||||
|
Text="" />
|
||||||
|
<TextBlock
|
||||||
|
Width="80"
|
||||||
|
Style="{StaticResource TextBlockStyle}"
|
||||||
|
Text="报文状态:" />
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="5,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding LinDriveService.ToomossLinDrive.IsSendOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="发送" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="10,12"
|
||||||
|
BorderThickness="1"
|
||||||
|
CornerRadius="5">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="Gray" />
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding LinDriveService.ToomossLinDrive.IsReviceOk}" Value="true">
|
||||||
|
<Setter Property="Background" Value="LimeGreen" />
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
|
<TextBlock
|
||||||
|
Margin="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="White"
|
||||||
|
Text="接收" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
Reference in New Issue
Block a user