diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 5c47758..8afeeff 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -181,6 +181,7 @@ namespace DyeingComputer { MainWindowViewModel.WORK_RUN = 0;// 运行时停止键为 MainWindowViewModel.DIDETime = 0; + } } } diff --git a/UserClass/AsyncTcpServer.cs b/UserClass/AsyncTcpServer.cs index cedaace..75894a0 100644 --- a/UserClass/AsyncTcpServer.cs +++ b/UserClass/AsyncTcpServer.cs @@ -15,6 +15,7 @@ using TouchSocket.Core; using TouchSocket.Sockets; using DyeingComputer.ViewModel; using System.Runtime.InteropServices; +using ScottPlot.Colormaps; namespace DyeingComputer.UserClass {/// @@ -25,14 +26,49 @@ namespace DyeingComputer.UserClass public static async Task Main() { TcpService service = new TcpService(); + service.Connecting = (client, e) => { return EasyTask.CompletedTask; };//有客户端正在连接 + service.Connected = (client, e) => { return EasyTask.CompletedTask; };//有客户端成功连接 + service.Closing = (client, e) => { return EasyTask.CompletedTask; };//有客户端正在断开连接,只有当主动断开时才有效。 + service.Closed = (client, e) => { return EasyTask.CompletedTask; };//有客户端断开连接 service.Received = (client, e) => { - LogGing.LogSQLDATA("800", "TcpServer", "API:"+e.ByteBlock.Span.ToString(Encoding.ASCII)); - if (e.ByteBlock.Span.ToString(Encoding.ASCII) == "SC800") client.SendAsync(MainWindowViewModel.S01); - if (e.ByteBlock.Span.ToString(Encoding.ASCII) == "SC801") client.SendAsync(MainWindowViewModel.S16.ToString()); - if (e.ByteBlock.Span.ToString(Encoding.ASCII) == "SC802") client.SendAsync(MainWindowViewModel.S03); - if (e.ByteBlock.Span.ToString(Encoding.ASCII) == "SC803") client.SendAsync(MainWindowViewModel.S05); - if (e.ByteBlock.Span.ToString(Encoding.ASCII) == "SC804") client.SendAsync(MainWindowViewModel.S06); + string SYSAPI = e.ByteBlock.Span.ToString(Encoding.ASCII).Substring(0,5); + LogGing.LogSQLDATA("800", "TcpServer", "API:"+ SYSAPI); + if (SYSAPI == "SC800") client.SendAsync(MainWindowViewModel.S01); + if (SYSAPI == "SC801") client.SendAsync(MainWindowViewModel.S16.ToString()); + if (SYSAPI == "SC802") client.SendAsync(MainWindowViewModel.S03); + if (SYSAPI == "SC803") client.SendAsync(MainWindowViewModel.S05); + if (SYSAPI == "SC804") client.SendAsync(MainWindowViewModel.S06); + if (SYSAPI == "SC810") + { + + } + if (SYSAPI == "SC820") + { + + } + if (SYSAPI == "SC830")//当前信息 + { + Dictionary Chart_new = new Dictionary();//缓存函数 + Chart_new.Add("DYELOT", MainWindowViewModel.WorkNumder); + Chart_new.Add("Time", MainWindowViewModel.SYSTime); + Chart_new.Add("MST", MainWindowViewModel.TEMP_co); + Chart_new.Add("MTT", MainWindowViewModel.Selet_dtm("1010")); + Chart_new.Add("MTL", MainWindowViewModel.Selet_dtm("1015")); + Chart_new.Add("MTH", MainWindowViewModel.Selet_dtm("1009")); + Chart_new.Add("MUT", MainWindowViewModel.Selet_dtm("1011")); + Chart_new.Add("STTA", MainWindowViewModel.Selet_dtm("1012")); + Chart_new.Add("STLA", MainWindowViewModel.Selet_dtm("1017")); + Chart_new.Add("STTB", MainWindowViewModel.Selet_dtm("1013")); + Chart_new.Add("STLB", MainWindowViewModel.Selet_dtm("1018")); + Chart_new.Add("STTC", MainWindowViewModel.Selet_dtm("1014")); + Chart_new.Add("STLC", MainWindowViewModel.Selet_dtm("1019")); + client.SendAsync(Chart_new.ToJsonString()); + } + if (SYSAPI == "SC851") client.SendAsync(MainWindowViewModel.dt_d.ToJsonString());//数字开关信息 + if (SYSAPI == "SC852") client.SendAsync(MainWindowViewModel.dt_a.ToJsonString());//寄存器信息 + if (SYSAPI == "SC853") client.SendAsync(MainWindowViewModel.dt_m.ToJsonString());//缓存信息 + return EasyTask.CompletedTask; }; @@ -45,7 +81,8 @@ namespace DyeingComputer.UserClass .ConfigurePlugins(a => { //a.Add(); - })); + }) + ); await service.StartAsync();//启动 LogGing.LogGingDATA("800SREVER:START"); diff --git a/UserClass/LogGing.cs b/UserClass/LogGing.cs index 2c891ed..7702aac 100644 --- a/UserClass/LogGing.cs +++ b/UserClass/LogGing.cs @@ -48,7 +48,8 @@ namespace DyeingComputer.UserClass } } public static void LogSQLDATA(string NAME, string api, string dat) - {if (!sqld) + { + if (!sqld) { sqld = true; SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 6809610..ae32255 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -72,7 +72,7 @@ namespace DyeingComputer.ViewModel SQL_data(); //读数据库 UPort(); //启动串口 CountDown(); //启动循环任务 - AsyncTcpServer.Main(); + AsyncTcpServer.Main(); } DataTable dt_con = new DataTable(); DataTable dt_sys = new DataTable(); @@ -212,6 +212,7 @@ namespace DyeingComputer.ViewModel public static int ViewID = 0;//页面id public static object Name_err = ""; + public static object SYSTime; public static object WorkNumder; public static object Process_step; public static Int32 DIDETime; //空闲计时器 @@ -242,7 +243,8 @@ namespace DyeingComputer.ViewModel }//时间周期初始化 void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { - Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); + SYSTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); + Sys_Time = SYSTime.ToString(); Work_Temp = Selet_dtm("1010") + " ℃"; Work_Numder = WorkNumder.ToString(); @@ -320,10 +322,10 @@ namespace DyeingComputer.ViewModel private static double STEP_P5 = 0; private static bool SETP_runtime = false; //步骤开始 private static bool STEP_finish = false; //步骤结束 - private static int STEP_TIME = 0; //步骤计时S - private static int THL_mode = 0; //温控模式 0保温 1加热 2降 - private static double TEMP_co = 0.5; //计算温度 - private static double TEMP_tar = 0.5; //目标温度 + public static int STEP_TIME = 0; //步骤计时S + public static int THL_mode = 0; //温控模式 0保温 1加热 2降 + public static double TEMP_co = 0.5; //计算温度 + public static double TEMP_tar = 0.5; //目标温度 private bool Alert_yellow = false; //警报黄灯 private bool Alert_red = false; //警报红灯 private bool Alert_bell = false; //警报铃声 @@ -651,6 +653,7 @@ namespace DyeingComputer.ViewModel } else { + if (temp_time10s == 1) temp_time10s = 2; if ((temp_time10s <= Convert.ToInt16(TO)/100)) { Updata_dtd("3009", true); } else { Updata_dtd("3009", false); }//升温 @@ -1360,6 +1363,7 @@ namespace DyeingComputer.ViewModel }//清除输出状态 if (string.IsNullOrEmpty(Name_err.ToString())) { + WorkNumder = "----------"; int TIMEH = DIDETime / 3600; int TIMEM = (DIDETime - TIMEH * 3600) / 60; int TIMES = DIDETime - TIMEH * 3600 - TIMEM * 60;