diff --git a/UserClass/AsyncTcpServer.cs b/UserClass/AsyncTcpServer.cs
index 75894a0..d89e31d 100644
--- a/UserClass/AsyncTcpServer.cs
+++ b/UserClass/AsyncTcpServer.cs
@@ -23,6 +23,41 @@ namespace DyeingComputer.UserClass
///
public class AsyncTcpServer
{
+ //设置系统时间的API函数
+ [DllImport("kernel32.dll")]
+ private static extern bool SetLocalTime(ref SYSTEMTIME time);
+ [StructLayout(LayoutKind.Sequential)]
+ private struct SYSTEMTIME
+ {
+ public short year;
+ public short month;
+ public short dayOfWeek;
+ public short day;
+ public short hour;
+ public short minute;
+ public short second;
+ public short milliseconds;
+ }
+ ///
+ /// 设置系统时间
+ ///
+ /// 需要设置的时间
+ /// 返回系统时间设置状态,true为成功,false为失败
+ private static bool SetLocalDateTime(DateTime dt)
+ {
+ SYSTEMTIME st;
+ st.year = (short)dt.Year;
+ st.month = (short)dt.Month;
+ st.dayOfWeek = (short)dt.DayOfWeek;
+ st.day = (short)dt.Day;
+ st.hour = (short)dt.Hour;
+ st.minute = (short)dt.Minute;
+ st.second = (short)dt.Second;
+ st.milliseconds = (short)dt.Millisecond;
+ bool rt = SetLocalTime(ref st);
+ return rt;
+ }
+
public static async Task Main()
{
TcpService service = new TcpService();
@@ -33,21 +68,29 @@ namespace DyeingComputer.UserClass
service.Received = (client, e) =>
{
string SYSAPI = e.ByteBlock.Span.ToString(Encoding.ASCII).Substring(0,5);
- LogGing.LogSQLDATA("800", "TcpServer", "API:"+ SYSAPI);
+ string SYSDAT = e.ByteBlock.Span.ToString(Encoding.ASCII).Substring(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")
+ else if (SYSAPI == "SC801") client.SendAsync(MainWindowViewModel.S16.ToString());
+ else if (SYSAPI == "SC802") client.SendAsync(MainWindowViewModel.S03);
+ else if (SYSAPI == "SC803") client.SendAsync(MainWindowViewModel.S05);
+ else if (SYSAPI == "SC804") client.SendAsync(MainWindowViewModel.S06);
+ else if (SYSAPI == "SC810")
{
-
+
}
- if (SYSAPI == "SC820")
- {
-
- }
- if (SYSAPI == "SC830")//当前信息
+ else if (SYSAPI == "SC820")
+ {
+ if (SYSDAT.Length == 21)
+ {
+ SYSDAT = SYSDAT.Substring(1,19);
+ DateTime dt;
+ if(DateTime.TryParse(SYSDAT,out dt))
+ SetLocalDateTime(dt);
+ }
+ client.SendAsync("[" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")+"]");
+ }//设置系统时间
+ else if (SYSAPI == "SC830")
{
Dictionary Chart_new = new Dictionary();//缓存函数
Chart_new.Add("DYELOT", MainWindowViewModel.WorkNumder);
@@ -63,11 +106,20 @@ namespace DyeingComputer.UserClass
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());//缓存信息
+ client.SendAsync("["+ MainWindowViewModel.S01 + "]"+Chart_new.ToJsonString());
+ }//当前信息
+ else if (SYSAPI == "SC851")
+ {
+ client.SendAsync("[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_d.ToJsonString());//数字开关信息
+ }//数字开关表
+ else if (SYSAPI == "SC852")
+ {
+ client.SendAsync("[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_a.ToJsonString());//寄存器信息
+ }//寄存器表
+ else if (SYSAPI == "SC853")
+ {
+ client.SendAsync("[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_m.ToJsonString());//缓存信息
+ }//缓存表
return EasyTask.CompletedTask;
};