CAN FD 波特率等参数的增加和联动配置
This commit is contained in:
@@ -52,6 +52,50 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//MachineDataService = machineDataService;
|
||||
DialogService = dialogService;
|
||||
|
||||
//仲裁波特率
|
||||
ArbBaudRateCbxItems = new ObservableCollection<CbxItems>()
|
||||
{
|
||||
new CbxItems(){ Key="10000",Text="10 Kbps"},
|
||||
new CbxItems(){ Key="20000",Text="20 Kbps"},
|
||||
new CbxItems(){ Key="33000",Text="33 Kbps"},
|
||||
new CbxItems(){ Key="50000",Text="50Kbps"},
|
||||
new CbxItems(){ Key="83000",Text="83 Kbps"},
|
||||
new CbxItems(){ Key="100000",Text="100 Kbps"},
|
||||
new CbxItems(){ Key="125000",Text="125 Kbps"},
|
||||
new CbxItems(){ Key="150000",Text="150 Kbps"},
|
||||
new CbxItems(){ Key="200000",Text="200 Kbps"},
|
||||
new CbxItems(){ Key="250000",Text="250 Kbps"},
|
||||
new CbxItems(){ Key="300000",Text="300 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"},
|
||||
};
|
||||
|
||||
//数据波特率
|
||||
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>()
|
||||
{
|
||||
new CbxItems(){ Key="转速",Text="转速"},
|
||||
@@ -70,6 +114,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
new CbxItems(){ Key="通讯Cmp转速",Text="通讯Cmp转速"},
|
||||
new CbxItems(){ Key="通讯Cmp母线电压",Text="通讯Cmp母线电压"},
|
||||
new CbxItems(){ Key="通讯Cmp母线电流",Text="通讯Cmp母线电流"},
|
||||
new CbxItems(){ Key="通讯Cmp逆变器温度",Text="通讯Cmp逆变器温度"},
|
||||
new CbxItems(){ Key="通讯Cmp相电流",Text="通讯Cmp相电流"},
|
||||
new CbxItems(){ Key="通讯Cmp功率",Text="通讯Cmp功率"},
|
||||
new CbxItems(){ Key="通讯Cmp芯片温度",Text="通讯Cmp芯片温度"},
|
||||
@@ -115,7 +160,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
{
|
||||
//CAN配置集合数据
|
||||
canLinConfigPros = FreeSql.Select<CanLinConfigPro>().Where(a => a.CANLINInfo == CANLIN.CANFD)
|
||||
.Include(a => a.CANConfigExd)
|
||||
.Include(a => a.CANFdConfigExd)
|
||||
.IncludeMany(a => a.CanLinConfigContents)
|
||||
.ToList();
|
||||
|
||||
@@ -126,7 +171,13 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//无数据就返回
|
||||
if (SelectCanLinConfigPro == null) return;
|
||||
|
||||
SelectedCANConfigExdDto = Mapper.Map<CANConfigExdDto>(SelectCanLinConfigPro!.CANConfigExd);
|
||||
SelectedCANConfigExdDto = Mapper.Map<CANFdConfigExdDto>(SelectCanLinConfigPro!.CANFdConfigExd);
|
||||
if (SelectedCANConfigExdDto != null)
|
||||
{
|
||||
//更新波特率等配置信息
|
||||
CanFdDriveService.ToomossCanFDDrive.UpdateConfig((uint)SelectedCANConfigExdDto.ArbBaudRate,
|
||||
(uint)SelectedCANConfigExdDto.DataBaudRate, SelectedCANConfigExdDto.ISOEnable, SelectedCANConfigExdDto.ResEnable);
|
||||
}
|
||||
|
||||
//配置信息
|
||||
var WirteData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Write).ToList();
|
||||
@@ -271,9 +322,10 @@ namespace CapMachine.Wpf.ViewModels
|
||||
var ReturnValue = par.Parameters.GetValue<string>("Name");
|
||||
|
||||
//加载默认的数据 CANConfigExd
|
||||
var InsertCANConfigExd = FreeSql.Insert<CANConfigExd>(new CANConfigExd()
|
||||
var InsertCANConfigExd = FreeSql.Insert<CANFdConfigExd>(new CANFdConfigExd()
|
||||
{
|
||||
BaudRate = 250,
|
||||
DataBaudRate = 250,
|
||||
ArbBaudRate = 2000,
|
||||
DbcPath = "请配置DBC路径",
|
||||
Cycle = 100,
|
||||
}).ExecuteInserted();
|
||||
@@ -283,7 +335,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
{
|
||||
ConfigName = ReturnValue,
|
||||
CANLINInfo = CANLIN.CANFD,
|
||||
CANConfigExdId = InsertCANConfigExd.FirstOrDefault()!.Id
|
||||
CANFdConfigExdId = InsertCANConfigExd.FirstOrDefault()!.Id
|
||||
}).ExecuteInserted();
|
||||
if (InsertData != null)
|
||||
{
|
||||
@@ -364,7 +416,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
repo.DbContextOptions.EnableCascadeSave = true; //关键设置
|
||||
|
||||
var DeleteData = repo.Select
|
||||
.Include(a => a.CANConfigExd)
|
||||
.Include(a => a.CANFdConfigExd)
|
||||
.IncludeMany(a => a.CanLinConfigContents)
|
||||
.Where(a => a.Id == SelectCanLinConfigPro.Id)
|
||||
.ToList();
|
||||
@@ -372,7 +424,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
repo.Delete(DeleteData);
|
||||
foreach (var item in DeleteData)
|
||||
{
|
||||
FreeSql.Delete<CANConfigExd>(item.CANConfigExdId).ExecuteAffrows();
|
||||
FreeSql.Delete<CANFdConfigExd>(item.CANFdConfigExdId).ExecuteAffrows();
|
||||
}
|
||||
InitLoadCanConfigPro();
|
||||
}
|
||||
@@ -480,7 +532,13 @@ namespace CapMachine.Wpf.ViewModels
|
||||
SelectCanLinConfigPro = par as CanLinConfigPro;
|
||||
|
||||
//CANConfigExdDto 数据
|
||||
SelectedCANConfigExdDto = Mapper.Map<CANConfigExdDto>(SelectCanLinConfigPro!.CANConfigExd);
|
||||
SelectedCANConfigExdDto = Mapper.Map<CANFdConfigExdDto>(SelectCanLinConfigPro!.CANFdConfigExd);
|
||||
if (SelectedCANConfigExdDto!=null)
|
||||
{
|
||||
//更新波特率等配置信息
|
||||
CanFdDriveService.ToomossCanFDDrive.UpdateConfig((uint)SelectedCANConfigExdDto.ArbBaudRate,
|
||||
(uint)SelectedCANConfigExdDto.DataBaudRate, SelectedCANConfigExdDto.ISOEnable, SelectedCANConfigExdDto.ResEnable);
|
||||
}
|
||||
|
||||
var WirteData = SelectCanLinConfigPro.CanLinConfigContents!.Where(a => a.RWInfo == RW.Write).ToList();
|
||||
if (WirteData != null && WirteData.Count > 0)
|
||||
@@ -789,16 +847,36 @@ namespace CapMachine.Wpf.ViewModels
|
||||
|
||||
#region CAN操作
|
||||
|
||||
private CANConfigExdDto _SelectedCANConfigExdDto;
|
||||
private CANFdConfigExdDto _SelectedCANConfigExdDto;
|
||||
/// <summary>
|
||||
/// 选中的CAN操作
|
||||
/// </summary>
|
||||
public CANConfigExdDto SelectedCANConfigExdDto
|
||||
public CANFdConfigExdDto SelectedCANConfigExdDto
|
||||
{
|
||||
get { return _SelectedCANConfigExdDto; }
|
||||
set { _SelectedCANConfigExdDto = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private ObservableCollection<CbxItems> _DataBaudRateCbxItems;
|
||||
/// <summary>
|
||||
/// CAN FD 数据波特率
|
||||
/// </summary>
|
||||
public ObservableCollection<CbxItems> DataBaudRateCbxItems
|
||||
{
|
||||
get { return _DataBaudRateCbxItems; }
|
||||
set { _DataBaudRateCbxItems = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private ObservableCollection<CbxItems> _ArbBaudRateCbxItems;
|
||||
/// <summary>
|
||||
/// CAN FD 仲裁波特率
|
||||
/// </summary>
|
||||
public ObservableCollection<CbxItems> ArbBaudRateCbxItems
|
||||
{
|
||||
get { return _ArbBaudRateCbxItems; }
|
||||
set { _ArbBaudRateCbxItems = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private DelegateCommand<string> _CanOpCmd;
|
||||
/// <summary>
|
||||
/// CAN操作的指令
|
||||
@@ -844,7 +922,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
}
|
||||
|
||||
//CAN DBC配置 有DBC配置的话,则直接加载DBC信息
|
||||
if (!string.IsNullOrEmpty(SelectCanLinConfigPro.CANConfigExd.DbcPath))
|
||||
if (!string.IsNullOrEmpty(SelectCanLinConfigPro.CANFdConfigExd.DbcPath))
|
||||
{
|
||||
var DbcData = CanFdDriveService.StartDbc(SelectedCANConfigExdDto.DbcPath);
|
||||
ListCanDbcModel = DbcData;
|
||||
@@ -882,10 +960,13 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//保存Can 配置
|
||||
if (!string.IsNullOrEmpty(SelectedCANConfigExdDto.DbcPath))
|
||||
{
|
||||
var Update = FreeSql.Update<CANConfigExd>()
|
||||
var Update = FreeSql.Update<CANFdConfigExd>()
|
||||
.Set(a => a.DbcPath, SelectedCANConfigExdDto.DbcPath)
|
||||
.Set(a => a.Cycle, SelectedCANConfigExdDto.Cycle)
|
||||
.Set(a => a.BaudRate, SelectedCANConfigExdDto.BaudRate)
|
||||
.Set(a => a.DataBaudRate, SelectedCANConfigExdDto.DataBaudRate)
|
||||
.Set(a => a.ArbBaudRate, SelectedCANConfigExdDto.ArbBaudRate)
|
||||
.Set(a => a.ISOEnable, SelectedCANConfigExdDto.ISOEnable)
|
||||
.Set(a => a.ResEnable, SelectedCANConfigExdDto.ResEnable)
|
||||
.Where(a => a.Id == SelectedCANConfigExdDto.Id)
|
||||
.ExecuteUpdated();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user