Browse Source

串口逻辑,数据库读写逻辑修改

master
sc 1 month ago
parent
commit
4af9042d5f
  1. 9
      EX/ManualDyelot.xaml.cs
  2. 50
      UserClass/AsyncSerialPortClient.cs
  3. 45
      UserClass/AsyncTcpClient.cs
  4. 47
      View/CurveView.xaml.cs
  5. 29
      View/DispenseMachinesSet.xaml.cs
  6. 7
      View/DispenseView.xaml.cs
  7. 47
      View/DyeingPlanView.xaml.cs
  8. 10
      View/DyelotView.xaml.cs
  9. 6
      View/EngineerSetView.xaml.cs
  10. 43
      View/MachinesSet.xaml.cs
  11. 14
      View/MachinesView.xaml.cs
  12. 50
      View/ProductionPlanningEdit.xaml.cs
  13. 32
      View/ProductionPlanningView.xaml.cs
  14. 70
      View/ProgramgroupView.xaml.cs
  15. 22
      View/ProgramstepsView .xaml.cs
  16. 719
      ViewModel/MainWindowViewModel.cs
  17. 13
      WindowsView/MachineSelection.xaml.cs
  18. 26
      WindowsView/User.xaml.cs

9
EX/ManualDyelot.xaml.cs

@ -34,9 +34,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.EX
public partial class ManualDyelot : Window public partial class ManualDyelot : Window
{ {
private SQLiteHelper SQLiteHelpers = null; //定义数据库 DataTable dyelotdat = new DataTable();
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataTable dyelotdat = new DataTable();
public static string Machines; public static string Machines;
DataTable mach = new DataTable(); DataTable mach = new DataTable();
DataTable RRODUCTdataTable = new DataTable(); //建立RRODUCT缓存 DataTable RRODUCTdataTable = new DataTable(); //建立RRODUCT缓存
@ -125,8 +123,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.EX
if (string.IsNullOrEmpty(comboBoxMachine.Text)) return;//未输入机台时返回 if (string.IsNullOrEmpty(comboBoxMachine.Text)) return;//未输入机台时返回
try try
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
Dictionary<string, object> Dyelot_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Dyelot_DAT = new Dictionary<string, object>();//缓存函数
for (int x = 0; x < RRODUCTdataTable.Rows.Count; x++) for (int x = 0; x < RRODUCTdataTable.Rows.Count; x++)
{ {
@ -144,10 +140,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.EX
Dyelot_DAT.Add("DispenseStartTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Dyelot_DAT.Add("DispenseStartTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Dyelot_DAT.Add("Grams", RRODUCTdataTable.Rows[x]["TARGET_WT"]); Dyelot_DAT.Add("Grams", RRODUCTdataTable.Rows[x]["TARGET_WT"]);
Dyelot_DAT.Add("Amount", RRODUCTdataTable.Rows[x]["Amount"]); Dyelot_DAT.Add("Amount", RRODUCTdataTable.Rows[x]["Amount"]);
SQLiteHelpers.InsertData("Dyelot", Dyelot_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("Dyelot", Dyelot_DAT);//行插入
Dyelot_DAT.Clear(); Dyelot_DAT.Clear();
} }
SQLiteHelpers.Close(); //关闭连接
LogGing.ExchangeDATA("Dyelot=" + dyelot.Text + ";Machine=" + comboBoxMachine.Text + LogGing.ExchangeDATA("Dyelot=" + dyelot.Text + ";Machine=" + comboBoxMachine.Text +
";Program=------;User=" + MainWindowViewModel.USER_data + ";"); ";Program=------;User=" + MainWindowViewModel.USER_data + ";");

50
UserClass/AsyncSerialPortClient.cs

@ -1,7 +1,9 @@
using System; using ScottPlot.Plottables;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using TouchSocket.Core; using TouchSocket.Core;
using TouchSocket.SerialPorts; using TouchSocket.SerialPorts;
@ -18,10 +20,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
portclient.Connected = (client, e) => { return EasyTask.CompletedTask; };//成功连接到端口 portclient.Connected = (client, e) => { return EasyTask.CompletedTask; };//成功连接到端口
portclient.Closing = (client, e) => { return EasyTask.CompletedTask; };//即将从端口断开连接。此处仅主动断开才有效。 portclient.Closing = (client, e) => { return EasyTask.CompletedTask; };//即将从端口断开连接。此处仅主动断开才有效。
portclient.Closed = (client, e) => { return EasyTask.CompletedTask; };//从端口断开连接,当连接不成功时不会触发。 portclient.Closed = (client, e) => { return EasyTask.CompletedTask; };//从端口断开连接,当连接不成功时不会触发。
portclient.Received = async (c, e) => portclient.Received = (client, e) =>
{ {
_responseEvent.Set();
await Console.Out.WriteLineAsync(e.ByteBlock.Span.ToString(Encoding.UTF8)); string DAT = e.ByteBlock.Span.ToString(Encoding.UTF8);
//string DAT1 = CRCcheck16.ToCRC16(e.ByteBlock.Span.ToString(Encoding.UTF8));
return EasyTask.CompletedTask; ;
}; };
await portclient.SetupAsync(new TouchSocketConfig() await portclient.SetupAsync(new TouchSocketConfig()
@ -31,7 +36,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
DataBits = 8,//数据位 DataBits = 8,//数据位
Parity = System.IO.Ports.Parity.None,//校验位 Parity = System.IO.Ports.Parity.None,//校验位
PortName = com,//COM PortName = com,//COM
StopBits = System.IO.Ports.StopBits.One,//停止位 StopBits = System.IO.Ports.StopBits.One,//停止位
}) })
.SetSerialDataHandlingAdapter(() => new PeriodPackageAdapter() { CacheTimeout = TimeSpan.FromMilliseconds(100) }) .SetSerialDataHandlingAdapter(() => new PeriodPackageAdapter() { CacheTimeout = TimeSpan.FromMilliseconds(100) })
.ConfigurePlugins(a => .ConfigurePlugins(a =>
@ -41,5 +46,40 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
await portclient.ConnectAsync(); await portclient.ConnectAsync();
} }
private static readonly ManualResetEventSlim _responseEvent = new ManualResetEventSlim(false);
private static byte[] _receivedData;
private static readonly object _sendLock = new object(); // 确保发送-等待过程原子性
/// <summary>
/// 发送指令并等待响应,超时时间为500ms
/// </summary>
/// <param name="command">要发送的指令字节数组</param>
/// <returns>从机的响应数据,超时则为null</returns>
public static byte[] SendCommandAndWait(SerialPortClient serialPortClients, string command)
{
// lock (_sendLock) // 防止并发发送
{
_receivedData = null;
_responseEvent.Reset(); // 重置事件状态
serialPortClients.Send(command); // 发送指令
// 等待500毫秒或直到收到响应
bool signaled = _responseEvent.Wait(TimeSpan.FromMilliseconds(1000));
if (signaled)
{
return _receivedData; // 返回收到的数据
}
else
{
// 超时处理,记录日志或抛出异常
//Console.WriteLine("警告: 等待从机响应超时 (500ms)。");
return null; // 或者可以抛出 TimeoutException
}
}
}
} }
} }

45
UserClass/AsyncTcpClient.cs

@ -39,8 +39,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
/// </summary> /// </summary>
public class AsyncTcpClient public class AsyncTcpClient
{ {
private static SQLiteHelper SQLiteHelpers = null; //定义数据库
private static readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径 public static SQLiteHelper SQLiteChartAdress = null; //定义数据库
private static readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径 private static readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径
public static async Task TcpClient(TcpClient tcpClient, string ip, string port) public static async Task TcpClient(TcpClient tcpClient, string ip, string port)
{ {
@ -149,12 +149,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
{ {
try try
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 111 } },
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 111 } },
"WorkOrder ='" + DAT + "'", null); "WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -166,11 +163,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
try try
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 113 } },
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 113 } },
"WorkOrder ='" + DAT + "'", null); "WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
} }
catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; }
} }
@ -178,12 +172,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
{ {
try try
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 101 } },
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 101 } },
"WorkOrder ='" + DAT + "'", null); "WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
} }
catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; }
} }
@ -220,11 +211,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
newRow["State"] = 202; newRow["State"] = 202;
newRow.EndEdit(); newRow.EndEdit();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.InsertData("DyelotHistory", MainWindowViewModel.SQLiteHelpers.ToDictionary(newRow));// 执行插入
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.InsertData("DyelotHistory", SQLiteHelpers.ToDictionary(newRow));// 执行插入
SQLiteHelpers.Close();
MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString MainWindowViewModel.stringQueue.Enqueue(new MainWindowViewModel.QueueString
{ {
ID = Convert.ToInt16(MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines, ID = Convert.ToInt16(MainWindowViewModel.Selet_Machines(MainWindowViewModel.Machines,
@ -281,10 +268,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
Chart_new.Add("STTC", _new.GetValue("STTC")); Chart_new.Add("STTC", _new.GetValue("STTC"));
Chart_new.Add("STLC", _new.GetValue("STLC")); Chart_new.Add("STLC", _new.GetValue("STLC"));
SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径 SQLiteChartAdress = new SQLiteHelper(ChartAdress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库 SQLiteChartAdress.Open(); //打开数据库
SQLiteHelpers.InsertData("Chart", Chart_new);// 执行插入 SQLiteChartAdress.InsertData("Chart", Chart_new);// 执行插入
SQLiteHelpers.Close(); SQLiteChartAdress.Close();
} }
} }
@ -367,10 +354,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
try try
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 109 } },
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 109 } },
"WorkOrder ='" + DAT + "'", null); "WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
} }
catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; }
}//发布失败 }//发布失败
@ -379,10 +364,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
try try
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 119 } },
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 119 } },
"WorkOrder ='" + DAT + "'", null); "WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
} }
catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; }
}//细节错误 }//细节错误

47
View/CurveView.xaml.cs

@ -28,9 +28,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
/// </summary> /// </summary>
public partial class CurveView : UserControl public partial class CurveView : UserControl
{ {
private SQLiteHelper SQLiteHelpers = null; //定义数据库 public static DataTable WorkOrder = new DataTable(); //物料缓存
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
public static DataTable WorkOrder = new DataTable(); //物料缓存
public static string CurveDiagram; public static string CurveDiagram;
private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini"); private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini");
private string SYS_machines =null; private string SYS_machines =null;
@ -81,24 +79,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"), Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram); DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存 SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }
else else
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }
@ -112,24 +104,17 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"), Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);//刷新图表 DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);//刷新图表
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存 SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView; }
}
else else
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }
@ -143,24 +128,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"), Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram); DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存 SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }
else else
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }
@ -174,13 +153,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
SYS_machines = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列, SYS_machines = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列,
mac.Text = SYS_machines; mac.Text = SYS_machines;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" + DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存 SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"), Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
@ -204,10 +180,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string SysTime = DateTime.Parse(sender.ToString()).ToString("yyyy/MM/dd"); string SysTime = DateTime.Parse(sender.ToString()).ToString("yyyy/MM/dd");
string SysTimeDays = DateTime.Parse(sender.ToString()).AddDays(1).ToString("yyyy/MM/dd"); string SysTimeDays = DateTime.Parse(sender.ToString()).AddDays(1).ToString("yyyy/MM/dd");
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where " + "StartTime>='" + SysTime + "'and StartTime<='" + SysTimeDays + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where " + "StartTime>='" + SysTime + "'and StartTime<='" + SysTimeDays + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView; GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
} }

29
View/DispenseMachinesSet.xaml.cs

@ -39,16 +39,11 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
TextMachineGroup.ItemsSource = Machine_; TextMachineGroup.ItemsSource = Machine_;
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini");
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 string SYS_machines = null;
private void UserControl_Loaded(object sender, RoutedEventArgs e) private void UserControl_Loaded(object sender, RoutedEventArgs e)
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 DataTable dataTable = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense Order by id", null).Tables[0];
SQLiteHelpers.Open(); //打开数据库
DataTable dataTable = SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense Order by id", null).Tables[0];
SQLiteHelpers.Close();
Griddata.ItemsSource = dataTable.DefaultView; Griddata.ItemsSource = dataTable.DefaultView;
} }
@ -88,25 +83,20 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dr_new.Add("LOCK", dLICK.IsChecked.ToString()); dr_new.Add("LOCK", dLICK.IsChecked.ToString());
dr_new.Add("DATA",imageData); dr_new.Add("DATA",imageData);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 if (MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense where name ='" + comboBoxMachine.Text + "'", null).Tables[0].Rows.Count == 0)
SQLiteHelpers.Open(); //打开数据库
if (SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense where name ='" + comboBoxMachine.Text + "'", null).Tables[0].Rows.Count == 0)
{ {
SQLiteHelpers.InsertData("MachinesDispense", dr_new); MainWindowViewModel.SQLiteHelpers.InsertData("MachinesDispense", dr_new);
} }
else else
{ {
SQLiteHelpers.Update("MachinesDispense", dr_new, "name='" + comboBoxMachine.Text + "'", null); MainWindowViewModel.SQLiteHelpers.Update("MachinesDispense", dr_new, "name='" + comboBoxMachine.Text + "'", null);
} }
Griddata.ItemsSource = SQLiteHelpers.ExecuteDataSet("select Name,Groups,IP,PORT,DATA from MachinesDispense Order by id", null).Tables[0].DefaultView; Griddata.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select Name,Groups,IP,PORT,DATA from MachinesDispense Order by id", null).Tables[0].DefaultView;
SQLiteHelpers.Close();
MessageBox.Show(Properties.Resources.Save + comboBoxMachine.Text, "SCCM", MessageBoxButton.OK, MessageBoxImage.Information); MessageBox.Show(Properties.Resources.Save + comboBoxMachine.Text, "SCCM", MessageBoxButton.OK, MessageBoxImage.Information);
} }
else else
{ {
MessageBox.Show(Properties.Resources.ERR , "SCCM", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show(Properties.Resources.ERR , "SCCM", MessageBoxButton.OK, MessageBoxImage.Error);
} }
} }
private void Delete_Click(object sender, RoutedEventArgs e) private void Delete_Click(object sender, RoutedEventArgs e)
@ -116,11 +106,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
MessageBoxResult vr = System.Windows.MessageBox.Show(Properties.Resources.Delete + comboBoxMachine.Text, "SCCM", MessageBoxButton.OKCancel, MessageBoxImage.Question); MessageBoxResult vr = System.Windows.MessageBox.Show(Properties.Resources.Delete + comboBoxMachine.Text, "SCCM", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (vr == MessageBoxResult.OK) // 如果是确定,就执行下面代码 if (vr == MessageBoxResult.OK) // 如果是确定,就执行下面代码
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Delete("MachinesDispense", "Name='" + comboBoxMachine.Text + "'", null);
SQLiteHelpers.Open(); //打开数据库 Griddata.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select Name,Groups,IP,PORT,DATA from MachinesDispense Order by id", null).Tables[0].DefaultView;
SQLiteHelpers.Delete("MachinesDispense", "Name='" + comboBoxMachine.Text + "'", null);
Griddata.ItemsSource = SQLiteHelpers.ExecuteDataSet("select Name,Groups,IP,PORT,DATA from MachinesDispense Order by id", null).Tables[0].DefaultView;
SQLiteHelpers.Close();
comboBoxMachine.Text = null; comboBoxMachine.Text = null;
} }
} }

7
View/DispenseView.xaml.cs

@ -43,18 +43,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
InitializeComponent(); InitializeComponent();
} }
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 readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini");
DataTable DispenseMac = new DataTable(); DataTable DispenseMac = new DataTable();
UserControls.DispenseMacInfo[] dispenseMacInfo = new UserControls.DispenseMacInfo[99]; //定义总览信息卡 UserControls.DispenseMacInfo[] dispenseMacInfo = new UserControls.DispenseMacInfo[99]; //定义总览信息卡
//private string SYS_machines = null; //private string SYS_machines = null;
private void UserControl_Loaded(object sender, RoutedEventArgs e) private void UserControl_Loaded(object sender, RoutedEventArgs e)
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); DispenseMac = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense ", null).Tables[0];//缓存
SQLiteHelpers.Open(); //打开数据库
DispenseMac = SQLiteHelpers.ExecuteDataSet("select * from MachinesDispense ", null).Tables[0];//缓存
SQLiteHelpers.Close();
/// <summary> /// <summary>
/// 生成总览信息卡 /// 生成总览信息卡
/// </summary> /// </summary>

47
View/DyeingPlanView.xaml.cs

@ -34,9 +34,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
/// </summary> /// </summary>
public partial class DyeingPlanView : UserControl public partial class DyeingPlanView : UserControl
{ {
private SQLiteHelper SQLiteHelpers = null; //定义数据库 DataTable ProgramName = new DataTable();
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataTable ProgramName = new DataTable();
DataTable WorkOrder =new DataTable(); DataTable WorkOrder =new DataTable();
DataTable dat = new DataTable(); DataTable dat = new DataTable();
DataTable TEMPTable = new DataTable(); DataTable TEMPTable = new DataTable();
@ -45,10 +43,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
public DyeingPlanView() public DyeingPlanView()
{ {
InitializeComponent(); InitializeComponent();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 ProgramName = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from ProgramName order by ProgramID desc", null).Tables[0];//缓存
SQLiteHelpers.Open(); //打开数据库
ProgramName = SQLiteHelpers.ExecuteDataSet("select * from ProgramName order by ProgramID desc", null).Tables[0];//缓存
SQLiteHelpers.Close(); //关闭连接
comboBoxMachine.ItemsSource = MainWindowViewModel.Machines.AsEnumerable().Select(rowdata => rowdata.Field<string>("name")).ToList();//转换机台 comboBoxMachine.ItemsSource = MainWindowViewModel.Machines.AsEnumerable().Select(rowdata => rowdata.Field<string>("name")).ToList();//转换机台
comboBoxProgram.ItemsSource = ProgramName.AsEnumerable().Select(rowdata => rowdata.Field<string>("ProgramName")).ToList();//转换工艺代码 comboBoxProgram.ItemsSource = ProgramName.AsEnumerable().Select(rowdata => rowdata.Field<string>("ProgramName")).ToList();//转换工艺代码
TEXTUSER.Text = MainWindow.user_; TEXTUSER.Text = MainWindow.user_;
@ -66,10 +61,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (sArray.Length <= 1) if (sArray.Length <= 1)
{ {
comboBoxDyelot.IsEnabled = true; comboBoxDyelot.IsEnabled = true;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 DataTable DatDyelot = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Machine='" + comboBoxMachine.Text + "' and State='101' order by Dyelot desc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Open(); //打开数据库
DataTable DatDyelot = SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Machine='" + comboBoxMachine.Text + "' and State='101' order by Dyelot desc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Close(); //关闭连接
comboBoxDyelot.ItemsSource = DatDyelot.AsEnumerable().Select(rowdata => rowdata.Field<string>("Dyelot")).ToList();//转换代码 comboBoxDyelot.ItemsSource = DatDyelot.AsEnumerable().Select(rowdata => rowdata.Field<string>("Dyelot")).ToList();//转换代码
} }
} }
@ -119,11 +111,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string State_ = "100"; string State_ = "100";
string Dyelot_ = comboBoxDyelot.Text; string Dyelot_ = comboBoxDyelot.Text;
string color_ = color.Background.ToString(); string color_ = color.Background.ToString();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
try try
{ {
sTime = SQLiteHelpers.ExecuteDataSet( sTime = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where Machines='" + comboBoxMachine.Text + "' order by EndTime desc", null). "select * from WorkOrder where Machines='" + comboBoxMachine.Text + "' order by EndTime desc", null).
Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存 Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存
if (DateTime.Now < DateTime.Parse(sTime)) if (DateTime.Now < DateTime.Parse(sTime))
@ -171,7 +161,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_new.Add("Total", TEXTTotal.Text); WorkOrder_new.Add("Total", TEXTTotal.Text);
WorkOrder_new.Add("USER", TEXTUSER.Text); WorkOrder_new.Add("USER", TEXTUSER.Text);
WorkOrder_new.Add("ColorName", TEXTColorName.Text); WorkOrder_new.Add("ColorName", TEXTColorName.Text);
SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入
//插入信息 //插入信息
Dictionary<string, object> WorkOrder_set = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> WorkOrder_set = new Dictionary<string, object>();//缓存函数
@ -181,7 +171,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_set.Add("Swing", Swing.Text); WorkOrder_set.Add("Swing", Swing.Text);
WorkOrder_set.Add("ClothWheel", ClothWheel.Text); WorkOrder_set.Add("ClothWheel", ClothWheel.Text);
WorkOrder_set.Add("Nozzle", Nozzle.Text); WorkOrder_set.Add("Nozzle", Nozzle.Text);
SQLiteHelpers.InsertData("WorkOrderSet", WorkOrder_set);// 执行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkOrderSet", WorkOrder_set);// 执行插入
Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数
for (int x = 0; x < dat.Rows.Count; x++) for (int x = 0; x < dat.Rows.Count; x++)
@ -204,7 +194,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]); WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]);
WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]); WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]);
WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]); WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]);
SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入
WorkOrder_DAT.Clear(); WorkOrder_DAT.Clear();
} }
if (!String.IsNullOrEmpty(comboBoxDyelot.Text))//料单信息 if (!String.IsNullOrEmpty(comboBoxDyelot.Text))//料单信息
@ -229,11 +219,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_DAT.Add("DispenseGrams", DyelotsBulkedRecipe.Rows[x]["DispenseGrams"]); WorkOrder_DAT.Add("DispenseGrams", DyelotsBulkedRecipe.Rows[x]["DispenseGrams"]);
WorkOrder_DAT.Add("Dispense", DyelotsBulkedRecipe.Rows[x]["Dispenser"]); WorkOrder_DAT.Add("Dispense", DyelotsBulkedRecipe.Rows[x]["Dispenser"]);
WorkOrder_DAT.Add("UserAccount", DyelotsBulkedRecipe.Rows[x]["UserAccount"]); WorkOrder_DAT.Add("UserAccount", DyelotsBulkedRecipe.Rows[x]["UserAccount"]);
SQLiteHelpers.InsertData("Dyelot", WorkOrder_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("Dyelot", WorkOrder_DAT);//行插入
WorkOrder_DAT.Clear(); WorkOrder_DAT.Clear();
} }
} }
SQLiteHelpers.Close(); //关闭连接
LogGing.ExchangeDATA("Dyelot=" + comboBoxWorkOrder.Text + ";Machine=" + comboBoxMachine.Text + LogGing.ExchangeDATA("Dyelot=" + comboBoxWorkOrder.Text + ";Machine=" + comboBoxMachine.Text +
";Program=" + comboBoxProgram.Text + ";User=" + TEXTUSER.Text + ";"); ";Program=" + comboBoxProgram.Text + ";User=" + TEXTUSER.Text + ";");
@ -261,11 +250,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (!string.IsNullOrEmpty(comboBoxProgram.Text)) if (!string.IsNullOrEmpty(comboBoxProgram.Text))
{ {
dat.Clear(); dat.Clear();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 dat = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
SQLiteHelpers.Open(); //打开数据库
dat = SQLiteHelpers.ExecuteDataSet(
"select * from ProgramSteps where Program='" + comboBoxProgram.SelectedValue + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存 "select * from ProgramSteps where Program='" + comboBoxProgram.SelectedValue + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Close(); //关闭连接
DatSteps(dat); DatSteps(dat);
Grid_data.ItemsSource = dat.DefaultView; Grid_data.ItemsSource = dat.DefaultView;
} }
@ -279,8 +265,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
try try
{ {
string[] sArray = Regex.Split(text, @"\+", RegexOptions.IgnoreCase); string[] sArray = Regex.Split(text, @"\+", RegexOptions.IgnoreCase);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
/* if (!string.IsNullOrEmpty(WorkOrder_n)) /* if (!string.IsNullOrEmpty(WorkOrder_n))
{ {
dat = SQLiteHelpers.ExecuteDataSet( dat = SQLiteHelpers.ExecuteDataSet(
@ -288,7 +272,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
}//插入工单不为空时载入细节信息*/ }//插入工单不为空时载入细节信息*/
for (int i = 0; i < sArray.Length; i++) for (int i = 0; i < sArray.Length; i++)
{ {
DataTable temp = SQLiteHelpers.ExecuteDataSet( DataTable temp = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from ProgramSteps where Program='" + sArray[i] + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存 "select * from ProgramSteps where Program='" + sArray[i] + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存
if (dat.Columns.Count == 0) dat = temp.Clone(); if (dat.Columns.Count == 0) dat = temp.Clone();
foreach (DataRow drT in temp.Rows) foreach (DataRow drT in temp.Rows)
@ -297,7 +281,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
} }
}//以工艺名组合工艺细节 }//以工艺名组合工艺细节
SQLiteHelpers.Close(); //关闭连接
DatSteps(dat); DatSteps(dat);
Grid_data.ItemsSource = dat.DefaultView; Grid_data.ItemsSource = dat.DefaultView;
@ -501,10 +484,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{ {
if (e.Key == Key.Enter && MainWindowViewModel.DyelotsDispenser) if (e.Key == Key.Enter && MainWindowViewModel.DyelotsDispenser)
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); int dat_c = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where WorkOrder = '" + comboBoxWorkOrder.Text + "'", null).Tables[0].Rows.Count;//缓存
SQLiteHelpers.Open(); //打开数据库
int dat_c = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where WorkOrder = '" + comboBoxWorkOrder.Text + "'", null).Tables[0].Rows.Count;//缓存
SQLiteHelpers.Close();
if (dat_c > 0)//查询料单是否可用 if (dat_c > 0)//查询料单是否可用
{ {
@ -578,10 +558,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string DYELOTS_sql = "SELECT * FROM [dbo].[DYELOTS] WHERE Dyelot = '" + comboBoxDyelot.Text + "'";//单号查询语句 string DYELOTS_sql = "SELECT * FROM [dbo].[DYELOTS] WHERE Dyelot = '" + comboBoxDyelot.Text + "'";//单号查询语句
try try
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); int dat_c = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Dyelot = '" + comboBoxDyelot.Text + "'", null).Tables[0].Rows.Count;//缓存
SQLiteHelpers.Open(); //打开数据库
int dat_c = SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Dyelot = '" + comboBoxDyelot.Text + "'", null).Tables[0].Rows.Count;//缓存
SQLiteHelpers.Close();
if (dat_c > 0)//查询料单是否可用 if (dat_c > 0)//查询料单是否可用
{ {

10
View/DyelotView.xaml.cs

@ -26,10 +26,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
/// Whole.xaml 的交互逻辑 /// Whole.xaml 的交互逻辑
/// </summary> /// </summary>
public partial class DyelotView : UserControl public partial class DyelotView : UserControl
{ {
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
public DyelotView() public DyelotView()
{ {
InitializeComponent(); InitializeComponent();
@ -41,10 +38,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
public void Dyelot(object dat) public void Dyelot(object dat)
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); DataTable dat_c = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where WorkOrder = '" + dat + "'", null).Tables[0];//缓存
SQLiteHelpers.Open(); //打开数据库
DataTable dat_c = SQLiteHelpers.ExecuteDataSet("select * from Dyelot where WorkOrder = '" + dat + "'", null).Tables[0];//缓存
SQLiteHelpers.Close();
Grid_data.ItemsSource = dat_c.DefaultView; Grid_data.ItemsSource = dat_c.DefaultView;
} }

6
View/EngineerSetView.xaml.cs

@ -64,21 +64,21 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private void comboBoxCOM_SelectionChanged0(object sender, SelectionChangedEventArgs e) private void comboBoxCOM_SelectionChanged0(object sender, SelectionChangedEventArgs e)
{ {
Configini.IniWritevalue("SYS", "COMP0", comboBoxCOM0.SelectedValue.ToString()); Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM0.SelectedValue.ToString());
// Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM1.SelectedValue.ToString()); // Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM1.SelectedValue.ToString());
// Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM2.SelectedValue.ToString()); // Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM2.SelectedValue.ToString());
} }
private void comboBoxCOM_SelectionChanged1(object sender, SelectionChangedEventArgs e) private void comboBoxCOM_SelectionChanged1(object sender, SelectionChangedEventArgs e)
{ {
//Configini.IniWritevalue("SYS", "COMP0", comboBoxCOM0.SelectedValue.ToString()); //Configini.IniWritevalue("SYS", "COMP0", comboBoxCOM0.SelectedValue.ToString());
Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM1.SelectedValue.ToString()); Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM1.SelectedValue.ToString());
// Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM2.SelectedValue.ToString()); // Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM2.SelectedValue.ToString());
} }
private void comboBoxCOM_SelectionChanged2(object sender, SelectionChangedEventArgs e) private void comboBoxCOM_SelectionChanged2(object sender, SelectionChangedEventArgs e)
{ {
//Configini.IniWritevalue("SYS", "COMP0", comboBoxCOM0.SelectedValue.ToString()); //Configini.IniWritevalue("SYS", "COMP0", comboBoxCOM0.SelectedValue.ToString());
// Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM1.SelectedValue.ToString()); // Configini.IniWritevalue("SYS", "COMP1", comboBoxCOM1.SelectedValue.ToString());
Configini.IniWritevalue("SYS", "COMP2", comboBoxCOM2.SelectedValue.ToString()); Configini.IniWritevalue("SYS", "COMP3", comboBoxCOM2.SelectedValue.ToString());
} }
private void comboBoxLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e) private void comboBoxLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ {

43
View/MachinesSet.xaml.cs

@ -36,7 +36,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
// 获取所有可用串口端口,并添加到comboBoxCOM // 获取所有可用串口端口,并添加到comboBoxCOM
// string[] ports = System.IO.Ports.SerialPort.GetPortNames(); // string[] ports = System.IO.Ports.SerialPort.GetPortNames();
string[] ports = { "PORT1", "PORT2", "PORT3" }; string[] ports = { "PORT1", "PORT2", "PORT3", "PORT4" };
comboBoxCOM0.ItemsSource = ports; comboBoxCOM0.ItemsSource = ports;
comboBoxCOM0.Text = Configini.IniReadvalue("SYS", "COM"); comboBoxCOM0.Text = Configini.IniReadvalue("SYS", "COM");
comboBoxMachine.ItemsSource = MainWindowViewModel.Machines.AsEnumerable().Select(rowdata => rowdata.Field<string>("name")).ToList();//转换机台 comboBoxMachine.ItemsSource = MainWindowViewModel.Machines.AsEnumerable().Select(rowdata => rowdata.Field<string>("name")).ToList();//转换机台
@ -44,9 +44,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
comboBoxtype.ItemsSource = type_; comboBoxtype.ItemsSource = type_;
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini");
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 string SYS_machines = null;
int ID_; int ID_;
private void UserControl_Loaded(object sender, RoutedEventArgs e) private void UserControl_Loaded(object sender, RoutedEventArgs e)
@ -75,9 +73,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (!string.IsNullOrEmpty(comboBoxMachine.Text)) if (!string.IsNullOrEmpty(comboBoxMachine.Text))
{ {
Dictionary<string, object> Machines_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Machines_DAT = new Dictionary<string, object>();//缓存函数
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 if (MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Machines where name ='" + comboBoxMachine.Text + "'", null).Tables[0].Rows.Count == 0)
SQLiteHelpers.Open(); //打开数据库
if (SQLiteHelpers.ExecuteDataSet("select * from Machines where name ='" + comboBoxMachine.Text + "'", null).Tables[0].Rows.Count == 0)
{ {
DataRow dat_= MainWindowViewModel.Machines.NewRow(); DataRow dat_= MainWindowViewModel.Machines.NewRow();
dat_.BeginEdit(); dat_.BeginEdit();
@ -93,13 +89,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dat_["AUTO"] = false; dat_["AUTO"] = false;
dat_["CALL"] = false; dat_["CALL"] = false;
dat_["LOCK"] = false; dat_["LOCK"] = false;
dat_["State"] = 800;
dat_["Temperature"] = 0;
dat_["WaterLevel"] = 0;
dat_["WORK_RUN"] = -1;
dat_["UserInfoStart"] = 900;
if (comboBoxtype.Text == "838") if (comboBoxtype.Text == "838")
{ dat_["Desktop"] = true; } { dat_["Desktop"] = true; }
else { dat_["Desktop"] = false; } else { dat_["Desktop"] = false; }
dat_.EndEdit(); dat_.EndEdit();
MainWindowViewModel.Machines.Rows.Add(dat_); MainWindowViewModel.Machines.Rows.Add(dat_);
DatSteps(MainWindowViewModel.Machines); DatSteps(MainWindowViewModel.Machines);
SQLiteHelpers.Delete("Machines", null, null);// MainWindowViewModel.SQLiteHelpers.Delete("Machines", null, null);//
for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++) for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++)
{ {
Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]); Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]);
@ -112,7 +113,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Machines_DAT.Add("Desktop", MainWindowViewModel.Machines.Rows[x]["Desktop"]); Machines_DAT.Add("Desktop", MainWindowViewModel.Machines.Rows[x]["Desktop"]);
Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]); Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]);
Machines_DAT.Add("Type", MainWindowViewModel.Machines.Rows[x]["Type"]); Machines_DAT.Add("Type", MainWindowViewModel.Machines.Rows[x]["Type"]);
SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入
Machines_DAT.Clear(); Machines_DAT.Clear();
} }
} }
@ -127,8 +128,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dr["Serial"] = comboBoxCOM0.Text; dr["Serial"] = comboBoxCOM0.Text;
dr["Type"] = comboBoxtype.Text; dr["Type"] = comboBoxtype.Text;
dr["Station"] = Station.Text; dr["Station"] = Station.Text;
dr["ID"] = 999;
dr["ERR"] = false;
dr["AUTO"] = false;
dr["CALL"] = false;
dr["LOCK"] = false;
dr["State"] = 800;
dr["Temperature"] = 0;
dr["WaterLevel"] = 0;
dr["WORK_RUN"] = -1;
dr["UserInfoStart"] = 900;
dr.EndEdit(); dr.EndEdit();
SQLiteHelpers.Delete("Machines", null, null);// MainWindowViewModel.SQLiteHelpers.Delete("Machines", null, null);//
for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++) for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++)
{ {
Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]); Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]);
@ -142,11 +153,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]); Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]);
Machines_DAT.Add("Type", MainWindowViewModel.Machines.Rows[x]["Type"]); Machines_DAT.Add("Type", MainWindowViewModel.Machines.Rows[x]["Type"]);
Machines_DAT.Add("LOCK", "FALSE"); Machines_DAT.Add("LOCK", "FALSE");
SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入
Machines_DAT.Clear(); Machines_DAT.Clear();
} }
} }
SQLiteHelpers.Close();
Griddata.ItemsSource = MainWindowViewModel.Machines.DefaultView; Griddata.ItemsSource = MainWindowViewModel.Machines.DefaultView;
comboBoxMachine.Text = null; comboBoxMachine.Text = null;
TextMachineGroup.Text = null; TextMachineGroup.Text = null;
@ -170,12 +180,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{ {
MainWindowViewModel.Machines.Rows.RemoveAt(ID_ - 1); MainWindowViewModel.Machines.Rows.RemoveAt(ID_ - 1);
DatSteps(MainWindowViewModel.Machines); DatSteps(MainWindowViewModel.Machines);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
Dictionary<string, object> Machines_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Machines_DAT = new Dictionary<string, object>();//缓存函数
SQLiteHelpers.Delete("Machines", null, null);// MainWindowViewModel.SQLiteHelpers.Delete("Machines", null, null);//
for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++) for (int x = 0; x < MainWindowViewModel.Machines.Rows.Count; x++)
{ {
Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]); Machines_DAT.Add("ID", MainWindowViewModel.Machines.Rows[x]["ID"]);
@ -188,10 +196,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Machines_DAT.Add("Desktop", MainWindowViewModel.Machines.Rows[x]["Desktop"]); Machines_DAT.Add("Desktop", MainWindowViewModel.Machines.Rows[x]["Desktop"]);
Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]); Machines_DAT.Add("Dispense", MainWindowViewModel.Machines.Rows[x]["Dispense"]);
Machines_DAT.Add("LOCK", "FALSE"); Machines_DAT.Add("LOCK", "FALSE");
SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("Machines", Machines_DAT);//行插入
Machines_DAT.Clear(); Machines_DAT.Clear();
} }
SQLiteHelpers.Close(); //关闭连接
Griddata.ItemsSource = MainWindowViewModel.Machines.DefaultView; Griddata.ItemsSource = MainWindowViewModel.Machines.DefaultView;
comboBoxMachine.Text = null; comboBoxMachine.Text = null;

14
View/MachinesView.xaml.cs

@ -58,10 +58,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
CountDown(); 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) private void UserControl_Loaded(object sender, RoutedEventArgs e)
{ {
@ -131,10 +127,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数
datagrid_v.Add("PLC", newValue); datagrid_v.Add("PLC", newValue);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
SQLiteHelpers.Close();//关闭数据库
} }
IO_data();//重新获得io表 IO_data();//重新获得io表
D_view = true; D_view = true;
@ -157,10 +150,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数
datagrid_v.Add("PLC", newValue); datagrid_v.Add("PLC", newValue);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
SQLiteHelpers.Close();//关闭数据库
} }
A_view = true; A_view = true;
} }

50
View/ProductionPlanningEdit.xaml.cs

@ -31,9 +31,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
/// ProductionPlanningEdit.xaml 的交互逻辑 /// ProductionPlanningEdit.xaml 的交互逻辑
/// </summary> /// </summary>
public partial class ProductionPlanningEdit : UserControl public partial class ProductionPlanningEdit : UserControl
{ {
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataTable ProgramName = new DataTable(); DataTable ProgramName = new DataTable();
DataTable WorkOrder =new DataTable(); DataTable WorkOrder =new DataTable();
DataTable dat = new DataTable(); DataTable dat = new DataTable();
@ -41,15 +39,12 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
public ProductionPlanningEdit(string workOrder, bool save) public ProductionPlanningEdit(string workOrder, bool save)
{ {
InitializeComponent(); InitializeComponent();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 ProgramName = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from ProgramName order by ProgramID desc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Open(); //打开数据库
ProgramName = SQLiteHelpers.ExecuteDataSet("select * from ProgramName order by ProgramID desc", null).Tables[0]; //读取计划表写入缓存
if (!string.IsNullOrEmpty(workOrder)) if (!string.IsNullOrEmpty(workOrder))
{ {
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from Workorder where Workorder='" + workOrder + "' order by EndTime desc", null).Tables[0]; WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Workorder where Workorder='" + workOrder + "' order by EndTime desc", null).Tables[0];
// dat = SQLiteHelpers.ExecuteDataSet("select * from WorkorderSteps order by Step asc", null).Tables[0]; // dat = SQLiteHelpers.ExecuteDataSet("select * from WorkorderSteps order by Step asc", null).Tables[0];
} }
SQLiteHelpers.Close(); //关闭连接
if (!string.IsNullOrEmpty(workOrder)) if (!string.IsNullOrEmpty(workOrder))
{ {
@ -83,10 +78,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (sArray.Length <= 1) if (sArray.Length <= 1)
{ {
comboBoxDyelot.IsEnabled = true; comboBoxDyelot.IsEnabled = true;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 DataTable DatDyelot = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Machine='" + comboBoxMachine.Text + "' and State='101' order by Dyelot desc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Open(); //打开数据库
DataTable DatDyelot = SQLiteHelpers.ExecuteDataSet("select * from Dyelot where Machine='" + comboBoxMachine.Text + "' and State='101' order by Dyelot desc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Close(); //关闭连接
comboBoxDyelot.ItemsSource = DatDyelot.AsEnumerable().Select(rowdata => rowdata.Field<string>("Dyelot")).ToList();//转换代码 comboBoxDyelot.ItemsSource = DatDyelot.AsEnumerable().Select(rowdata => rowdata.Field<string>("Dyelot")).ToList();//转换代码
} }
} }
@ -153,11 +145,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string State_ = "100"; string State_ = "100";
string Dyelot_ = comboBoxDyelot.Text; string Dyelot_ = comboBoxDyelot.Text;
string color_ = color_color.Background.ToString(); string color_ = color_color.Background.ToString();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
try try
{ {
sTime = SQLiteHelpers.ExecuteDataSet( sTime = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where Machines='" + comboBoxMachine.Text + "' order by EndTime desc", null). "select * from WorkOrder where Machines='" + comboBoxMachine.Text + "' order by EndTime desc", null).
Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存 Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存
if (DateTime.Now < DateTime.Parse(sTime)) if (DateTime.Now < DateTime.Parse(sTime))
@ -196,8 +186,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_new.Add("Dyelot", Dyelot_); WorkOrder_new.Add("Dyelot", Dyelot_);
WorkOrder_new.Add("Remark", null); WorkOrder_new.Add("Remark", null);
WorkOrder_new.Add("lock", 0); WorkOrder_new.Add("lock", 0);
WorkOrder_new.Add("color", color_); WorkOrder_new.Add("color", color_);
SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入
Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数
for (int x = 0; x < dat.Rows.Count; x++) for (int x = 0; x < dat.Rows.Count; x++)
@ -219,11 +209,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_DAT.Add("Parameter7", dat.Rows[x]["Parameter7"]); WorkOrder_DAT.Add("Parameter7", dat.Rows[x]["Parameter7"]);
WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]); WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]);
WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]); WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]);
WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]); WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]);
SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入
WorkOrder_DAT.Clear(); WorkOrder_DAT.Clear();
} }
SQLiteHelpers.Close(); //关闭连接
} }
else else
{//多机器载入 {//多机器载入
@ -260,11 +249,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string State_ = "100"; string State_ = "100";
string Dyelot_ = comboBoxDyelot.Text; string Dyelot_ = comboBoxDyelot.Text;
string color_ = color_color.Background.ToString(); string color_ = color_color.Background.ToString();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
try try
{ {
sTime = SQLiteHelpers.ExecuteDataSet( sTime = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where Machines='" + sArray[i] + "' order by EndTime desc", null). "select * from WorkOrder where Machines='" + sArray[i] + "' order by EndTime desc", null).
Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存 Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存
if (DateTime.Now < DateTime.Parse(sTime)) if (DateTime.Now < DateTime.Parse(sTime))
@ -306,7 +293,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_new.Add("color", color_); WorkOrder_new.Add("color", color_);
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 //SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
//SQLiteHelpers.Open(); //打开数据库 //SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入
Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> WorkOrder_DAT = new Dictionary<string, object>();//缓存函数
for (int x = 0; x < dat.Rows.Count; x++) for (int x = 0; x < dat.Rows.Count; x++)
@ -329,10 +316,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]); WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]);
WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]); WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]);
WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]); WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]);
SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入 MainWindowViewModel.SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入
WorkOrder_DAT.Clear(); WorkOrder_DAT.Clear();
} }
SQLiteHelpers.Close(); //关闭连接
} }
} }
this.Visibility = Visibility.Collapsed; this.Visibility = Visibility.Collapsed;
@ -359,11 +345,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (!string.IsNullOrEmpty(comboBoxProgram.Text)) if (!string.IsNullOrEmpty(comboBoxProgram.Text))
{ {
dat.Clear(); dat.Clear();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 dat = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
SQLiteHelpers.Open(); //打开数据库
dat = SQLiteHelpers.ExecuteDataSet(
"select * from ProgramSteps where Program='" + comboBoxProgram.SelectedValue + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存 "select * from ProgramSteps where Program='" + comboBoxProgram.SelectedValue + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存
SQLiteHelpers.Close(); //关闭连接
DatSteps(dat); DatSteps(dat);
Grid_data.ItemsSource = dat.DefaultView; Grid_data.ItemsSource = dat.DefaultView;
} }
@ -378,11 +361,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
try try
{ {
string[] sArray = Regex.Split(text, @"\+", RegexOptions.IgnoreCase); string[] sArray = Regex.Split(text, @"\+", RegexOptions.IgnoreCase);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
for (int i = 0; i < sArray.Length; i++) for (int i = 0; i < sArray.Length; i++)
{ {
DataTable temp = SQLiteHelpers.ExecuteDataSet( DataTable temp = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from ProgramSteps where Program='" + sArray[i] + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存 "select * from ProgramSteps where Program='" + sArray[i] + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存
if (dat.Columns.Count == 0) dat = temp.Clone(); if (dat.Columns.Count == 0) dat = temp.Clone();
foreach (DataRow drT in temp.Rows) foreach (DataRow drT in temp.Rows)
@ -392,10 +373,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
}//以工艺名组合工艺细节 }//以工艺名组合工艺细节
if (!string.IsNullOrEmpty(WorkOrder_n)) if (!string.IsNullOrEmpty(WorkOrder_n))
{ {
dat = SQLiteHelpers.ExecuteDataSet( dat = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
"select * from WorkorderSteps where WorkOrder='" + WorkOrder_n + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存 "select * from WorkorderSteps where WorkOrder='" + WorkOrder_n + "' order by Step asc", null).Tables[0]; //读取计划表写入缓存
}//插入工单不为空时载入细节信息 }//插入工单不为空时载入细节信息
SQLiteHelpers.Close(); //关闭连接
DatSteps(dat); DatSteps(dat);
Grid_data.ItemsSource = dat.DefaultView;//显示 Grid_data.ItemsSource = dat.DefaultView;//显示
} }

32
View/ProductionPlanningView.xaml.cs

@ -60,8 +60,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
} }
private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini"); private readonly UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "SCCM.ini");
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataTable WorkOrder; DataTable WorkOrder;
private DateTime minDate; private DateTime minDate;
private DateTime maxDate; private DateTime maxDate;
@ -83,13 +81,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private ObservableCollection<ContextMenuItem> ganttTaskContextMenuItems = new ObservableCollection<ContextMenuItem>(); private ObservableCollection<ContextMenuItem> ganttTaskContextMenuItems = new ObservableCollection<ContextMenuItem>();
public void GanttChartNEW() public void GanttChartNEW()
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 WorkOrder = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where StartTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") "select * from WorkOrder where StartTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss")
+ "'or EndTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'Order by StartTime", null).Tables[0]; //读取表写入缓存 + "'or EndTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'Order by StartTime", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
//生成表 //生成表
GanttChart.ClearGantt(); GanttChart.ClearGantt();
@ -162,12 +157,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private void EditClicked(GanttTask ganttTask) private void EditClicked(GanttTask ganttTask)
{ {
if (MainWindowViewModel.USER_Capacity[6]) if (MainWindowViewModel.USER_Capacity[6])
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 DataTable WorkOrder_dt = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
SQLiteHelpers.Open(); //打开数据库
DataTable WorkOrder_dt = SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where WorkOrder='" + ganttTask.WorkOrder + "'Order by StartTime", null).Tables[0]; //读取表写入缓存 "select * from WorkOrder where WorkOrder='" + ganttTask.WorkOrder + "'Order by StartTime", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
if (DateTime.Now > DateTime.Parse(WorkOrder_dt.Select().First().Field<object>("EndTime").ToString())) if (DateTime.Now > DateTime.Parse(WorkOrder_dt.Select().First().Field<object>("EndTime").ToString()))
{ {
@ -196,12 +188,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (System.Windows.Forms.MessageBox.Show(Properties.Resources.Confirm + Properties.Resources.Delete + ganttTask.Name, "Delete ", if (System.Windows.Forms.MessageBox.Show(Properties.Resources.Confirm + Properties.Resources.Delete + ganttTask.Name, "Delete ",
System.Windows.Forms.MessageBoxButtons.OKCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) System.Windows.Forms.MessageBoxButtons.OKCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{ {
///执行删除 ///执行删除
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Delete("WorkOrder", "WorkOrder='" + ganttTask.WorkOrder + "'", null);
SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.SQLiteHelpers.Delete("WorkOrderSteps", "WorkOrder='" + ganttTask.WorkOrder + "'", null);
SQLiteHelpers.Delete("WorkOrder", "WorkOrder='" + ganttTask.WorkOrder + "'", null);
SQLiteHelpers.Delete("WorkOrderSteps", "WorkOrder='" + ganttTask.WorkOrder + "'", null);
SQLiteHelpers.Close();
GanttChartNEW(); GanttChartNEW();
} }
} }
@ -247,13 +236,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
} }
private void WorkOrderNumder_Click(object sender, RoutedEventArgs e) private void WorkOrderNumder_Click(object sender, RoutedEventArgs e)
{ {
Picture.Content = null; Picture.Content = null;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 int con = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(
SQLiteHelpers.Open(); //打开数据库
int con = SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where WorkOrder='" + Select_WorkOrderNumder.Text + "select * from WorkOrder where WorkOrder='" + Select_WorkOrderNumder.Text +
"'Order by StartTime", null).Tables[0].Rows.Count; "'Order by StartTime", null).Tables[0].Rows.Count;
SQLiteHelpers.Close();
if (con > 0) if (con > 0)
{ {

70
View/ProgramgroupView.xaml.cs

@ -1,4 +1,5 @@
using SunlightCentralizedControlManagement_SCCM_.WindowsView; using SunlightCentralizedControlManagement_SCCM_.ViewModel;
using SunlightCentralizedControlManagement_SCCM_.WindowsView;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
@ -21,23 +22,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Group.Text = "ALL"; Group.Text = "ALL";
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataSet sql; //内存数据缓存 DataSet sql; //内存数据缓存
public void Programgroup_sql() public void Programgroup_sql()
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
string sql_script = "select * from ProgramName order by ProgramID desc"; string sql_script = "select * from ProgramName order by ProgramID desc";
string sql_ProgramGroup = "select * from ProgramGroup order by ID desc"; string sql_ProgramGroup = "select * from ProgramGroup order by ID desc";
if (sql != null) sql.Clear(); //清空缓存 if (sql != null) sql.Clear(); //清空缓存
sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存 sql = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存
if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表 if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表
DataTable GROUP = SQLiteHelpers.ExecuteDataSet(sql_ProgramGroup, null).Tables[0]; //获得程序组 DataTable GROUP = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(sql_ProgramGroup, null).Tables[0]; //获得程序组
List<string> result = new List<string>(); List<string> result = new List<string>();
result.Add("ALL"); result.Add("ALL");
for (int i =0; i<GROUP.Rows.Count;i++) for (int i =0; i<GROUP.Rows.Count;i++)
@ -45,8 +41,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
result.Add (GROUP.Rows[i][1].ToString()); result.Add (GROUP.Rows[i][1].ToString());
} }
Group.ItemsSource = result.ToArray(); Group.ItemsSource = result.ToArray();
SQLiteHelpers.Close(); //关闭连接
} }
public static string Programgroup_Numder { get; set; } public static string Programgroup_Numder { get; set; }
@ -86,27 +80,24 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
void InputBox_new_accept(object sender, EventArgs e)//新建按钮窗口返回 void InputBox_new_accept(object sender, EventArgs e)//新建按钮窗口返回
{ {
//事件的接收者通过一个简单的类型转换得到InputBox的引用 //事件的接收者通过一个简单的类型转换得到InputBox的引用
InputBox frm = (InputBox)sender; InputBox frm = (InputBox)sender;
//接收到InputBox的TextBox值 //接收到InputBox的TextBox值
string VALUE = frm.InputValue; string VALUE = frm.InputValue;
string ID = DateTime.Now.ToString("yyMMddHHmmss"); //id为时间合 string ID = DateTime.Now.ToString("yyMMddHHmmss"); //id为时间合
Dictionary<string, object> Program_new = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Program_new = new Dictionary<string, object>();//缓存函数
Program_new.Add("ProgramName", VALUE); Program_new.Add("ProgramName", VALUE);
Program_new.Add("ProgramID", ID); Program_new.Add("ProgramID", ID);
Program_new.Add("Groups", Group.Text); Program_new.Add("Groups", Group.Text);
Program_new.Add("Step", "0"); Program_new.Add("Step", "0");
Program_new.Add("Time", "0:00"); Program_new.Add("Time", "0:00");
Program_new.Add("Notes", null); Program_new.Add("Notes", null);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.InsertData("ProgramName", Program_new);// 执行插入
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.InsertData("ProgramName", Program_new);// 执行插入 Programgroup_Numder = VALUE;
SQLiteHelpers.Close(); //关闭连接 Programgroup_ID = ID;
Programgroup_Numder = VALUE; Programgroup_sql();
Programgroup_ID = ID;
Programgroup_sql();
} }
private void ListViewItem_edit(object sender, System.Windows.Input.MouseButtonEventArgs e)//编辑事件 private void ListViewItem_edit(object sender, System.Windows.Input.MouseButtonEventArgs e)//编辑事件
@ -140,10 +131,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Program_Rename.Add("ProgramName", VALUE); Program_Rename.Add("ProgramName", VALUE);
Program_Rename.Add("Groups", Group.Text); Program_Rename.Add("Groups", Group.Text);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("ProgramName", Program_Rename, "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("ProgramName", Program_Rename, "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Close(); //关闭连接
Programgroup_sql(); Programgroup_sql();
Programgroup_Numder = null; Programgroup_Numder = null;
@ -170,10 +158,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Dictionary<string, object> Program_Remark = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Program_Remark = new Dictionary<string, object>();//缓存函数
Program_Remark.Add("Notes", VALUE); Program_Remark.Add("Notes", VALUE);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Update("ProgramName", Program_Remark, "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("ProgramName", Program_Remark, "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Close(); //关闭连接
Programgroup_sql(); Programgroup_sql();
Programgroup_Numder = null; Programgroup_Numder = null;
@ -192,11 +177,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
System.Windows.Forms.MessageBoxButtons.OKCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) System.Windows.Forms.MessageBoxButtons.OKCancel, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{ {
///执行删除 ///执行删除
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Delete("ProgramName", "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.SQLiteHelpers.Delete("ProgramSteps", "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Delete("ProgramName", "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Delete("ProgramSteps", "ProgramID='" + Programgroup_ID + "'", null);
SQLiteHelpers.Close();
Programgroup_sql(); Programgroup_sql();
} }
Programgroup_Numder = null; Programgroup_Numder = null;

22
View/ProgramstepsView .xaml.cs

@ -1,4 +1,5 @@
using SunlightCentralizedControlManagement_SCCM_.UserClass; using SunlightCentralizedControlManagement_SCCM_.UserClass;
using SunlightCentralizedControlManagement_SCCM_.ViewModel;
using SunlightCentralizedControlManagement_SCCM_.WindowsView; using SunlightCentralizedControlManagement_SCCM_.WindowsView;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -46,9 +47,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Programgroup_sql(); Programgroup_sql();
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 DataSet sql; //内存数据缓存
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
DataSet sql; //内存数据缓存
string ProgramID; string ProgramID;
string ProgramNAME; string ProgramNAME;
@ -58,13 +57,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
string StepTime = null; string StepTime = null;
public void Programgroup_sql() public void Programgroup_sql()
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
string sql_script = "select * from ProgramSteps where ProgramID='" + ProgramID + "' order by Step asc"; string sql_script = "select * from ProgramSteps where ProgramID='" + ProgramID + "' order by Step asc";
if (sql != null) sql.Clear(); //清空缓存 if (sql != null) sql.Clear(); //清空缓存
sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存 sql = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存
//sql.Tables[0].Rows.Add(datatable_t); //sql.Tables[0].Rows.Add(datatable_t);
DataRow dr = sql.Tables[0].NewRow();//添加表数据 DataRow dr = sql.Tables[0].NewRow();//添加表数据
dr["ProgramID"] = ProgramID; dr["ProgramID"] = ProgramID;
@ -72,7 +68,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
sql.Tables[0].Rows.Add(dr); sql.Tables[0].Rows.Add(dr);
Dat(); Dat();
if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表 if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表
SQLiteHelpers.Close(); //关闭连接
} }
public void Dat()//行号刷新 public void Dat()//行号刷新
@ -256,11 +251,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Insert.IsEnabled = false; Insert.IsEnabled = false;
Delete.IsEnabled = false; Delete.IsEnabled = false;
int r = 0; int r = 0;
MainWindowViewModel.SQLiteHelpers.Delete("ProgramSteps", "ProgramID = '" + ProgramID + "'", null);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Delete("ProgramSteps", "ProgramID = '" + ProgramID + "'", null);
DataTable data_t = new DataTable(); DataTable data_t = new DataTable();
data_t = sql.Tables[0].Clone(); data_t = sql.Tables[0].Clone();
@ -274,7 +265,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
dr.ItemArray = dt.ItemArray; dr.ItemArray = dt.ItemArray;
data_t.Rows.InsertAt(dr, 0); data_t.Rows.InsertAt(dr, 0);
r = SQLiteHelpers.InsertData("ProgramSteps", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 r = MainWindowViewModel.SQLiteHelpers.InsertData("ProgramSteps", MainWindowViewModel.SQLiteHelpers.DataTableToDictionary(data_t));//行插入
} }
int time =Convert.ToUInt16( sql.Tables[0].Compute("sum(StepTime)", ""))/60; int time =Convert.ToUInt16( sql.Tables[0].Compute("sum(StepTime)", ""))/60;
@ -282,9 +273,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Dictionary<string, object> Program_Step = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> Program_Step = new Dictionary<string, object>();//缓存函数
Program_Step.Add("Step", a - 1); Program_Step.Add("Step", a - 1);
Program_Step.Add("Time", time_); Program_Step.Add("Time", time_);
SQLiteHelpers.Update("ProgramName", Program_Step, "ProgramID='" + ProgramID + "'", null); MainWindowViewModel.SQLiteHelpers.Update("ProgramName", Program_Step, "ProgramID='" + ProgramID + "'", null);
SQLiteHelpers.Close(); //关闭连接
if (r != 0) if (r != 0)
{ {
System.Windows.Forms.MessageBox.Show(ProgramNAME, Properties.Resources.Save); System.Windows.Forms.MessageBox.Show(ProgramNAME, Properties.Resources.Save);

719
ViewModel/MainWindowViewModel.cs

@ -4,6 +4,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using OpenTK.Graphics.ES11; using OpenTK.Graphics.ES11;
using ScottPlot.Palettes; using ScottPlot.Palettes;
using ScottPlot.TickGenerators.TimeUnits;
using SunlightCentralizedControlManagement_SCCM_.EX.Exchange; using SunlightCentralizedControlManagement_SCCM_.EX.Exchange;
using SunlightCentralizedControlManagement_SCCM_.Properties; using SunlightCentralizedControlManagement_SCCM_.Properties;
using SunlightCentralizedControlManagement_SCCM_.UserClass; using SunlightCentralizedControlManagement_SCCM_.UserClass;
@ -26,6 +27,7 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Timers; using System.Timers;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows.Markup; using System.Windows.Markup;
using System.Windows.Media; using System.Windows.Media;
@ -38,8 +40,6 @@ using static MaterialDesignThemes.Wpf.Theme;
using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper; using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper;
using static SunlightCentralizedControlManagement_SCCM_.View.MachinesView; using static SunlightCentralizedControlManagement_SCCM_.View.MachinesView;
using static SunlightCentralizedControlManagement_SCCM_.ViewModel.ManualDyelotModel; using static SunlightCentralizedControlManagement_SCCM_.ViewModel.ManualDyelotModel;
using static System.Net.WebRequestMethods;
using static System.Windows.Forms.AxHost;
namespace SunlightCentralizedControlManagement_SCCM_.ViewModel namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{ {
@ -78,7 +78,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
public static string SN_KEY; public static string SN_KEY;
public static bool DyelotsDispenser; public static bool DyelotsDispenser;
public static SqlConnection conn_SC =new SqlConnection();//数据库 public static SqlConnection conn_SC =new SqlConnection();//数据库
private SQLiteHelper SQLiteHelpers = null; //定义数据库 public static SQLiteHelper SQLiteHelpers = null; //定义数据库
private BDC_SQL.BDCSqlHelper bDCSqlHelper = new BDC_SQL.BDCSqlHelper(); private BDC_SQL.BDCSqlHelper bDCSqlHelper = new BDC_SQL.BDCSqlHelper();
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
public static DataTable Machines = new DataTable(); //设备表缓存 public static DataTable Machines = new DataTable(); //设备表缓存
@ -86,7 +86,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
public static DataTable USER_data = new DataTable(); public static DataTable USER_data = new DataTable();
public static DataTable Dyelot_CALL = new DataTable(); public static DataTable Dyelot_CALL = new DataTable();
public static DataTable Whole_dat = new DataTable(); public static DataTable Whole_dat = new DataTable();
public static UserControls.info[] inf = new UserControls.info[999]; //定义总览信息卡 public static UserControls.info[] inf = new UserControls.info[200]; //定义总览信息卡
public static int ERR_c = 0;//错误计数器 public static int ERR_c = 0;//错误计数器
public bool UPort1, UPort2, UPort3; public bool UPort1, UPort2, UPort3;
public static bool[] USER_Capacity { set; get; } = new bool[99]; public static bool[] USER_Capacity { set; get; } = new bool[99];
@ -111,19 +111,17 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
Machines = SQLiteHelpers.ExecuteDataSet("select * from Machines Order by id", null).Tables[0]; //读取表写入缓存 Machines = SQLiteHelpers.ExecuteDataSet("select * from Machines Order by id", null).Tables[0]; //读取表写入缓存
USER_data = SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0]; USER_data = SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0];
Dyelot_CALL = SQLiteHelpers.ExecuteDataSet("select * from Dyelot", null).Tables[0].Clone(); Dyelot_CALL = SQLiteHelpers.ExecuteDataSet("select * from Dyelot", null).Tables[0].Clone();
SQLiteHelpers.Close();
Whole_dat.Columns.Add("Machine", Type.GetType("System.String")); Whole_dat.Columns.Add("Machine", Type.GetType("System.String"));
Whole_dat.Columns.Add("DateTime", Type.GetType("System.DateTime")); Whole_dat.Columns.Add("DateTime", Type.GetType("System.DateTime"));
Whole_dat.Columns.Add("DAT", Type.GetType("System.Double")); Whole_dat.Columns.Add("DAT", Type.GetType("System.Double"));
USERCapacity(App.USER_Purview);//App.USER_Purview); USERCapacity(App.USER_Purview);//App.USER_Purview);
UPort();//启动串口
CountDown();
ClientNEW(); ClientNEW();
TcpClientNEW(); TcpClientNEW();
PortClientNEW(); PortClientNEW();
SQL_LINK(); SQL_LINK();
CountDown();
} }
public static void USERCapacity(string user) //权限 public static void USERCapacity(string user) //权限
{ {
@ -150,148 +148,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
} }
} }
public static SerialPort port1 = new SerialPort();//创建串口
public static SerialPort port2 = new SerialPort();//创建串口
public static SerialPort port3 = new SerialPort();//创建串口
void UPort()
{
try
{
int Ba = 9600;
try { Ba = Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD1")); }
catch (Exception) { Ba = 9600; }
port1.PortName = Configini.IniReadvalue("SYS", "COMP1");
port1.BaudRate = Ba;//配置
port1.DataBits = 8;
port1.Parity = Parity.Even;
port1.StopBits = StopBits.One;
port1.ReadTimeout = 500;
port1.WriteTimeout = 500;
port1.Encoding = Encoding.GetEncoding("ASCII");
port1.Open();//打开串口
port1.DataReceived += new SerialDataReceivedEventHandler(SerialPort1_DataReceived);
UPort1 = true;
}
catch (Exception e)
{
UPort1 = false;
LogGing.LogGingDATA(e.Message);
}
try
{
int Ba2 = 9600;
try { Ba2 = Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD1")); }
catch (Exception) { Ba2 = 9600; }
port2.PortName = Configini.IniReadvalue("SYS", "COMP2");
port2.BaudRate = Ba2;//配置
port2.DataBits = 8;
port2.Parity = Parity.Even;
port2.StopBits = StopBits.One;
port2.ReadTimeout = 500;
port2.WriteTimeout = 500;
port2.Encoding = Encoding.GetEncoding("ASCII");
port2.Open();//打开串口
port2.DataReceived += new SerialDataReceivedEventHandler(SerialPort2_DataReceived);
UPort2 = true;
}
catch (Exception e)
{
UPort2 = false;
LogGing.LogGingDATA(e.Message);
}
try
{
int Ba3 = 9600;
try { Ba3 = Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD1")); }
catch (Exception) { Ba3 = 9600; }
port3.PortName = Configini.IniReadvalue("SYS", "COMP3");
port3.BaudRate = Ba3;//配置
port3.DataBits = 8;
port3.Parity = Parity.Even;
port3.StopBits = StopBits.One;
port3.ReadTimeout = 500;
port3.WriteTimeout = 500;
port3.Encoding = Encoding.GetEncoding("ASCII");
port3.Open();//打开串口
port3.DataReceived += new SerialDataReceivedEventHandler(SerialPort3_DataReceived);
UPort3 = true;
}
catch (Exception e)
{
UPort3 = false;
LogGing.LogGingDATA(e.Message);
}
}//ck
// 事件处理函数
private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bytesToRead = port1.BytesToRead;
byte[] buffer = new byte[bytesToRead];
port1.Read(buffer, 0, bytesToRead); // 读取数据
// 将字节数据转换为字符串(注意编码方式)
string receivedData = Encoding.ASCII.GetString(buffer); // 根据实际情况调整编码
}// 事件处理函数
private void SerialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bytesToRead = port2.BytesToRead;
byte[] buffer = new byte[bytesToRead];
port2.Read(buffer, 0, bytesToRead); // 读取数据
// 将字节数据转换为字符串(注意编码方式)
string receivedData = Encoding.ASCII.GetString(buffer); // 根据实际情况调整编码
}// 事件处理函数
private void SerialPort3_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bytesToRead = port3.BytesToRead;
byte[] buffer = new byte[bytesToRead];
port3.Read(buffer, 0, bytesToRead); // 读取数据
// 将字节数据转换为字符串(注意编码方式)
string receivedData = Encoding.ASCII.GetString(buffer); // 根据实际情况调整编码
}
private async void Port_link()
{
await Task.Run(() =>
{
try
{
if (stringQueueSerial.Count > 0) //信息发送队列
{
QueueSerial t = stringQueueSerial.Dequeue();
if (t.ID == "PORT1")
{
if (UPort1)
{
port1.Write(t.DAT);
}
}
else if (t.ID == "PORT2")
{
if (UPort2)
{
port2.Write(t.DAT);
}
}
else if (t.ID == "PORT3")
{
if (UPort3)
{
port3.Write(t.DAT);
}
}
}
}
catch (Exception ex)
{
}
finally
{
Port_link();
}
});
}//发送
public async void SQL_LINK()//连接dbc数据库 public async void SQL_LINK()//连接dbc数据库
{ {
if (conn_SC.State == ConnectionState.Open) conn_SC.Close(); if (conn_SC.State == ConnectionState.Open) conn_SC.Close();
@ -342,7 +199,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
int Time5 = 0, Time30 = 0; int Time5 = 0, Time30 = 0;
void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS
{ {
int _id=-1; int _id = -1;
if (stringQueue.Count > 0) //信息发送队列 if (stringQueue.Count > 0) //信息发送队列
{ {
QueueString t = stringQueue.Dequeue(); QueueString t = stringQueue.Dequeue();
@ -354,13 +211,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
QueueString inf = stringQueueinf.Dequeue(); QueueString inf = stringQueueinf.Dequeue();
if (_id != inf.ID) MachiensTcpClient[inf.ID].SendAsync(inf.DAT); if (_id != inf.ID) MachiensTcpClient[inf.ID].SendAsync(inf.DAT);
} }
/*if (stringQueueSerial.Count > 0) //ck信息发送队列
{
QueueSerial t = stringQueueSerial.Dequeue();
MachiensPortClient[t.ID].Send(t.DAT);
}*/
} }
void Tick_Main_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S void Tick_Main_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
{ {
/*下传工单信息*/ /*下传工单信息*/
SQLiteHelper WorkOrderSQL = new SQLiteHelper(DBAddress); //数据库连接路径 DataTable WorkOrderstepdata = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where (State='111' or State='112') AND EndTime >'" +
WorkOrderSQL.Open(); //打开数据库
DataTable WorkOrderstepdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where (State='111' or State='112') AND EndTime >'" +
DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存
for (int k = 0; k < WorkOrderstepdata.Rows.Count; k++) for (int k = 0; k < WorkOrderstepdata.Rows.Count; k++)
{//网络 {//网络
@ -369,7 +229,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
if (Convert.ToBoolean(Selet_Machines(Machines, "Type", "Name='" + WorkOrderdata_m + "'"))) if (Convert.ToBoolean(Selet_Machines(Machines, "Type", "Name='" + WorkOrderdata_m + "'")))
{ {
//string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field<object>("Machines").ToString(); //string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field<object>("Machines").ToString();
DataTable dataTable = WorkOrderSQL.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" + DataTable dataTable = SQLiteHelpers.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" +
WorkOrderstepdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null).Tables[0]; WorkOrderstepdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null).Tables[0];
int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderdata_m + "'").ToString()); int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderdata_m + "'").ToString());
stringQueue.Enqueue(new QueueString stringQueue.Enqueue(new QueueString
@ -377,7 +237,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
ID = index, ID = index,
DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.ToJsonString() DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.ToJsonString()
}); });
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 112 } }, SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 112 } },
"WorkOrder ='" + WorkOrderstepdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); "WorkOrder ='" + WorkOrderstepdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
else else
@ -386,7 +246,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
} }
/*下传工单总览*/ /*下传工单总览*/
DataTable WorkOrderdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where (State='100' or State='110') AND EndTime >'" + DataTable WorkOrderdata = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where (State='100' or State='110') AND EndTime >'" +
DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存
for (int k = 0; k < WorkOrderdata.Rows.Count; k++) for (int k = 0; k < WorkOrderdata.Rows.Count; k++)
{ {
@ -412,8 +272,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{ {
ID = index, ID = index,
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString() DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString()
}); });
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } }, SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } },
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); "WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
} }
@ -421,7 +281,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{//串口 {//串口
//string WorkOrderdata_m = WorkOrderdata.Select()[k].Field<object>("Machines").ToString(); //string WorkOrderdata_m = WorkOrderdata.Select()[k].Field<object>("Machines").ToString();
string State = Selet_Machines(Machines, "State", "Name='" + WorkOrderdata_m + "'").ToString(); string State = Selet_Machines(Machines, "State", "Name='" + WorkOrderdata_m + "'").ToString();
string POR = Selet_Machines(Machines, "Serial", "ID='" + k + "'").ToString();
if ((State == "101") || (State == "201") || (State == "202") || (State == "309")) if ((State == "101") || (State == "201") || (State == "202") || (State == "309"))
{ {
@ -434,18 +293,46 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
dataTable.Rows.Add(dt_temp.ItemArray); dataTable.Rows.Add(dt_temp.ItemArray);
int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderdata_m + "'").ToString()); int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderdata_m + "'").ToString());
stringQueueSerial.Enqueue(new QueueSerial if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT1")
{ {
ID = POR, stringQueueSerial_1.Enqueue(new QueueSerial
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString() {
}); ID = index,
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } }, DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString()
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); });
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT2")
{
stringQueueSerial_2.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString()
});
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT3")
{
stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString()
});
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + DataTableToDictionary(dataTable).ToJsonString()
});
}
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } },
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
} }
} }
/*下传工单设置*/ /*下传工单设置*/
DataTable WorkOrderset_ = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where State='113' AND EndTime >'" + DataTable WorkOrderset_ = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where State='113' AND EndTime >'" +
DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存 DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存
for (int k = 0; k < WorkOrderset_.Rows.Count; k++) for (int k = 0; k < WorkOrderset_.Rows.Count; k++)
{ {
@ -457,7 +344,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
string WorkOrderset_w = WorkOrderset_.Select()[k].Field<object>("WorkOrder").ToString(); string WorkOrderset_w = WorkOrderset_.Select()[k].Field<object>("WorkOrder").ToString();
int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderset_m + "'").ToString()); int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderset_m + "'").ToString());
DataTable WorkOrder_set = WorkOrderSQL.ExecuteDataSet("select * from WorkOrderSet where WorkOrder='" + DataTable WorkOrder_set = SQLiteHelpers.ExecuteDataSet("select * from WorkOrderSet where WorkOrder='" +
WorkOrderset_w + "'", null).Tables[0]; //读取表写入缓存 WorkOrderset_w + "'", null).Tables[0]; //读取表写入缓存
if (WorkOrder_set.Rows.Count > 0) if (WorkOrder_set.Rows.Count > 0)
{ {
@ -468,33 +355,65 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}); });
} }
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } }, SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } },
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); "WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
else else
{//串口 {//串口
//string WorkOrderset_m = WorkOrderset_.Select()[k].Field<object>("Machines").ToString(); //string WorkOrderset_m = WorkOrderset_.Select()[k].Field<object>("Machines").ToString();
string WorkOrderset_w = WorkOrderset_.Select()[k].Field<object>("WorkOrder").ToString(); string WorkOrderset_w = WorkOrderset_.Select()[k].Field<object>("WorkOrder").ToString();
string POR = Selet_Machines(Machines, "Serial", "ID='" + k + "'").ToString();
DataTable WorkOrder_set = SQLiteHelpers.ExecuteDataSet("select * from WorkOrderSet where WorkOrder='" +
DataTable WorkOrder_set = WorkOrderSQL.ExecuteDataSet("select * from WorkOrderSet where WorkOrder='" +
WorkOrderset_w + "'", null).Tables[0]; //读取表写入缓存 WorkOrderset_w + "'", null).Tables[0]; //读取表写入缓存
if (WorkOrder_set.Rows.Count > 0) if (WorkOrder_set.Rows.Count > 0)
{ {
stringQueueSerial.Enqueue(new QueueSerial int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderset_m + "'").ToString());
if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderset_m + "'").ToString() == "PORT1")
{
stringQueueSerial_1.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC812[" +
Selet_Machines(Machines, "Station", "ID='" + k + "'") + "]" +
DataTableToDictionary(WorkOrder_set).ToJsonString()
});
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderset_m + "'").ToString() == "PORT2")
{ {
ID = POR, stringQueueSerial_2.Enqueue(new QueueSerial
DAT = "SC812[" + {
ID = index,
DAT = "SC812[" +
Selet_Machines(Machines, "Station", "ID='" + k + "'") + "]" + Selet_Machines(Machines, "Station", "ID='" + k + "'") + "]" +
DataTableToDictionary(WorkOrder_set).ToJsonString() DataTableToDictionary(WorkOrder_set).ToJsonString()
}); });
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderset_m + "'").ToString() == "PORT3")
{
stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC812[" +
Selet_Machines(Machines, "Station", "ID='" + k + "'") + "]" +
DataTableToDictionary(WorkOrder_set).ToJsonString()
});
}
else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderset_m + "'").ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = index,
DAT = "SC812[" +
Selet_Machines(Machines, "Station", "ID='" + k + "'") + "]" +
DataTableToDictionary(WorkOrder_set).ToJsonString()
});
}
} }
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } }, SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } },
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); "WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
} }
WorkOrderSQL.Close();
//系统时间 //系统时间
Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
@ -559,34 +478,98 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
} }
else else
{ {//串口发送
if (MachinesRow["State"].ToString() == "800") if (MachinesRow["State"].ToString() == "802")
{//串口发送 {
string POR = MachinesRow["Serial"].ToString(); if (MachinesRow["Serial"].ToString() == "PORT1")
{
stringQueueSerial_1.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
stringQueueSerial.Enqueue(new QueueSerial bool mode = Convert.ToBoolean(MachinesRow["LOCK"]);//发送锁定状态
if (mode)
{
Dictionary<string, object> dat_829 = new Dictionary<string, object>();
dat_829.Clear();
dat_829.Add("NAME", "LOCK");
dat_829.Add("VALUE", "True");
stringQueueSerial_1.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC829[" + MachinesRow["Station"] + "]" + dat_829.ToJsonString()
});
}
}
else if (MachinesRow["Serial"].ToString() == "PORT2")
{ {
ID = POR, stringQueueSerial_2.Enqueue(new QueueSerial
DAT = "SC830[" + MachinesRow["Station"] + "]" {
}); ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
bool mode =Convert.ToBoolean( MachinesRow["LOCK"]);//发送锁定状态 bool mode = Convert.ToBoolean(MachinesRow["LOCK"]);//发送锁定状态
if (mode) if (mode)
{
Dictionary<string, object> dat_829 = new Dictionary<string, object>();
dat_829.Clear();
dat_829.Add("NAME", "LOCK");
dat_829.Add("VALUE", "True");
stringQueueSerial_2.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC829[" + MachinesRow["Station"] + "]" + dat_829.ToJsonString()
});
}
}
else if (MachinesRow["Serial"].ToString() == "PORT3")
{ {
Dictionary<string, object> dat_829 = new Dictionary<string, object>(); stringQueueSerial_3.Enqueue(new QueueSerial
dat_829.Clear();
dat_829.Add("NAME", "LOCK");
dat_829.Add("VALUE", "True");
stringQueueSerial.Enqueue(new QueueSerial
{ {
ID = POR, ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC829[" + MachinesRow["Station"] + "]" + dat_829.ToJsonString() DAT = "SC830[" + MachinesRow["Station"] + "]"
}); });
bool mode = Convert.ToBoolean(MachinesRow["LOCK"]);//发送锁定状态
if (mode)
{
Dictionary<string, object> dat_829 = new Dictionary<string, object>();
dat_829.Clear();
dat_829.Add("NAME", "LOCK");
dat_829.Add("VALUE", "True");
stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC829[" + MachinesRow["Station"] + "]" + dat_829.ToJsonString()
});
}
} }
else if (MachinesRow["Serial"].ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
// Updata_Machines(Machines, "State", "ID='" + MachinesRow["ID"] + "'", "800"); bool mode = Convert.ToBoolean(MachinesRow["LOCK"]);//发送锁定状态
if (mode)
{
Dictionary<string, object> dat_829 = new Dictionary<string, object>();
dat_829.Clear();
dat_829.Add("NAME", "LOCK");
dat_829.Add("VALUE", "True");
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC829[" + MachinesRow["Station"] + "]" + dat_829.ToJsonString()
});
}
}
} }
int m_run =Convert.ToInt16( MachinesRow["WORK_RUN"]); int m_run =Convert.ToInt16( MachinesRow["WORK_RUN"]);
if (m_run == 0) if (m_run == 0)
{ {
@ -609,12 +592,38 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
string mac_s = MachinesRow["State"].ToString(); string mac_s = MachinesRow["State"].ToString();
if ((mac_s == "101") || (mac_s == "201") || (mac_s == "202") || (mac_s == "301") || (mac_s == "309"))//获取信息 if ((mac_s == "101") || (mac_s == "201") || (mac_s == "202") || (mac_s == "301") || (mac_s == "309"))//获取信息
{ {
string POR = MachinesRow["Serial"].ToString(); if (MachinesRow["Serial"].ToString() == "PORT1")
stringQueueSerial.Enqueue(new QueueSerial
{ {
ID = POR, stringQueueSerial_1.Enqueue(new QueueSerial
DAT = "SC830[" + MachinesRow["Station"] + "]" {
}); ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT2")
{
stringQueueSerial_2.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT3")
{
stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC830[" + MachinesRow["Station"] + "]"
});
}
} }
} }
} }
@ -678,14 +687,38 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
else else
{//串口 {//串口
string POR = MachinesRow["Serial"].ToString(); if (MachinesRow["Serial"].ToString() == "PORT1")
stringQueueSerial.Enqueue(new QueueSerial
{ {
ID = POR, stringQueueSerial_1.Enqueue(new QueueSerial
DAT = "SC827[" + MachinesRow["Station"]+"]" {
}); ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC827[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT2")
{
stringQueueSerial_2.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC827[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT3")
{
stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC827[" + MachinesRow["Station"] + "]"
});
}
else if (MachinesRow["Serial"].ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC827[" + MachinesRow["Station"] + "]"
});
}
} }
} }
} }
@ -709,13 +742,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
Dictionary<string, object> dat_ = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> dat_ = new Dictionary<string, object>();//缓存函数
dat_.Add("State", 203); dat_.Add("State", 203);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("DyelotHistory", dat_, SQLiteHelpers.Update("DyelotHistory", dat_,
"Dyelot='" + row.Field<string>("Dyelot") + "Dyelot='" + row.Field<string>("Dyelot") +
"' and Redye='" + row.Field<int>("Redye") + "' and Redye='" + row.Field<int>("Redye") +
"' and Step='" + row.Field<int>("Step") + "'", null);// 执行插入 "' and Step='" + row.Field<int>("Step") + "'", null);// 执行插入
SQLiteHelpers.Close();
} }
} }
} }
@ -893,42 +923,72 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{//301列表发送完成至染机(203=>301) {//301列表发送完成至染机(203=>301)
foreach (DataRow row in Dyelot_CALL.Select("State='301' OR State='309'")) foreach (DataRow row in Dyelot_CALL.Select("State='301' OR State='309'"))
{ {
if (Convert.ToBoolean(MachinesRow["Type"])) Dictionary<string, object> Product_ = new Dictionary<string, object>();//缓存函数
{//网络 Product_.Add("State", row.Field<int>("State"));
Dictionary<string, object> Product_ = new Dictionary<string, object>();//缓存函数 Product_.Add("Step", row.Field<int>("Step"));
Product_.Add("State", row.Field<int>("State")); Product_.Add("Dyelot", row.Field<string>("Dyelot"));
Product_.Add("Step", row.Field<int>("Step")); Product_.Add("ProductCode", row.Field<string>("ProductCode"));
Product_.Add("Dyelot", row.Field<string>("Dyelot")); Product_.Add("Amount", row.Field<object>("Amount"));
Product_.Add("ProductCode", row.Field<string>("ProductCode")); Product_.Add("DispenseEndTime", row.Field<object>("DispenseEndTime"));
Product_.Add("Amount", row.Field<object>("Amount"));
Product_.Add("DispenseEndTime", row.Field<object>("DispenseEndTime"));
if (Convert.ToBoolean(MachinesRow["Type"]))
{//网络
stringQueue.Enqueue(new QueueString stringQueue.Enqueue(new QueueString
{ {
ID = Convert.ToInt16(Selet_Machines(Machines, ID = Convert.ToInt16(Selet_Machines(Machines,
"ID", "Name='" + row.Field<string>("Machine") + "'")), "ID", "Name='" + row.Field<string>("Machine") + "'")),
DAT = "SC828" + Selet_Machines(Machines, DAT = "SC828" + Selet_Machines(Machines,
"SYSKEY", "Name='" + row.Field<string>("Machine") + "'") + Product_.ToJsonString() "SYSKEY", "Name='" + row.Field<string>("Machine") + "'") + Product_.ToJsonString()
}); });
if (row["State"].ToString() == "309") }
else
{//串口
if (MachinesRow["Serial"].ToString() == "PORT1")
{
stringQueueSerial_1.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC828[" + MachinesRow["Station"] + "]" + Product_.ToJsonString()
});
}
else if (MachinesRow["Serial"].ToString() == "PORT2")
{
stringQueueSerial_2.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC828[" + MachinesRow["Station"] + "]" + Product_.ToJsonString()
});
}
else if (MachinesRow["Serial"].ToString() == "PORT3")
{ {
MainWindow.InfData.Rows.Add(new object[] { row["Machine"], stringQueueSerial_3.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC828[" + MachinesRow["Station"] + "]" + Product_.ToJsonString()
});
}
else if (MachinesRow["Serial"].ToString() == "PORT4")
{
stringQueueSerial_4.Enqueue(new QueueSerial
{
ID = Convert.ToInt16(MachinesRow["ID"]),
DAT = "SC828[" + MachinesRow["Station"] + "]" + Product_.ToJsonString()
});
}
}
if (row["State"].ToString() == "309")
{
MainWindow.InfData.Rows.Add(new object[] { row["Machine"],
Resources.Step + row["Step"]+ Resources.DispenseException, Resources.Step + row["Step"]+ Resources.DispenseException,
Selet_Machines(Machines, "SYSKEY", "Name='" + row["Machine"] + "'"), Selet_Machines(Machines, "SYSKEY", "Name='" + row["Machine"] + "'"),
Selet_Machines(Machines, "ID", "Name='" + row["Machine"] + "'")}); Selet_Machines(Machines, "ID", "Name='" + row["Machine"] + "'")});
}
Dyelot_CALL.Rows.Remove(row);
} }
else
{//串口
} Dyelot_CALL.Rows.Remove(row);
} }
} }
catch (Exception EX) { LogGing.ERRDATA(EX); } catch (Exception EX) { LogGing.ERRDATA(EX); }
} }
} }
void Tick_Event_30S() void Tick_Event_30S()
@ -948,7 +1008,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
public static TcpClient[] MachiensTcpClient = new TcpClient[99]; public static TcpClient[] MachiensTcpClient = new TcpClient[99];
public static SerialPortClient[] MachiensPortClient = new SerialPortClient[99]; public static SerialPortClient[] MachiensPortClient = new SerialPortClient[4];
//public static DataRow[] machinesdata = new DataRow[999]; //public static DataRow[] machinesdata = new DataRow[999];
public void ClientNEW() public void ClientNEW()
{ {
@ -980,38 +1040,175 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
} }
} }
} }
public void PortClientNEW() public async void PortClientNEW()
{ {
foreach (DataRow dataRow in Machines.Rows) if (Machines.Select("Type='false' AND Serial='PORT1'").Length > 0)
{ {
if (!Convert.ToBoolean(dataRow["Type"])) MachiensPortClient[0] = new SerialPortClient();
await AsyncSerialPortClient.PortClient(MachiensPortClient[0] //建立连接
, Configini.IniReadvalue("SYS", "COMP1")
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD1")));
Port1_link();
}
if (Machines.Select("Type='false' AND Serial='PORT2'").Length > 0)
{
MachiensPortClient[1] = new SerialPortClient();
await AsyncSerialPortClient.PortClient(MachiensPortClient[1] //建立连接
, Configini.IniReadvalue("SYS", "COMP2")
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD2")));
Port2_link();
}
if (Machines.Select("Type='false' AND Serial='PORT3'").Length > 0)
{
MachiensPortClient[2] = new SerialPortClient();
await AsyncSerialPortClient.PortClient(MachiensPortClient[2] //建立连接
, Configini.IniReadvalue("SYS", "COMP3")
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD3")));
Port3_link();
}
if (Machines.Select("Type='false' AND Serial='PORT4'").Length > 0)
{
MachiensPortClient[3] = new SerialPortClient();
await AsyncSerialPortClient.PortClient(MachiensPortClient[3] //建立连接
, Configini.IniReadvalue("SYS", "COMP4")
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD4")));
Port4_link();
}
}
private void Port1_link()
{
Task.Run(() =>
{
try
{ {
string Serial_ = dataRow["Serial"].ToString(); foreach (DataRow MachinesRow in Machines.Select("Type='false' AND Serial='PORT1'"))
{
if (stringQueueSerial_1.Count > 0) //信息发送队列
{
QueueSerial t = stringQueueSerial_1.Dequeue();
if (Serial_ == "PORT1") AsyncSerialPortClient.SendCommandAndWait(MachiensPortClient[0], t.DAT);
//MachiensPortClient[t.ID].Send(t.DAT);
}
if (MachinesRow["State"].ToString() == "800")
{
AsyncSerialPortClient.SendCommandAndWait(
MachiensPortClient[0],
"SC800[" + MachinesRow["Station"] + "]");
}
}
}
catch (Exception)
{
}
finally
{
// if (stringQueueSerial.Count == 0) return;
Port1_link();//回调
}
});
}//发送
private void Port2_link()
{
Task.Run(() =>
{
try
{
foreach (DataRow MachinesRow in Machines.Select("Type='false' AND Serial='PORT2'"))
{ {
MachiensPortClient[Convert.ToInt16(dataRow["ID"])] = new SerialPortClient(); if (stringQueueSerial_2.Count > 0) //信息发送队列
_ = AsyncSerialPortClient.PortClient(MachiensPortClient[Convert.ToInt16(dataRow["ID"])] //建立连接 {
, Configini.IniReadvalue("SYS", "COMP1") QueueSerial t = stringQueueSerial_2.Dequeue();
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD1")));
AsyncSerialPortClient.SendCommandAndWait(MachiensPortClient[1], t.DAT);
//MachiensPortClient[t.ID].Send(t.DAT);
}
if (MachinesRow["State"].ToString() == "800")
{
AsyncSerialPortClient.SendCommandAndWait(
MachiensPortClient[1],
"SC800[" + MachinesRow["Station"] + "]");
}
} }
else if (Serial_ == "PORT2") }
catch (Exception)
{
}
finally
{
// if (stringQueueSerial.Count == 0) return;
Port2_link();//回调
}
});
}//发送
private void Port3_link()
{
Task.Run(() =>
{
try
{
foreach (DataRow MachinesRow in Machines.Select("Type='false' AND Serial='PORT3'"))
{ {
MachiensPortClient[Convert.ToInt16(dataRow["ID"])] = new SerialPortClient(); if (stringQueueSerial_3.Count > 0) //信息发送队列
_ = AsyncSerialPortClient.PortClient(MachiensPortClient[Convert.ToInt16(dataRow["ID"])] //建立连接 {
, Configini.IniReadvalue("SYS", "COMP2") QueueSerial t = stringQueueSerial_3.Dequeue();
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD2")));
AsyncSerialPortClient.SendCommandAndWait(MachiensPortClient[2], t.DAT);
//MachiensPortClient[t.ID].Send(t.DAT);
}
if (MachinesRow["State"].ToString() == "800")
{
DataTable Workorddr = SQLiteHelpers.ExecuteDataSet("select * from Dyelot ", null).Tables[0]; //读取表写入缓存
AsyncSerialPortClient.SendCommandAndWait(
MachiensPortClient[2],
"SC800[" + MachinesRow["Station"] + "]"+Workorddr.ToJsonString());
}
} }
else if (Serial_ == "PORT3") }
catch (Exception)
{
}
finally
{
// if (stringQueueSerial.Count == 0) return;
Port3_link();//回调
}
});
}//发送
private void Port4_link()
{
Task.Run(() =>
{
try
{
foreach (DataRow MachinesRow in Machines.Select("Type='false' AND Serial='PORT4'"))
{ {
MachiensPortClient[Convert.ToInt16(dataRow["ID"])] = new SerialPortClient(); if (stringQueueSerial_4.Count > 0) //信息发送队列
_ = AsyncSerialPortClient.PortClient(MachiensPortClient[Convert.ToInt16(dataRow["ID"])] //建立连接 {
, Configini.IniReadvalue("SYS", "COMP3") QueueSerial t = stringQueueSerial_4.Dequeue();
, Convert.ToInt32(Configini.IniReadvalue("SYS", "BAUD3")));
AsyncSerialPortClient.SendCommandAndWait(MachiensPortClient[3], t.DAT);
//MachiensPortClient[t.ID].Send(t.DAT);
}
if (MachinesRow["State"].ToString() == "800")
{
AsyncSerialPortClient.SendCommandAndWait(
MachiensPortClient[3],
"SC800[" + MachinesRow["Station"] + "]");
}
} }
} }
} catch (Exception)
} {
}
finally
{
// if (stringQueueSerial.Count == 0) return;
Port4_link();//回调
}
});
}//发送
public static string SYS_WorkNumder; //工单号 public static string SYS_WorkNumder; //工单号
public static int SYS_AT1; //附缸1-3 public static int SYS_AT1; //附缸1-3
@ -1092,7 +1289,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
public static UInt32 TX=0; public static UInt32 TX=0;
public class QueueSerial public class QueueSerial
{ {
public string ID { get; set; } public int ID { get; set; }
public string DAT { get; set; } public string DAT { get; set; }
} }
public class QueueString public class QueueString
@ -1100,15 +1297,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
public int ID { get; set; } public int ID { get; set; }
public string DAT { get; set; } public string DAT { get; set; }
} }
public static class Queue
{
public static int ID { get; set; }
public static string DAT { get; set; }
}
// 创建一个字符串类型的队列 // 创建一个字符串类型的队列
public static Queue<QueueString> stringQueue = new Queue<QueueString>(); public static Queue<QueueString> stringQueue = new Queue<QueueString>();
public static Queue<QueueString> stringQueueinf = new Queue<QueueString>(); public static Queue<QueueString> stringQueueinf = new Queue<QueueString>();
public static Queue<QueueSerial> stringQueueSerial = new Queue<QueueSerial>(); public static Queue<QueueSerial> stringQueueSerial_1 = new Queue<QueueSerial>();
public static Queue<QueueSerial> stringQueueSerial_2 = new Queue<QueueSerial>();
public static Queue<QueueSerial> stringQueueSerial_3 = new Queue<QueueSerial>();
public static Queue<QueueSerial> stringQueueSerial_4 = new Queue<QueueSerial>();
/// <summary> /// <summary>
/// 将 DataTable 转换为 Dictionary 类型数据 /// 将 DataTable 转换为 Dictionary 类型数据

13
WindowsView/MachineSelection.xaml.cs

@ -28,9 +28,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.WindowsView
//声明一个更新Address的委托 //声明一个更新Address的委托
public delegate void AddressUpdateHandler(object sender, AddressUpdateEventArgs e); public delegate void AddressUpdateHandler(object sender, AddressUpdateEventArgs e);
//声明一个更新Address的事件 //声明一个更新Address的事件
public event AddressUpdateHandler AddressUpdated; public event AddressUpdateHandler AddressUpdated;
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private string MACHINEDATA; private string MACHINEDATA;
DataTable machine_table; DataTable machine_table;
private List<string> machine; private List<string> machine;
@ -39,13 +37,10 @@ namespace SunlightCentralizedControlManagement_SCCM_.WindowsView
public MachineSelection() public MachineSelection()
{ {
InitializeComponent(); InitializeComponent();
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 comboBoxMachine.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from MachinesGroups order by Name desc", null).Tables[0].
SQLiteHelpers.Open(); //打开数据库
comboBoxMachine.ItemsSource = SQLiteHelpers.ExecuteDataSet("select * from MachinesGroups order by Name desc", null).Tables[0].
AsEnumerable().Select(rowdata => rowdata.Field<string>("Name")).ToList();//转换代码 AsEnumerable().Select(rowdata => rowdata.Field<string>("Name")).ToList();//转换代码
machine_table = SQLiteHelpers.ExecuteDataSet("select * from Machines order by Name desc", null).Tables[0]; machine_table = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from Machines order by Name desc", null).Tables[0];
SQLiteHelpers.Close(); //关闭连接
machine = machine_table.AsEnumerable().Select(rowdata => rowdata.Field<string>("Name")).ToList();//转换代码 machine = machine_table.AsEnumerable().Select(rowdata => rowdata.Field<string>("Name")).ToList();//转换代码

26
WindowsView/User.xaml.cs

@ -1,5 +1,6 @@
using nGantt.GanttChart; using nGantt.GanttChart;
using SunlightCentralizedControlManagement_SCCM_.View; using SunlightCentralizedControlManagement_SCCM_.View;
using SunlightCentralizedControlManagement_SCCM_.ViewModel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
@ -16,9 +17,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.WindowsView
/// Machine.xaml 的交互逻辑 /// Machine.xaml 的交互逻辑
/// </summary> /// </summary>
public partial class User : Window public partial class User : Window
{ {
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
private UserClass.SqliteHelper.SQLiteHelper SQLiteHelpers = null; //定义数据库
CheckBox[] checkBoxes = new CheckBox[99]; CheckBox[] checkBoxes = new CheckBox[99];
string[] strings = new string[13] {"修改系统设置", "修改用户设置", string[] strings = new string[13] {"修改系统设置", "修改用户设置",
"单机监控","单机控制","单机设置","新建排程","排程编辑","排程删除", "单机监控","单机控制","单机设置","新建排程","排程编辑","排程删除",
@ -40,10 +39,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.WindowsView
checkBoxes[i].Height = 50; checkBoxes[i].Height = 50;
Capacity.Children.Add(checkBoxes[i]); Capacity.Children.Add(checkBoxes[i]);
} }
SQLiteHelpers = new UserClass.SqliteHelper.SQLiteHelper(DBAddress); //数据库连接路径 DataGriduser.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.Open(); //打开数据库
DataGriduser.ItemsSource = SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.Close();
} }
private void Tb_KeyFloating(object sender, TextCompositionEventArgs e)//输入事件 private void Tb_KeyFloating(object sender, TextCompositionEventArgs e)//输入事件
@ -105,22 +101,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.WindowsView
USER_new.Add("Groups", Group); USER_new.Add("Groups", Group);
USER_new.Add("Capacity", Cap); USER_new.Add("Capacity", Cap);
USER_new.Add("Note", note); USER_new.Add("Note", note);
SQLiteHelpers = new UserClass.SqliteHelper.SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Delete("USER", "Name='" + name + "'", null);
SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.SQLiteHelpers.InsertData("USER", USER_new);// 执行插入
SQLiteHelpers.Delete("USER", "Name='" + name + "'", null); DataGriduser.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.InsertData("USER", USER_new);// 执行插入
DataGriduser.ItemsSource = SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.Close();
_Name.Text = null; _Name.Text = null;
} }
private void Button_Delete(object sender, RoutedEventArgs e)//删除按钮事件 private void Button_Delete(object sender, RoutedEventArgs e)//删除按钮事件
{ {
SQLiteHelpers = new UserClass.SqliteHelper.SQLiteHelper(DBAddress); //数据库连接路径 MainWindowViewModel.SQLiteHelpers.Delete("USER", "Name='" + _Name.Text + "'", null);
SQLiteHelpers.Open(); //打开数据库 DataGriduser.ItemsSource = MainWindowViewModel.SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.Delete("USER", "Name='" + _Name.Text + "'", null);
DataGriduser.ItemsSource = SQLiteHelpers.ExecuteDataSet("select * from USER order by Name desc", null).Tables[0].DefaultView;
SQLiteHelpers.Close();
_Name.Text = null; _Name.Text = null;
} }
} }

Loading…
Cancel
Save