@@ -8,6 +8,7 @@ using BPASmartClient.MorkCL.Model.DB; | |||||
using BPASmartClient.MorkCL.Model.Json; | using BPASmartClient.MorkCL.Model.Json; | ||||
using BPASmartClient.MorkCL.Server; | using BPASmartClient.MorkCL.Server; | ||||
using Newtonsoft.Json.Linq; | using Newtonsoft.Json.Linq; | ||||
using Opc.Ua; | |||||
using SqlSugar; | using SqlSugar; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
@@ -651,7 +652,7 @@ namespace BPASmartClient.MorkCL | |||||
device.DiningOutStart = false; | device.DiningOutStart = false; | ||||
DeviceProcessLogShow($"{cd.Name}-【{et}#】任务执行-{fm.eFunc.ToString()}-设置机器人取空盆。"); | DeviceProcessLogShow($"{cd.Name}-【{et}#】任务执行-{fm.eFunc.ToString()}-设置机器人取空盆。"); | ||||
robot.IsIdle.Wait(Cts: TaskList[et].Cts); | robot.IsIdle.Wait(Cts: TaskList[et].Cts); | ||||
//TODO:暂时修改,后期优化。 | //TODO:暂时修改,后期优化。 | ||||
while (!TaskList[et].Cts.IsCancellationRequested) | while (!TaskList[et].Cts.IsCancellationRequested) | ||||
@@ -763,7 +764,9 @@ namespace BPASmartClient.MorkCL | |||||
{ | { | ||||
propertyInfos = morkCL.GetType().GetProperties().ToList(); | propertyInfos = morkCL.GetType().GetProperties().ToList(); | ||||
} | } | ||||
morkCL.RecipeQueueCount = morkCL.cds.Count; | |||||
morkCL.FryingPanTaskCount_1 = morkCL.cds.Count(data => data.DeviceType == EDeviceType.炒锅1); | |||||
morkCL.FryingPanTaskCount_2 = morkCL.cds.Count(data => data.DeviceType == EDeviceType.炒锅2); | |||||
var fryingPan1 = (FryingPanServer)devices[EDeviceType.炒锅1]; | var fryingPan1 = (FryingPanServer)devices[EDeviceType.炒锅1]; | ||||
var fryingPan2 = (FryingPanServer)devices[EDeviceType.炒锅2]; | var fryingPan2 = (FryingPanServer)devices[EDeviceType.炒锅2]; | ||||
@@ -1048,12 +1051,18 @@ namespace BPASmartClient.MorkCL | |||||
var weghier = (OtherServer)devices[EDeviceType.外部设备]; | var weghier = (OtherServer)devices[EDeviceType.外部设备]; | ||||
if (weghier.WeigherTare()) | if (weghier.WeigherTare()) | ||||
{ | { | ||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, Application.Current.MainWindow, "去皮成功", $"电子秤除皮操作成功。"); | |||||
Application.Current.Dispatcher.Invoke(() => | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, Application.Current.MainWindow, "去皮成功", $"电子秤除皮操作成功。"); | |||||
}); | |||||
DeviceProcessLogShow($"电子秤除皮操作成功。"); | DeviceProcessLogShow($"电子秤除皮操作成功。"); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "去皮失败", $"电子秤除皮操作失败。"); | |||||
Application.Current.Dispatcher.Invoke(() => | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "去皮失败", $"电子秤除皮操作失败。"); | |||||
}); | |||||
DeviceProcessLogShow($"电子秤除皮操作失败。"); | DeviceProcessLogShow($"电子秤除皮操作失败。"); | ||||
} | } | ||||
@@ -1137,6 +1146,15 @@ namespace BPASmartClient.MorkCL | |||||
DeviceProcessLogShow($"复位所有由上位机下发至机器人的变量失败。"); | DeviceProcessLogShow($"复位所有由上位机下发至机器人的变量失败。"); | ||||
} | } | ||||
}, "InitRobotAllVar", true); | }, "InitRobotAllVar", true); | ||||
ActionManage.GetInstance.Register<Func<object>>(() => | |||||
{ | |||||
if (morkCL.RecipeQueueCount > 0 || morkCL.FryingPanTaskCount_1 > 0 || morkCL.FryingPanTaskCount_2 > 0) | |||||
{ | |||||
return true; | |||||
} | |||||
return false; | |||||
},"SystemIsBusy",true); | |||||
} | } | ||||
Func<object, object> frypanIsIdle => (o) => | Func<object, object> frypanIsIdle => (o) => | ||||
@@ -1151,5 +1169,7 @@ namespace BPASmartClient.MorkCL | |||||
} | } | ||||
return false; | return false; | ||||
}; | }; | ||||
} | } | ||||
} | } |
@@ -394,11 +394,32 @@ namespace BPASmartClient.MorkCL | |||||
[VariableMonitor("出餐箱子在位检测", "LW630")] | [VariableMonitor("出餐箱子在位检测", "LW630")] | ||||
public bool[] BoxDetection { get; set; } = new bool[4]; | public bool[] BoxDetection { get; set; } = new bool[4]; | ||||
#region 其他变量 | |||||
/// <summary> | /// <summary> | ||||
/// 入库操作许可 | /// 入库操作许可 | ||||
/// </summary> | /// </summary> | ||||
[VariableMonitor("入库操作许可")] | [VariableMonitor("入库操作许可")] | ||||
public bool CanItemStorage { get; set; } | public bool CanItemStorage { get; set; } | ||||
/// <summary> | |||||
/// 总任务排队数量 | |||||
/// </summary> | |||||
[VariableMonitor("总任务排队数量")] | |||||
public int RecipeQueueCount { get; set; } | |||||
/// <summary> | |||||
/// 炒锅1#排队任务数量 | |||||
/// </summary> | |||||
[VariableMonitor("炒锅1#排队任务数量")] | |||||
public int FryingPanTaskCount_1 { get; set; } | |||||
/// <summary> | |||||
/// 炒锅2#排队任务数量 | |||||
/// </summary> | |||||
[VariableMonitor("炒锅2#排队任务数量")] | |||||
public int FryingPanTaskCount_2 { get; set; } | |||||
#endregion | #endregion | ||||
#endregion | |||||
} | } | ||||
} | |||||
} |
@@ -77,5 +77,7 @@ namespace BPASmartClient.MorkCL.Model.Json | |||||
/// 炒锅2辅料最大位置。 | /// 炒锅2辅料最大位置。 | ||||
/// </summary> | /// </summary> | ||||
public int FryPanAccessoriesMax_2 { get; set; } = 8; | public int FryPanAccessoriesMax_2 { get; set; } = 8; | ||||
//public float IngredientsDeviation { get; set; } | |||||
} | } | ||||
} | } |
@@ -41,7 +41,7 @@ namespace BPASmartClient.MorkCL.Server | |||||
Thread.Sleep(50); | Thread.Sleep(50); | ||||
myDevice.SlaveAddress = 2; | myDevice.SlaveAddress = 2; | ||||
myDevice.Read<float>("LW8".ToModbusAdd()).OnSuccess(s => { CurrentWeight = s; }); | |||||
myDevice.Read<float>("LW6".ToModbusAdd()).OnSuccess(s => { CurrentWeight = s; }); | |||||
Thread.Sleep(50); | Thread.Sleep(50); | ||||
}), $"其它外部设备-{PortName}", true); | }), $"其它外部设备-{PortName}", true); | ||||
@@ -62,7 +62,7 @@ namespace BPASmartClient.MorkCL.Server | |||||
{ | { | ||||
ModbusRtu weigher = (ModbusRtu)MyModbus; | ModbusRtu weigher = (ModbusRtu)MyModbus; | ||||
weigher.SlaveAddress = 2; | weigher.SlaveAddress = 2; | ||||
return weigher.Write<bool>("LB4", false).IsSuccess; | |||||
return weigher.Write<bool>("LB4".ToModbusAdd(), true).IsSuccess; | |||||
} | } | ||||
else | else | ||||
return false; | return false; | ||||
@@ -77,7 +77,7 @@ namespace BPASmartClient.MorkCL.Server | |||||
{ | { | ||||
ModbusRtu weigher = (ModbusRtu)MyModbus; | ModbusRtu weigher = (ModbusRtu)MyModbus; | ||||
weigher.SlaveAddress = 2; | weigher.SlaveAddress = 2; | ||||
return weigher.Write<bool>("LB3", false).IsSuccess; | |||||
return weigher.Write<bool>("LB3".ToModbusAdd(), true).IsSuccess; | |||||
} | } | ||||
else | else | ||||
return false; | return false; | ||||
@@ -1,12 +1,12 @@ | |||||
<Window | <Window | ||||
x:Class="BPASmartClient.MorkCL.View.EditFunctionParamView" | x:Class="BPASmartClient.MorkCL.View.EditFunctionParamView" | ||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | ||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | ||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:Behavior="http://schemas.microsoft.com/xaml/behaviors" | |||||
xmlns:converter="clr-namespace:BPASmartClient.MorkCL.Converter" | xmlns:converter="clr-namespace:BPASmartClient.MorkCL.Converter" | ||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" | xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" | ||||
xmlns:Behavior="http://schemas.microsoft.com/xaml/behaviors" | |||||
Title="EditFunctionView" | Title="EditFunctionView" | ||||
Width="450" | Width="450" | ||||
Height="350" | Height="350" | ||||
@@ -96,22 +96,23 @@ | |||||
Height="30" | Height="30" | ||||
BorderBrush="DeepSkyBlue" | BorderBrush="DeepSkyBlue" | ||||
BorderThickness="1" | BorderThickness="1" | ||||
DisplayMemberPath="Name" | |||||
FontSize="18" | FontSize="18" | ||||
IsEditable="False" | IsEditable="False" | ||||
ItemsSource="{Binding ComboBoxItemsSource}" | ItemsSource="{Binding ComboBoxItemsSource}" | ||||
Text="{Binding ParValue}" DisplayMemberPath="Name" | |||||
Text="{Binding ParValue}" | |||||
Visibility="{Binding IsUseComboBox, Converter={StaticResource Bool2VisibilityConverter}}"> | Visibility="{Binding IsUseComboBox, Converter={StaticResource Bool2VisibilityConverter}}"> | ||||
<!--<ComboBox.Resources> | <!--<ComboBox.Resources> | ||||
<converter:MyDataTemplateSelector | <converter:MyDataTemplateSelector | ||||
x:Key="TemplateSelector" | x:Key="TemplateSelector" | ||||
ClassTemplate="{StaticResource ClassTemplate}" | ClassTemplate="{StaticResource ClassTemplate}" | ||||
IntTemplate="{StaticResource IntTemplate}" /> | IntTemplate="{StaticResource IntTemplate}" /> | ||||
</ComboBox.Resources> | </ComboBox.Resources> | ||||
<ComboBox.ItemTemplateSelector> | <ComboBox.ItemTemplateSelector> | ||||
<StaticResource ResourceKey="TemplateSelector" /> | <StaticResource ResourceKey="TemplateSelector" /> | ||||
</ComboBox.ItemTemplateSelector>--> | </ComboBox.ItemTemplateSelector>--> | ||||
</ComboBox> | </ComboBox> | ||||
<TextBlock | <TextBlock | ||||
Margin="5,0" | Margin="5,0" | ||||
@@ -7,6 +7,7 @@ | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | ||||
xmlns:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | xmlns:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | ||||
xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" | xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" | ||||
xmlns:converter="clr-namespace:BPASmartClient.MorkCL.Converter" | |||||
Name="库位状态" | Name="库位状态" | ||||
d:DesignHeight="900" | d:DesignHeight="900" | ||||
d:DesignWidth="1200" | d:DesignWidth="1200" | ||||
@@ -19,6 +20,7 @@ | |||||
<ResourceDictionary.MergedDictionaries> | <ResourceDictionary.MergedDictionaries> | ||||
<ResourceDictionary Source="/BPASmartClient.MorkCL;component/CustomStyle/CustomStyle.xaml" /> | <ResourceDictionary Source="/BPASmartClient.MorkCL;component/CustomStyle/CustomStyle.xaml" /> | ||||
</ResourceDictionary.MergedDictionaries> | </ResourceDictionary.MergedDictionaries> | ||||
<converter:Bool2VisibilityConverter x:Key="Bool2VisibilityConverter" /> | |||||
</ResourceDictionary> | </ResourceDictionary> | ||||
</UserControl.Resources> | </UserControl.Resources> | ||||
<Grid> | <Grid> | ||||
@@ -34,13 +36,28 @@ | |||||
<!--#region 入库电子称状态--> | <!--#region 入库电子称状态--> | ||||
<pry:ImageBorder Margin="5,15" /> | <pry:ImageBorder Margin="5,15" /> | ||||
<StackPanel Margin="15,20"> | <StackPanel Margin="15,20"> | ||||
<TextBlock Width="200" Text="{Binding ScaleCurrentWeight, StringFormat=当前重量:{0:F2} g}" /> | |||||
<TextBlock Width="200" Text="{Binding ScaleCurrentWeight, StringFormat=当前重量:{0:F2} Kg}" /> | |||||
<Button | <Button | ||||
Height="40" | |||||
Margin="0,30" | Margin="0,30" | ||||
Command="{Binding InitialStorageCommand}" | Command="{Binding InitialStorageCommand}" | ||||
Content="清空库位" /> | |||||
Content="清空全部库位" /> | |||||
<Button | |||||
Height="50" | |||||
Margin="0,10" | |||||
Command="{Binding ModifySelectStorageCommand}" | |||||
CommandParameter="{Binding ElementName=List_Ingre, Path=SelectedIndex}" | |||||
Content="修改所选库位信息" /> | |||||
<Button | |||||
Height="40" | |||||
Command="{Binding ClearSelectStorageCommand}" | |||||
CommandParameter="{Binding ElementName=List_Ingre, Path=SelectedIndex}" | |||||
Content="清空所选库位信息" /> | |||||
</StackPanel> | </StackPanel> | ||||
<!--#endregion--> | <!--#endregion--> | ||||
@@ -58,15 +75,18 @@ | |||||
ItemsSource="{Binding Ingredients}" /> | ItemsSource="{Binding Ingredients}" /> | ||||
<Button | <Button | ||||
Height="40" | |||||
Margin="0,10" | Margin="0,10" | ||||
Command="{Binding InStorageCommand}" | Command="{Binding InStorageCommand}" | ||||
CommandParameter="{Binding ElementName=cmbSelectName, Path=SelectedItem}" | CommandParameter="{Binding ElementName=cmbSelectName, Path=SelectedItem}" | ||||
Content="入库" /> | Content="入库" /> | ||||
<Button | |||||
<!--<Button | |||||
Height="40" | |||||
Margin="0,30,0,10" | Margin="0,30,0,10" | ||||
Command="{Binding WeigherTareCommand}" | Command="{Binding WeigherTareCommand}" | ||||
Content="电子秤除皮" /> | |||||
Content="电子秤除皮"/>--> | |||||
<Button | <Button | ||||
Height="40" | |||||
Margin="0,10" | Margin="0,10" | ||||
Command="{Binding WeigherZeroCommand}" | Command="{Binding WeigherZeroCommand}" | ||||
Content="电子秤置零" /> | Content="电子秤置零" /> | ||||
@@ -141,11 +161,13 @@ | |||||
Grid.RowSpan="2" | Grid.RowSpan="2" | ||||
Grid.Column="1" /> | Grid.Column="1" /> | ||||
<ListView | <ListView | ||||
x:Name="List_Ingre" | |||||
Grid.Row="0" | Grid.Row="0" | ||||
Grid.RowSpan="2" | Grid.RowSpan="2" | ||||
Grid.Column="1" | Grid.Column="1" | ||||
Margin="3" | Margin="3" | ||||
Background="Transparent" | Background="Transparent" | ||||
BorderThickness="0" | |||||
ItemsSource="{Binding IngredientsItorage}" | ItemsSource="{Binding IngredientsItorage}" | ||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled" | ScrollViewer.HorizontalScrollBarVisibility="Disabled" | ||||
ScrollViewer.VerticalScrollBarVisibility="Disabled" | ScrollViewer.VerticalScrollBarVisibility="Disabled" | ||||
@@ -196,7 +218,7 @@ | |||||
HorizontalAlignment="Center" | HorizontalAlignment="Center" | ||||
FontSize="20" | FontSize="20" | ||||
Foreground="#FF0084FF" | Foreground="#FF0084FF" | ||||
Text="{Binding Weight, StringFormat={}{0} g}" /> | |||||
Text="{Binding Weight, StringFormat={}{0} Kg}" /> | |||||
<!--<StackPanel | <!--<StackPanel | ||||
Grid.Row="1" | Grid.Row="1" | ||||
@@ -17,7 +17,7 @@ | |||||
WindowStyle="None" | WindowStyle="None" | ||||
mc:Ignorable="d"> | mc:Ignorable="d"> | ||||
<Window.DataContext> | <Window.DataContext> | ||||
<vm:ManualSetItemStorageViewModel/> | |||||
<vm:ManualSetItemStorageViewModel /> | |||||
</Window.DataContext> | </Window.DataContext> | ||||
<Window.Resources> | <Window.Resources> | ||||
<ResourceDictionary> | <ResourceDictionary> | ||||
@@ -33,5 +33,81 @@ | |||||
<Border.Background> | <Border.Background> | ||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/弹框/biankuang_.png" /> | <ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/弹框/biankuang_.png" /> | ||||
</Border.Background> | </Border.Background> | ||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="50" /> | |||||
<RowDefinition Height="50" /> | |||||
<RowDefinition Height="1*" /> | |||||
<RowDefinition Height="50" /> | |||||
</Grid.RowDefinitions> | |||||
<!--#region 标题栏--> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
Foreground="DeepSkyBlue" | |||||
Text="主料库仓位信息编辑" /> | |||||
<!--#endregion--> | |||||
<!--#region 操作栏--> | |||||
<!--<Border | |||||
Grid.Row="1" | |||||
BorderBrush="#3099E5" | |||||
BorderThickness="1"> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
FontSize="18" | |||||
Foreground="DeepSkyBlue" | |||||
Text="{Binding FuncName, StringFormat={}{0} 参数设置}" /> | |||||
</Border>--> | |||||
<!--#endregion--> | |||||
<!--#region 内容--> | |||||
<StackPanel Grid.Row="2" Orientation="Vertical"> | |||||
<StackPanel Orientation="Horizontal"> | |||||
<TextBlock Margin="10,15" Text="物料名称:" /> | |||||
<ComboBox | |||||
Width="250" | |||||
Height="40" | |||||
d:Text="青椒" | |||||
DisplayMemberPath="Name" | |||||
FontSize="25" | |||||
IsEditable="False" | |||||
ItemsSource="{Binding Ingredients}" | |||||
Text="{Binding Storage.Name}" /> | |||||
</StackPanel> | |||||
<StackPanel Orientation="Horizontal"> | |||||
<TextBlock Margin="10,15" Text="重量(Kg):" /> | |||||
<TextBox | |||||
Width="250" | |||||
Height="40" | |||||
d:Text="25" | |||||
FontSize="25" | |||||
Text="{Binding Storage.Weight}" /> | |||||
</StackPanel> | |||||
</StackPanel> | |||||
<!--#endregion--> | |||||
<!--#region 底部按钮栏--> | |||||
<Grid Grid.Row="3"> | |||||
<Button | |||||
Width="100" | |||||
Height="35" | |||||
Margin="50,0" | |||||
HorizontalAlignment="Left" | |||||
Command="{Binding SaveCommand}" | |||||
Content="保存设置" /> | |||||
<Button | |||||
Width="100" | |||||
Height="35" | |||||
Margin="50,0" | |||||
HorizontalAlignment="Right" | |||||
Click="Button_Click" | |||||
Content="取消并关闭" /> | |||||
</Grid> | |||||
<!--#endregion--> | |||||
</Grid> | |||||
</Border> | </Border> | ||||
</Window> | </Window> |
@@ -24,6 +24,18 @@ namespace BPASmartClient.MorkCL.View | |||||
InitializeComponent(); | InitializeComponent(); | ||||
this.br.MouseLeftButtonDown += (o, e) => { if (e.LeftButton == MouseButtonState.Pressed) this.DragMove(); }; | this.br.MouseLeftButtonDown += (o, e) => { if (e.LeftButton == MouseButtonState.Pressed) this.DragMove(); }; | ||||
ActionManage.GetInstance.Register((object b) => | |||||
{ | |||||
this.DialogResult = (bool)b; | |||||
this.Close(); | |||||
}, "CloseManualSetStorageView", true); | |||||
} | |||||
private void Button_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
this.DialogResult = false; | |||||
this.Close(); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -6,10 +6,14 @@ | |||||
xmlns:local="clr-namespace:BPASmartClient.MorkCL.View" | xmlns:local="clr-namespace:BPASmartClient.MorkCL.View" | ||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | ||||
xmlns:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | xmlns:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | ||||
xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" | |||||
Name="参数设置" | Name="参数设置" | ||||
d:DesignHeight="450" | d:DesignHeight="450" | ||||
d:DesignWidth="800" | d:DesignWidth="800" | ||||
mc:Ignorable="d"> | mc:Ignorable="d"> | ||||
<UserControl.DataContext> | |||||
<vm:ParSetViewModel /> | |||||
</UserControl.DataContext> | |||||
<UserControl.Resources> | <UserControl.Resources> | ||||
<ResourceDictionary> | <ResourceDictionary> | ||||
<ResourceDictionary.MergedDictionaries> | <ResourceDictionary.MergedDictionaries> | ||||
@@ -19,9 +23,82 @@ | |||||
</ResourceDictionary> | </ResourceDictionary> | ||||
</UserControl.Resources> | </UserControl.Resources> | ||||
<Grid> | |||||
<pry:ImageBorder Margin="10" /> | |||||
<TextBlock HorizontalAlignment="Center" Text="暂时没有参数需要调整" /> | |||||
<Grid Margin="10"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="50" /> | |||||
<RowDefinition Height="1*" /> | |||||
<RowDefinition Height="1*" /> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="1*" /> | |||||
<ColumnDefinition Width="1*" /> | |||||
</Grid.ColumnDefinitions> | |||||
<pry:ImageBorder Grid.ColumnSpan="9" Grid.RowSpan="9"/> | |||||
<StackPanel | |||||
Margin="5" | |||||
Grid.ColumnSpan="2" | |||||
HorizontalAlignment="Right" | |||||
Orientation="Horizontal"> | |||||
<TextBlock Style="{StaticResource TextBlockStyle}" Text="请点击按钮保存参数:" /> | |||||
<Button | |||||
Grid.Column="5" | |||||
Width="100" | |||||
Height="40" | |||||
HorizontalAlignment="Left" | |||||
Command="{Binding SaveInfoCommand}" | |||||
Content="保存配置" | |||||
FontSize="16" /> | |||||
</StackPanel> | |||||
<StackPanel Grid.Row="1" Margin="5"> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接炒锅1#" | |||||
FontSize="16" | |||||
IsChecked="{Binding Param.FryPanConnect_1}" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接炒锅2#" | |||||
FontSize="16" | |||||
IsChecked="{Binding Param.FryPanConnect_2}" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接机器人" | |||||
FontSize="16" | |||||
IsChecked="{Binding Param.RobotConnet}" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接外部设备(电子秤以及空盘仓位传感器)" | |||||
FontSize="16" | |||||
IsChecked="{Binding Param.OtherDeviceConnect}" /> | |||||
</StackPanel> | |||||
<!--<StackPanel Grid.Row="1" Grid.Column="2"> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接炒锅1#" | |||||
FontSize="16" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接炒锅2#" | |||||
FontSize="16" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接机器人" | |||||
FontSize="16" /> | |||||
<CheckBox | |||||
Margin="5" | |||||
Content="连接外部设备(电子秤以及空盘仓位传感器)" | |||||
FontSize="16" /> | |||||
</StackPanel>--> | |||||
<!--<StackPanel Grid.Row="2" Margin="5"> | |||||
<StackPanel Orientation="Horizontal"> | |||||
<TextBlock Text="主料重量偏差值(Kg):"/> | |||||
<TextBox Text="{Binding Param.IngredientsDeviation}" Width="100" Height="30" d:Text="1.23" FontSize="22"/> | |||||
</StackPanel> | |||||
</StackPanel>--> | |||||
</Grid> | </Grid> | ||||
</UserControl> | </UserControl> |
@@ -1,4 +1,5 @@ | |||||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||||
using BPASmartClient.MorkCL.HelpClass; | using BPASmartClient.MorkCL.HelpClass; | ||||
using System.Reflection.Metadata; | using System.Reflection.Metadata; | ||||
using System.Windows.Markup; | using System.Windows.Markup; | ||||
@@ -14,11 +15,14 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
WriteAgitaParamCommand = new(async () => | WriteAgitaParamCommand = new(async () => | ||||
{ | { | ||||
if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//{ | |||||
// return; | |||||
//} | |||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
ActionManage.GetInstance.Send("WriteUshort", new WriteModel<ushort>(FryingPanSelect, "LW1", (ushort)(AgitaFrequency*100))); | ActionManage.GetInstance.Send("WriteUshort", new WriteModel<ushort>(FryingPanSelect, "LW1", (ushort)(AgitaFrequency*100))); | ||||
await SendWriteRequest("LB10"); | await SendWriteRequest("LB10"); | ||||
@@ -32,12 +36,20 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
ActionManage.GetInstance.Send("WriteBool", new WriteModel<bool>(FryingPanSelect, "LB0", true)); | ActionManage.GetInstance.Send("WriteBool", new WriteModel<bool>(FryingPanSelect, "LB0", true)); | ||||
ShowNotify($"写入搅拌启动成功。"); | ShowNotify($"写入搅拌启动成功。"); | ||||
}); | }); | ||||
StopAgitateCommand = new(() => | StopAgitateCommand = new(() => | ||||
{ | { | ||||
if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//{ | |||||
// return; | |||||
//} | |||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
@@ -47,7 +59,11 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
WriteHeatParamCommand = new(async () => | WriteHeatParamCommand = new(async () => | ||||
{ | { | ||||
if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//{ | |||||
// return; | |||||
//} | |||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
@@ -63,13 +79,21 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
ActionManage.GetInstance.Send("WriteBool", new WriteModel<bool>(FryingPanSelect, "LB3", true)); | ActionManage.GetInstance.Send("WriteBool", new WriteModel<bool>(FryingPanSelect, "LB3", true)); | ||||
ShowNotify($"写入加热启动成功。"); | ShowNotify($"写入加热启动成功。"); | ||||
}); | }); | ||||
StopHeatCommand = new(() => | StopHeatCommand = new(() => | ||||
{ | { | ||||
if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//{ | |||||
// return; | |||||
//} | |||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
@@ -90,6 +114,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
object[] para = new object[3]; | object[] para = new object[3]; | ||||
para[0]= FryingPanSelect; | para[0]= FryingPanSelect; | ||||
para[1] = ChannelSelect+1; | para[1] = ChannelSelect+1; | ||||
@@ -105,6 +133,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
var loc = StirFryLocSelect + 17; | var loc = StirFryLocSelect + 17; | ||||
await SendWriteRequest($"LB{loc}"); | await SendWriteRequest($"LB{loc}"); | ||||
@@ -116,6 +148,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
await SendWriteRequest("LB12"); | await SendWriteRequest("LB12"); | ||||
ShowNotify($"写入回原点成功。"); | ShowNotify($"写入回原点成功。"); | ||||
}); | }); | ||||
@@ -125,6 +161,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
await SendWriteRequest("LB16"); | await SendWriteRequest("LB16"); | ||||
ShowNotify($"写入去调料投料位成功。"); | ShowNotify($"写入去调料投料位成功。"); | ||||
}); | }); | ||||
@@ -135,6 +175,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
await SendWriteRequest("LB13"); | await SendWriteRequest("LB13"); | ||||
ShowNotify($"写入出餐启动成功。"); | ShowNotify($"写入出餐启动成功。"); | ||||
}); | }); | ||||
@@ -145,6 +189,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
await SendWriteRequest("LB14"); | await SendWriteRequest("LB14"); | ||||
ShowNotify($"写入炒锅清洗成功。"); | ShowNotify($"写入炒锅清洗成功。"); | ||||
}); | }); | ||||
@@ -171,6 +219,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
return; | return; | ||||
} | } | ||||
//复位所有变量。 | //复位所有变量。 | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
ResetFryPanVariable(FryingPanSelect); | ResetFryPanVariable(FryingPanSelect); | ||||
await SendWriteRequest("LB21"); | await SendWriteRequest("LB21"); | ||||
ShowNotify($"设置设备初始化成功。"); | ShowNotify($"设置设备初始化成功。"); | ||||
@@ -178,7 +230,11 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
StopDeviceCommand = new(async () => | StopDeviceCommand = new(async () => | ||||
{ | { | ||||
if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//if (!GetDeviceIsIdle(FryingPanSelect)) | |||||
//{ | |||||
// return; | |||||
//} | |||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
@@ -192,7 +248,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
return; | return; | ||||
} | } | ||||
if (!MessageNotify.GetInstance.ShowDialog("确认是否进行手动操作?")) | |||||
{ | |||||
return; | |||||
} | |||||
await SendWriteRequest("LB23"); | await SendWriteRequest("LB23"); | ||||
ShowNotify($"设置设备复位成功。"); | ShowNotify($"设置设备复位成功。"); | ||||
}); | }); | ||||
@@ -69,7 +69,16 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "提示", $"失败,物料位置应为正整数!"); | NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "提示", $"失败,物料位置应为正整数!"); | ||||
return; | return; | ||||
} | } | ||||
if (CurrentMaterialType == "调料" && (MaterialLoc <= 0 || MaterialLoc>3)) | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "提示", $"失败,调料位置应大于0 且小于等于 3 !"); | |||||
return; | |||||
} | |||||
if (CurrentMaterialType == "辅料" && (MaterialLoc <= 0 || MaterialLoc > 8)) | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "提示", $"失败,调料位置应大于0 且小于等于 8 !"); | |||||
return; | |||||
} | |||||
#endregion 数据验证 | #endregion 数据验证 | ||||
//新增 | //新增 | ||||
@@ -26,10 +26,10 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
ActionManage.GetInstance.Register((object o) => | ActionManage.GetInstance.Register((object o) => | ||||
{ | { | ||||
if (o != null) | |||||
if (o != null && o is float f) | |||||
{ | { | ||||
#if !FORMAL | #if !FORMAL | ||||
ScaleCurrentWeight = (float)o; | |||||
ScaleCurrentWeight = f; | |||||
#else | #else | ||||
ScaleCurrentWeight = 1.23f; | ScaleCurrentWeight = 1.23f; | ||||
#endif | #endif | ||||
@@ -115,11 +115,91 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
}); | }); | ||||
WeigherTareCommand = new(() => | WeigherTareCommand = new(() => | ||||
{ | { | ||||
ActionManage.GetInstance.Send("WeighrTare"); | |||||
if (MessageNotify.GetInstance.ShowDialog("请确认是否执行电子秤【除皮】操作?")) | |||||
{ | |||||
Task.Run(() => | |||||
{ | |||||
ActionManage.GetInstance.Send("WeighrTare"); | |||||
}); | |||||
} | |||||
}); | }); | ||||
WeigherZeroCommand = new(() => | WeigherZeroCommand = new(() => | ||||
{ | { | ||||
ActionManage.GetInstance.Send("WeighrZero"); | |||||
if (MessageNotify.GetInstance.ShowDialog("请确认是否执行电子秤【置零】操作?")) | |||||
{ | |||||
Task.Run(() => | |||||
{ | |||||
ActionManage.GetInstance.Send("WeighrZero"); | |||||
}); | |||||
} | |||||
}); | |||||
ModifySelectStorageCommand = new((o) => | |||||
{ | |||||
if (o is not null && o is int index) | |||||
{ | |||||
if (ActionManage.GetInstance.SendResult("SystemIsBusy") is bool isBusy) | |||||
{ | |||||
if (isBusy == true) | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "失败", $"当前还有配方任务在排队制作,请稍后后再试。"); | |||||
return; | |||||
} | |||||
if (MessageNotify.GetInstance.ShowDialog($"确认修改库位【{index + 1}】的库位信息吗?")) | |||||
{ | |||||
if (index >= 0 && index < Json<ItemStorageInfo>.Data.IngredientsStorage.Length) | |||||
{ | |||||
ManualSetItemStorageView view = new(); | |||||
ActionManage.GetInstance.Send("SendItemStorageInfo", index); | |||||
var result= view.ShowDialog(); | |||||
ActionManage.GetInstance.Send("RefreshItemStorage"); | |||||
if (result==true) | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, Application.Current.MainWindow, "成功", $"修改库位【{index + 1}】信息成功。"); | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "失败", $"未找到库位【{index + 1}】,请确认后重试。"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}); | |||||
ClearSelectStorageCommand = new((o) => | |||||
{ | |||||
if (o is not null && o is int index) | |||||
{ | |||||
if (ActionManage.GetInstance.SendResult("SystemIsBusy") is bool isBusy) | |||||
{ | |||||
if (isBusy == true) | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "失败", $"当前还有配方任务在排队制作,请稍后后再试。"); | |||||
return; | |||||
} | |||||
if (MessageNotify.GetInstance.ShowDialog($"确认清除库位【{index + 1}】的库位信息吗?")) | |||||
{ | |||||
if (index >= 0 && index < Json<ItemStorageInfo>.Data.IngredientsStorage.Length) | |||||
{ | |||||
Json<ItemStorageInfo>.Data.IngredientsStorage[index] = new ItemStorage(); | |||||
Json<ItemStorageInfo>.Save(); | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, Application.Current.MainWindow, "成功", $"清除库位【{index+1}】信息成功。"); | |||||
ActionManage.GetInstance.Send("RefreshItemStorage"); | |||||
} | |||||
else | |||||
{ | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, Application.Current.MainWindow, "失败", $"未找到库位【{index + 1}】,请确认后重试。"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}); | }); | ||||
} | } | ||||
@@ -147,11 +227,20 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
/// <summary> | /// <summary> | ||||
/// 电子秤除皮。 | /// 电子秤除皮。 | ||||
/// </summary> | /// </summary> | ||||
[Obsolete("除皮功能弃用,不会用这个功能。")] | |||||
public BPARelayCommand WeigherTareCommand { get; set; } | public BPARelayCommand WeigherTareCommand { get; set; } | ||||
/// <summary> | /// <summary> | ||||
/// 电子秤置零。 | /// 电子秤置零。 | ||||
/// </summary> | /// </summary> | ||||
public BPARelayCommand WeigherZeroCommand { get; set; } | public BPARelayCommand WeigherZeroCommand { get; set; } | ||||
/// <summary> | |||||
/// 修改指定库位信息。 | |||||
/// </summary> | |||||
public BPARelayCommand<object> ModifySelectStorageCommand { get; set; } | |||||
/// <summary> | |||||
/// 清空指定库位信息。 | |||||
/// </summary> | |||||
public BPARelayCommand<object> ClearSelectStorageCommand { get; set; } | |||||
private float _ScaleCurrentWeight; | private float _ScaleCurrentWeight; | ||||
@@ -193,13 +282,15 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
set { _Ingredients = value; OnPropertyChanged(); } | set { _Ingredients = value; OnPropertyChanged(); } | ||||
} | } | ||||
private bool _CanItemStorage; | |||||
//private int _storageIndex; | |||||
///// <summary> | |||||
///// 库位选择的Index。 | |||||
///// </summary> | |||||
//public int StorageIndex | |||||
//{ | |||||
// get { return _storageIndex; } | |||||
// set { _storageIndex = value;OnPropertyChanged(); } | |||||
//} | |||||
/// <summary>入库许可。</summary> | |||||
public bool CanItemStorage | |||||
{ | |||||
get { return _CanItemStorage; } | |||||
set { _CanItemStorage = value; OnPropertyChanged(); } | |||||
} | |||||
} | } | ||||
} | } |
@@ -1,4 +1,9 @@ | |||||
using System; | |||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
using BPASmartClient.MorkCL.Model.DB; | |||||
using BPASmartClient.MorkCL.Model.Json; | |||||
using BPASmartClient.MorkCL.Server; | |||||
using SqlSugar; | |||||
using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
using System.Text; | using System.Text; | ||||
@@ -8,6 +13,92 @@ namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | { | ||||
public class ManualSetItemStorageViewModel:NotifyBase | public class ManualSetItemStorageViewModel:NotifyBase | ||||
{ | { | ||||
public ManualSetItemStorageViewModel() | |||||
{ | |||||
ActionManage.GetInstance.Register((object o) => | |||||
{ | |||||
if (o is not null && o is int storageIndex) | |||||
{ | |||||
if (storageIndex >= 0 && storageIndex <= 11) | |||||
{ | |||||
var storage = Json<ItemStorageInfo>.Data.IngredientsStorage[storageIndex]; | |||||
if (storage is not null) | |||||
{ | |||||
Storage = new(); | |||||
StorageIndex = storageIndex; | |||||
Storage.Weight = storage.Weight; | |||||
Storage.Name = storage.Name; | |||||
Storage.IsEmploy = storage.IsEmploy; | |||||
Storage.MaterialID = storage.MaterialID; | |||||
} | |||||
} | |||||
} | |||||
}, "SendItemStorageInfo", true); | |||||
//获取所有主料。 | |||||
Ingredients = new ObservableCollection<IngredientsTB>(SqliteHelper.GetInstance.GetIngredients()); | |||||
SaveCommand = new(() => | |||||
{ | |||||
if (Storage.Weight is float f) | |||||
{ | |||||
if (f > 0) | |||||
{ | |||||
if (StorageIndex >= 0 && StorageIndex <= 11) | |||||
{ | |||||
var storage = Json<ItemStorageInfo>.Data.IngredientsStorage[StorageIndex]; | |||||
storage.Name = Storage.Name; | |||||
storage.Weight = Storage.Weight; | |||||
storage.MaterialID = Ingredients.FirstOrDefault(material => material.Name == Storage.Name).Id; | |||||
storage.IsEmploy = true; | |||||
Json<ItemStorageInfo>.Save(); | |||||
ActionManage.GetInstance.Send("CloseManualSetStorageView", true); | |||||
} | |||||
else | |||||
{ | |||||
} | |||||
} | |||||
else | |||||
MessageNotify.GetInstance.ShowDialog("重量不应小于零,请确认后再试。"); | |||||
} | |||||
else | |||||
MessageNotify.GetInstance.ShowDialog("重量因为数字,请确认后再试。"); | |||||
}); | |||||
} | |||||
private ItemStorage _storage; | |||||
/// <summary> | |||||
/// 仓位信息 | |||||
/// </summary> | |||||
public ItemStorage Storage | |||||
{ | |||||
get { return _storage; } | |||||
set { _storage = value; OnPropertyChanged(); } | |||||
} | |||||
private int _storageIndex; | |||||
/// <summary> | |||||
/// 仓位索引。 | |||||
/// </summary> | |||||
public int StorageIndex | |||||
{ | |||||
get { return _storageIndex; } | |||||
set { _storageIndex = value; OnPropertyChanged(); } | |||||
} | |||||
private ObservableCollection<IngredientsTB> _Ingredients; | |||||
/// <summary>所有的主料数据。作为ComboBox的数据源。</summary> | |||||
public ObservableCollection<IngredientsTB> Ingredients | |||||
{ | |||||
get { return _Ingredients; } | |||||
set { _Ingredients = value; OnPropertyChanged(); } | |||||
} | |||||
public BPARelayCommand SaveCommand { get; set; } | |||||
} | } | ||||
} | } |
@@ -0,0 +1,41 @@ | |||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
using BPASmartClient.MorkCL.Model.Json; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmartClient.MorkCL.ViewModel | |||||
{ | |||||
public class ParSetViewModel:NotifyBase | |||||
{ | |||||
public ParSetViewModel() | |||||
{ | |||||
Param = Json<ConnectPar>.Data; | |||||
SaveInfoCommand = new(() => | |||||
{ | |||||
if (MessageNotify.GetInstance.ShowDialog("确认保存配置文件?")) | |||||
{ | |||||
Json<ConnectPar>.Save(); | |||||
} | |||||
}); | |||||
} | |||||
private ConnectPar _param; | |||||
/// <summary> | |||||
/// 配置参数。 | |||||
/// </summary> | |||||
public ConnectPar Param | |||||
{ | |||||
get { return _param; } | |||||
set { _param = value; OnPropertyChanged(); } | |||||
} | |||||
/// <summary> | |||||
/// 保存配置信息 | |||||
/// </summary> | |||||
public BPARelayCommand SaveInfoCommand { get; set; } | |||||
} | |||||
} |