|
@ -1,4 +1,5 @@ |
|
|
using Newtonsoft.Json; |
|
|
using LiveChartsCore.Geo; |
|
|
|
|
|
using Newtonsoft.Json; |
|
|
using Newtonsoft.Json.Linq; |
|
|
using Newtonsoft.Json.Linq; |
|
|
using OpenTK.Graphics.ES11; |
|
|
using OpenTK.Graphics.ES11; |
|
|
using SunlightCentralizedControlManagement_SCCM_.Properties; |
|
|
using SunlightCentralizedControlManagement_SCCM_.Properties; |
|
@ -17,8 +18,10 @@ using System.Windows.Controls; |
|
|
using System.Windows.Forms; |
|
|
using System.Windows.Forms; |
|
|
using System.Windows.Media; |
|
|
using System.Windows.Media; |
|
|
using System.Windows.Threading; |
|
|
using System.Windows.Threading; |
|
|
|
|
|
using System.Xml.Linq; |
|
|
using TouchSocket.Core; |
|
|
using TouchSocket.Core; |
|
|
using TouchSocket.Sockets; |
|
|
using TouchSocket.Sockets; |
|
|
|
|
|
using static MaterialDesignThemes.Wpf.Theme; |
|
|
using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper; |
|
|
using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper; |
|
|
using static System.Net.WebRequestMethods; |
|
|
using static System.Net.WebRequestMethods; |
|
|
|
|
|
|
|
@ -56,7 +59,21 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
public static string SQLUSER = Configini.IniReadvalue("SQL_SERVER", "SQL4"); |
|
|
public static string SQLUSER = Configini.IniReadvalue("SQL_SERVER", "SQL4"); |
|
|
public static string SQLPASWORD = Configini.IniReadvalue("SQL_SERVER", "SQL5"); |
|
|
public static string SQLPASWORD = Configini.IniReadvalue("SQL_SERVER", "SQL5"); |
|
|
public static SqlConnection conn_SC =new SqlConnection();//数据库
|
|
|
public static SqlConnection conn_SC =new SqlConnection();//数据库
|
|
|
|
|
|
private SQLiteHelper SQLiteHelpers = null; //定义数据库
|
|
|
|
|
|
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
|
|
|
|
|
|
public static DataTable Machines = new DataTable(); //设备表缓存
|
|
|
|
|
|
public static UserControls.info[] inf = new UserControls.info[999]; //定义总览信息卡
|
|
|
|
|
|
public MainWindowViewModel() |
|
|
|
|
|
{ |
|
|
|
|
|
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
|
|
|
|
SQLiteHelpers.Open(); //打开数据库
|
|
|
|
|
|
Machines = SQLiteHelpers.ExecuteDataSet("select * from Machines Order by id", null).Tables[0]; //读取表写入缓存
|
|
|
|
|
|
SQLiteHelpers.Close(); |
|
|
|
|
|
|
|
|
|
|
|
CountDown(); |
|
|
|
|
|
TcpClientNEW(); |
|
|
|
|
|
SQL_LINK(); |
|
|
|
|
|
} |
|
|
public static async void SQL_LINK()//连接dbc数据库
|
|
|
public static async void SQL_LINK()//连接dbc数据库
|
|
|
{ |
|
|
{ |
|
|
if (conn_SC.State == ConnectionState.Open) conn_SC.Close(); |
|
|
if (conn_SC.State == ConnectionState.Open) conn_SC.Close(); |
|
@ -97,7 +114,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
|
|
|
|
|
|
DispatcherTimer dis50ms = new DispatcherTimer |
|
|
DispatcherTimer dis50ms = new DispatcherTimer |
|
|
{ |
|
|
{ |
|
|
Interval = TimeSpan.FromMilliseconds(100) //毫秒
|
|
|
Interval = TimeSpan.FromMilliseconds(50) //毫秒
|
|
|
}; |
|
|
}; |
|
|
dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法
|
|
|
dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法
|
|
|
dis50ms.Start();//计时开始
|
|
|
dis50ms.Start();//计时开始
|
|
@ -116,6 +133,36 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
} |
|
|
} |
|
|
void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
|
|
|
void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
|
|
|
{ |
|
|
{ |
|
|
|
|
|
SQLiteHelper WorkOrderSQL = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
|
|
|
|
WorkOrderSQL.Open(); //打开数据库
|
|
|
|
|
|
DataTable WorkOrderdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where State='100'", null).Tables[0]; //读取表写入缓存
|
|
|
|
|
|
for(int k=0;k<WorkOrderdata.Rows.Count;k++) |
|
|
|
|
|
{ |
|
|
|
|
|
string WorkOrderdata_m = WorkOrderdata.Select()[k].Field<object>("Machines").ToString(); |
|
|
|
|
|
string State = Machines.Select("Name='" + WorkOrderdata_m + "'"). |
|
|
|
|
|
First().Field<object>("State").ToString(); |
|
|
|
|
|
if ((State == "101") || (State == "201") || (State == "202") || (State == "309")) |
|
|
|
|
|
{ |
|
|
|
|
|
DataTable dataTable = WorkOrderdata.Clone(); |
|
|
|
|
|
// WorkOrderdata.Columns.Remove("Machines");
|
|
|
|
|
|
DataRow dt_temp = WorkOrderdata.Select()[k]; |
|
|
|
|
|
dt_temp.BeginEdit(); |
|
|
|
|
|
dt_temp["State"] = "101"; |
|
|
|
|
|
dt_temp.EndEdit(); |
|
|
|
|
|
dataTable.Rows.Add(dt_temp.ItemArray); |
|
|
|
|
|
|
|
|
|
|
|
int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field<object>("ID")); |
|
|
|
|
|
stringQueue.Enqueue(new QueueString |
|
|
|
|
|
{ |
|
|
|
|
|
ID = index, |
|
|
|
|
|
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", index) + DataTableToDictionary(dataTable).ToJsonString() |
|
|
|
|
|
}); |
|
|
|
|
|
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object>{{ "State", 110 }}, |
|
|
|
|
|
"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"); |
|
|
|
|
|
|
|
|
for (int i = 0; i < Machinesdata_Count; i++) |
|
|
for (int i = 0; i < Machinesdata_Count; i++) |
|
@ -157,7 +204,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
{ |
|
|
{ |
|
|
MachiensTcpClient[i].SendAsync("SC800:SCCM[" + MachiensTcpClient[i].IP + ";" + MachiensTcpClient[i].Port + "]"); |
|
|
MachiensTcpClient[i].SendAsync("SC800:SCCM[" + MachiensTcpClient[i].IP + ";" + MachiensTcpClient[i].Port + "]"); |
|
|
} |
|
|
} |
|
|
} |
|
|
}//发送800指令
|
|
|
} |
|
|
} |
|
|
void Tick_Event_60S() |
|
|
void Tick_Event_60S() |
|
|
{ |
|
|
{ |
|
@ -171,25 +218,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
, Selet_Machines(Machines, "IP", Convert.ToInt16(dt["ID"])).ToString() |
|
|
, Selet_Machines(Machines, "IP", Convert.ToInt16(dt["ID"])).ToString() |
|
|
, Selet_Machines(Machines, "PORT", Convert.ToInt16(dt["ID"])).ToString()); |
|
|
, Selet_Machines(Machines, "PORT", Convert.ToInt16(dt["ID"])).ToString()); |
|
|
} |
|
|
} |
|
|
} |
|
|
}//重连
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private SQLiteHelper SQLiteHelpers = null; //定义数据库
|
|
|
|
|
|
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
|
|
|
|
|
|
public static DataTable Machines = new DataTable(); //设备表缓存
|
|
|
|
|
|
public static UserControls.info[] inf = new UserControls.info[999]; //定义总览信息卡
|
|
|
|
|
|
public MainWindowViewModel() |
|
|
|
|
|
{ |
|
|
|
|
|
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
|
|
|
|
SQLiteHelpers.Open(); //打开数据库
|
|
|
|
|
|
Machines = SQLiteHelpers.ExecuteDataSet("select * from Machines Order by id", null).Tables[0]; //读取表写入缓存
|
|
|
|
|
|
SQLiteHelpers.Close(); |
|
|
|
|
|
|
|
|
|
|
|
CountDown(); |
|
|
|
|
|
TcpClientNEW(); |
|
|
|
|
|
SQL_LINK(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static TcpClient[] MachiensTcpClient = new TcpClient[999]; |
|
|
public static TcpClient[] MachiensTcpClient = new TcpClient[999]; |
|
|
public static DataRow[] machinesdata = new DataRow[999]; |
|
|
public static DataRow[] machinesdata = new DataRow[999]; |
|
|
public int Machinesdata_Count; |
|
|
public int Machinesdata_Count; |
|
@ -540,5 +571,29 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
} |
|
|
} |
|
|
// 创建一个字符串类型的队列
|
|
|
// 创建一个字符串类型的队列
|
|
|
public static Queue<QueueString> stringQueue = new Queue<QueueString>(); |
|
|
public static Queue<QueueString> stringQueue = new Queue<QueueString>(); |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 将 DataTable 转换为 Dictionary 类型数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public Dictionary<string, object> DataTableToDictionary(DataTable dataTable) |
|
|
|
|
|
{ |
|
|
|
|
|
Dictionary<string, object> result = new Dictionary<string, object>(); |
|
|
|
|
|
if (dataTable != null) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (DataRow dataRow in dataTable.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (DataColumn dataColumn in dataTable.Columns) |
|
|
|
|
|
{ |
|
|
|
|
|
result.Add(dataColumn.ColumnName, dataRow[dataColumn].ToString()); |
|
|
|
|
|
//result = Console.WriteLine(dataRow[dataColumn].ToString());
|
|
|
|
|
|
//result.Add(dataColumn.ColumnName, dataRow[dataColumn].ToString())(new RepeatDictionaryComparer());
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
result = null; |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|