diff --git a/UserClass/AsyncTcpClient.cs b/UserClass/AsyncTcpClient.cs index 9c3ab64..8699a82 100644 --- a/UserClass/AsyncTcpClient.cs +++ b/UserClass/AsyncTcpClient.cs @@ -183,7 +183,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass DAT = DAT.Substring(DAT.IndexOf("]") + 1); MainWindowViewModel.dt_m = JsonConvert.DeserializeObject(DAT);//反序列化 }//缓存表 - + else if (SYSAPI == "SC854") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + MainWindowViewModel.dt_ParameterSet = JsonConvert.DeserializeObject(DAT);//反序列化 + }//程序设置表 + else if (SYSAPI == "SC855") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + MainWindowViewModel.dt_SysSet = JsonConvert.DeserializeObject(DAT);//反序列化 + }//系统设置表 return EasyTask.CompletedTask; diff --git a/View/MachinesView.xaml b/View/MachinesView.xaml index 31af50d..cb3e324 100644 --- a/View/MachinesView.xaml +++ b/View/MachinesView.xaml @@ -6,7 +6,10 @@ xmlns:local="clr-namespace:SunlightCentralizedControlManagement_SCCM_.View" xmlns:lang="clr-namespace:SunlightCentralizedControlManagement_SCCM_.Properties" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" - xmlns:ConvertMoels="clr-namespace:SunlightCentralizedControlManagement_SCCM_.ConvertMoels" + xmlns:ConvertMoels="clr-namespace:SunlightCentralizedControlManagement_SCCM_.ConvertMoels" + xmlns:localUserClass="clr-namespace:DyeingComputer.UserClass" + xmlns:viewmodel="clr-namespace:SunlightCentralizedControlManagement_SCCM_.ViewModel" + d:DataContext="{d:DesignInstance Type=viewmodel:MainWindowViewModel}" mc:Ignorable="d" Loaded="UserControl_Loaded" d:DesignHeight="900" d:DesignWidth="1200"> @@ -20,11 +23,12 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -259,7 +348,6 @@ - @@ -288,7 +376,17 @@ - + + + + + + + + + + + diff --git a/View/MachinesView.xaml.cs b/View/MachinesView.xaml.cs index 96a4c11..29b8091 100644 --- a/View/MachinesView.xaml.cs +++ b/View/MachinesView.xaml.cs @@ -21,6 +21,7 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Threading; +using TouchSocket.Core; using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper; namespace SunlightCentralizedControlManagement_SCCM_.View @@ -41,8 +42,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini"); private string SYS_machines = null; private void UserControl_Loaded(object sender, RoutedEventArgs e) - { - Griddata.ItemsSource = MainWindowViewModel.Machines.DefaultView; + { } string machine; private void Griddata_MouseDoubleClick(object sender, MouseButtonEventArgs e) @@ -51,20 +51,36 @@ namespace SunlightCentralizedControlManagement_SCCM_.View if (rownum != -1)//判断鼠标定位是否有效 { machine = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列, + MAC_name.Text= machine; + + MainWindowViewModel.dt_d.Clear(); + MainWindowViewModel.dt_a.Clear(); + MainWindowViewModel.dt_m.Clear(); + MainWindowViewModel.dt_ParameterSet.Clear(); + MainWindowViewModel.dt_SysSet.Clear(); } } private void ListViewItem_ArrowLeftRight(object sender, MouseButtonEventArgs e) { - + IO_GRID.Visibility = Visibility.Visible; + SYS_GRID.Visibility = Visibility.Collapsed; + SET_GRID.Visibility = Visibility.Collapsed; + view = 0; } private void ListViewItem_VideoHomeSystem(object sender, MouseButtonEventArgs e) { - + IO_GRID.Visibility = Visibility.Collapsed; + SYS_GRID.Visibility = Visibility.Visible; + SET_GRID.Visibility = Visibility.Collapsed; + view = 2; } private void ListViewItem_Dharmachakra(object sender, MouseButtonEventArgs e) { - + IO_GRID.Visibility = Visibility.Collapsed; + SYS_GRID.Visibility = Visibility.Collapsed; + SET_GRID.Visibility = Visibility.Visible; + view = 1; } private void Grid_D_SelectionChanged(object sender, SelectionChangedEventArgs e) { @@ -81,7 +97,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View } - private void Grid_D_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string ID; @@ -125,7 +140,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新 SQLiteHelpers.Close();//关闭数据库 } - IO_data();//重新获得io表 MainWindowViewModel.A_view = true; } @@ -134,6 +148,63 @@ namespace SunlightCentralizedControlManagement_SCCM_.View MainWindowViewModel.A_view = false; } + private void SYS_Grid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) + { + string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息 + int rownum = SYS_Grid.SelectedIndex;//获取鼠标选中行并定义变量 + if (rownum != -1)//判断鼠标定位是否有效 + { + string ID = (SYS_Grid.Columns[1].GetCellContent(SYS_Grid.Items[rownum]) as TextBlock).Text;//定位第1列, + + Dictionary datagrid_v = new Dictionary();//缓存函数 + datagrid_v.Add("Value", newValue); + datagrid_v.Add("ID", ID); + + DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); + int index = Convert.ToInt16(drEmployee.Field("ID")); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC862" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + datagrid_v.ToJsonString() + });//发送862指令修改系统设置 + } + MainWindowViewModel.SysSet_view = true; + } + + private void SET_Grid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) + { + string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息 + int rownum = SET_Grid.SelectedIndex;//获取鼠标选中行并定义变量 + if (rownum != -1)//判断鼠标定位是否有效 + { + string ID = (SET_Grid.Columns[1].GetCellContent(SET_Grid.Items[rownum]) as TextBlock).Text;//定位第1列, + + Dictionary datagrid_v = new Dictionary();//缓存函数 + datagrid_v.Add("Value", newValue); + datagrid_v.Add("ID", ID); + + DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); + int index = Convert.ToInt16(drEmployee.Field("ID")); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC861" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index)+datagrid_v.ToJsonString() + });//发送861指令修改程序设置 + } + MainWindowViewModel.ParameterSet_view = true; + } + + private void SYS_Grid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) + { + MainWindowViewModel.SysSet_view = false; + } + + private void SET_Grid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) + { + MainWindowViewModel.ParameterSet_view = false; + } + + private int view = 0; private void IO_data() { if (!string.IsNullOrEmpty(machine)) @@ -143,21 +214,39 @@ namespace SunlightCentralizedControlManagement_SCCM_.View int index = Convert.ToInt16(drEmployee.Field("ID")); if ((State_ == 101) || (State_ == 201) || (State_ == 202) || (State_ == 309))//获得细节信息 { - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + if (view == 0) { - ID = index, - DAT = "SC851" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) - }); - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC851" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + }); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC852" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + }); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC853" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + }); + } else if (view==1) { - ID = index, - DAT = "SC852" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) - }); - MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC854" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + }); + } + else if (view == 2) { - ID = index, - DAT = "SC853" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) - }); + MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString + { + ID = index, + DAT = "SC855" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", index) + }); + } } } } @@ -173,5 +262,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View }//时间周期初始化 void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { IO_data(); } + + } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 80444f0..f9eca35 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -275,17 +275,21 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel public static DataTable dt_m = new DataTable("M"); public static DataTable dt_TM = new DataTable(); public static DataTable dt_TP = new DataTable(); + public static DataTable dt_ParameterSet = new DataTable(); + public static DataTable dt_SysSet = new DataTable(); public static bool TechnologicalProcess_bool =true; public static bool A_view =true; public static bool D_view =true; public static bool IO_view; + public static bool ParameterSet_view=true; + public static bool SysSet_view=true; private async void DATA_view()//IO显示 { await Task.Run(() => { try { - if (dt_m.Rows.Count > 0) + if (dt_m.Rows.Count >= 0) { SYSData_M = ToObservableCollection(dt_m); } @@ -293,7 +297,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel catch (Exception ) { } try { - if (dt_a.Rows.Count > 0) + if (dt_a.Rows.Count >= 0) { if ((bool)A_view) SYSData_A = ToObservableCollection(dt_a); } @@ -301,7 +305,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel catch (Exception ) { } try { - if (dt_d.Rows.Count > 0) + if (dt_d.Rows.Count >= 0) { if ((bool)D_view) SYSData_D = ToObservableCollection(dt_d); } @@ -313,6 +317,22 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel } catch (Exception) { } try + { + if (dt_ParameterSet.Rows.Count >= 0) + { + if(ParameterSet_view) Paramete_Set = ToObservableCollection(dt_ParameterSet); + } + } + catch (Exception) { } + try + { + if (dt_SysSet.Rows.Count >= 0) + { + if (SysSet_view) Sys_Set = ToObservableCollection(dt_SysSet); + } + } + catch (Exception) { } + try { if (dt_TP.Rows.Count >= 0) { @@ -327,6 +347,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel ObservableCollection sysData_A = new ObservableCollection(); ObservableCollection sysData_D = new ObservableCollection(); ObservableCollection sysData_M = new ObservableCollection(); + ObservableCollection paramete_Set = new ObservableCollection(); + ObservableCollection sys_Set = new ObservableCollection(); ObservableCollection technologicalProcess_View = new ObservableCollection(); ObservableCollection technologicalMachine_View = new ObservableCollection(); public ObservableCollection SYSData_A @@ -376,6 +398,24 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel RaisePropertyChanged("TechnologicalMachine_View"); } } + public ObservableCollection Paramete_Set + { + get { return paramete_Set; } + set + { + paramete_Set = value; + RaisePropertyChanged("Paramete_Set"); + } + } + public ObservableCollection Sys_Set + { + get { return sys_Set; } + set + { + sys_Set = value; + RaisePropertyChanged("Sys_Set"); + } + } public class DATA_A { public string IOName { get; set; } @@ -400,6 +440,19 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel public string PLC { get; set; } public string type { get; set; } } + public class TechnologicalM + { + public string Name { get; set; } + public string WorkOrder { get; set; } + public string Dyelot { get; set; } + public string Temperature { get; set; } + public string WaterLevel { get; set; } + public string Process { get; set; } + public string Step { get; set; } + public string Message { get; set; } + public string State { get; set; } + + } public class TechnologicalP { public string ProgramID { get; set; } @@ -415,19 +468,20 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel public string Parameter5 { get; set; } public string DYELOT { get; set; } } - public class TechnologicalM - { - public string Name { get; set; } - public string WorkOrder { get; set; } - public string Dyelot { get; set; } - public string Temperature { get; set; } - public string WaterLevel { get; set; } - public string Process { get; set; } - public string Step { get; set; } - public string Message { get; set; } - public string State { get; set; } + public class ParameterSet + { public string Category { get; set; } + public string ParameterID { get; set; } + public string ParameterName { get; set; } + public string Value { get; set; } } + public class SysSet + { + public string Category { get; set; } + public string ParameterID { get; set; } + public string ParameterName { get; set; } + public string Value { get; set; } + } public ObservableCollection ToObservableCollection(DataTable dt) where T : class, new() { Type t = typeof(T);