using SkiaSharp; using SunlightCentralizedControlManagement_SCCM_.UserClass; using SunlightCentralizedControlManagement_SCCM_.ViewModel; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; 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 { /// /// MachinesSet.xaml 的交互逻辑 /// public partial class MachinesView : UserControl { public MachinesView() { InitializeComponent(); CountDown(); } private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径 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) { } string machine; private void Griddata_MouseDoubleClick(object sender, MouseButtonEventArgs e) { int rownum = Griddata.SelectedIndex;//获取鼠标选中行并定义变量 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) { } private void Grid_A_SelectionChanged(object sender, SelectionChangedEventArgs e) { } private void Grid_M_SelectionChanged(object sender, SelectionChangedEventArgs e) { } private void Grid_D_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string ID; string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息 int rownum = Grid_D.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { ID = (Grid_D.Columns[0].GetCellContent(Grid_D.Items[rownum]) as TextBlock).Text;//定位第0列, Dictionary datagrid_v = new Dictionary();//缓存函数 datagrid_v.Add("PLC", newValue); SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新 SQLiteHelpers.Close();//关闭数据库 } IO_data();//重新获得io表 MainWindowViewModel.D_view = true; } private void Grid_D_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { MainWindowViewModel.D_view = false; } private void Grid_A_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string ID; string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息 int rownum = Grid_A.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { ID = (Grid_A.Columns[0].GetCellContent(Grid_A.Items[rownum]) as TextBlock).Text;//定位第0列, Dictionary datagrid_v = new Dictionary();//缓存函数 datagrid_v.Add("PLC", newValue); SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新 SQLiteHelpers.Close();//关闭数据库 } MainWindowViewModel.A_view = true; } private void Grid_A_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { 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", "ID='" + 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", "ID='" + 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)) { DataRow drEmployee = MainWindowViewModel.Machines.Select("NAME='" + machine + "'").First(); int State_ = Convert.ToInt16(drEmployee.Field("State")); int index = Convert.ToInt16(drEmployee.Field("ID")); if ((State_ == 101) || (State_ == 201) || (State_ == 202) || (State_ == 309))//获得细节信息 { if (view == 0) { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC851" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", "ID='" + index + "'") }); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC852" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", "ID='" + index + "'") }); MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC853" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", "ID='" + index + "'") }); } else if (view==1) { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC854" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", "ID='" + index + "'") }); } else if (view == 2) { MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString { ID = index, DAT = "SC855" + MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, "SYSKEY", "ID='" + index + "'") }); } } } } public void CountDown() { DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick { Interval = TimeSpan.FromSeconds(1.5)//秒 }; timer1s.Tick += Tick_Event_1S; timer1s.Start(); }//时间周期初始化 void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { IO_data(); } } }