diff --git a/UserClass/AsyncSerialPortClient.cs b/UserClass/AsyncSerialPortClient.cs index 0290bc1..c803d65 100644 --- a/UserClass/AsyncSerialPortClient.cs +++ b/UserClass/AsyncSerialPortClient.cs @@ -270,8 +270,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass return EasyTask.CompletedTask; ; }; await portclient.SetupAsync(new TouchSocketConfig() - .SetMaxBufferSize(1024 * 1024 * 100) - .SetMinBufferSize(1024 * 1024 * 10) + .SetMaxBufferSize(1024 * 1024 * 10) .SetSerialPortOption(new SerialPortOption() { BaudRate = BAUD,//波特率 @@ -417,6 +416,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass { try { + var t= CRCcheck16.ToCRC16(command); _responseEvent.Reset(); serialPortClients.Send(command); // 发送指令 // 等待500毫秒或直到收到响应 diff --git a/View/DyeingPlanView.xaml.cs b/View/DyeingPlanView.xaml.cs index a920386..967bc80 100644 --- a/View/DyeingPlanView.xaml.cs +++ b/View/DyeingPlanView.xaml.cs @@ -179,24 +179,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.View Dictionary WorkOrder_DAT = new Dictionary();//缓存函数 for (int x = 0; x < dat.Rows.Count; x++) { + WorkOrder_DAT = MainWindowViewModel.SQLiteHelpers.ToDictionary(dat.Rows[x]); WorkOrder_DAT.Add("WorkOrder", WorkOrder_); WorkOrder_DAT.Add("Dyelot", Dyelot_); - WorkOrder_DAT.Add("ProgramID", dat.Rows[x]["ProgramID"]); - WorkOrder_DAT.Add("Program", dat.Rows[x]["Program"]); - WorkOrder_DAT.Add("Step", dat.Rows[x]["Step"]); - WorkOrder_DAT.Add("StepID", dat.Rows[x]["StepID"]); - WorkOrder_DAT.Add("StepName", dat.Rows[x]["StepName"]); - WorkOrder_DAT.Add("ParameterName", dat.Rows[x]["ParameterName"]); - WorkOrder_DAT.Add("Parameter1", dat.Rows[x]["Parameter1"]); - WorkOrder_DAT.Add("Parameter2", dat.Rows[x]["Parameter2"]); - WorkOrder_DAT.Add("Parameter3", dat.Rows[x]["Parameter3"]); - WorkOrder_DAT.Add("Parameter4", dat.Rows[x]["Parameter4"]); - WorkOrder_DAT.Add("Parameter5", dat.Rows[x]["Parameter5"]); - WorkOrder_DAT.Add("Parameter6", dat.Rows[x]["Parameter6"]); - WorkOrder_DAT.Add("Parameter7", dat.Rows[x]["Parameter7"]); - WorkOrder_DAT.Add("Parameter8", dat.Rows[x]["Parameter8"]); - WorkOrder_DAT.Add("Parameter9", dat.Rows[x]["Parameter9"]); - WorkOrder_DAT.Add("Parameter10", dat.Rows[x]["Parameter10"]); MainWindowViewModel.SQLiteHelpers.InsertData("WorkorderSteps", WorkOrder_DAT);//行插入 WorkOrder_DAT.Clear(); } diff --git a/View/ProductionPlanningView.xaml.cs b/View/ProductionPlanningView.xaml.cs index 668cddb..c62d087 100644 --- a/View/ProductionPlanningView.xaml.cs +++ b/View/ProductionPlanningView.xaml.cs @@ -280,7 +280,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View { DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick { - Interval = TimeSpan.FromSeconds(1)//秒 + Interval = TimeSpan.FromSeconds(5)//秒 }; timer1s.Tick += Tick_Event_1S; timer1s.Start(); @@ -288,11 +288,11 @@ namespace SunlightCentralizedControlManagement_SCCM_.View public static bool UI; void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { - if (UI) - { + // if (UI) + // { GanttChartNEW(); - UI= false; - } + // UI= false; + // } } } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 41e3ecc..a8262af 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -230,11 +230,11 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel DataTable WorkOrderstepdata = SQLiteHelpers.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]; //读取表写入缓存 for (int k = 0; k < WorkOrderstepdata.Rows.Count; k++) - {//网络 + { string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field("Machines").ToString(); //string m= WorkOrderstepdata.Rows[k].Field("Machines"); if (Convert.ToBoolean(Selet_Machines(Machines, "Type", "Name='" + WorkOrderdata_m + "'"))) - { + {//网络 //string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field("Machines").ToString(); DataTable dataTable = SQLiteHelpers.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" + WorkOrderstepdata.Select()[k].Field("WorkOrder").ToString() + "'", null).Tables[0]; @@ -249,7 +249,43 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel } else {//串口 - + DataTable dataTable = SQLiteHelpers.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" + + WorkOrderstepdata.Select()[k].Field("WorkOrder").ToString() + "' AND ReDye ='"+ + WorkOrderstepdata.Select()[k].Field("ReDye").ToString() + "' AND Mode<> '201'", null).Tables[0]; + + int index = Convert.ToInt16(Selet_Machines(Machines, "ID", "Name='" + WorkOrderdata_m + "'").ToString()); + if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT1") + { + stringQueueSerial_1.Enqueue(new QueueSerial + { + ID = index, + DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.Rows[0].ToJsonString() + }); + } + else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT2") + { + stringQueueSerial_2.Enqueue(new QueueSerial + { + ID = index, + DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.Rows[0].ToJsonString() + }); + } + else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT3") + { + stringQueueSerial_3.Enqueue(new QueueSerial + { + ID = index, + DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.Rows[0].ToJsonString() + }); + } + else if (Selet_Machines(Machines, "Serial", "Name='" + WorkOrderdata_m + "'").ToString() == "PORT4") + { + stringQueueSerial_4.Enqueue(new QueueSerial + { + ID = index, + DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", "ID='" + index + "'") + dataTable.Rows[0].ToJsonString() + }); + } } } /*下传工单总览*/ @@ -339,7 +375,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel } } /*下传工单设置*/ - DataTable WorkOrderset_ = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where State='113' AND EndTime >'" + + DataTable WorkOrderset_ = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where (State='113'or State='114') AND EndTime >'" + DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'", null).Tables[0]; //读取表写入缓存 for (int k = 0; k < WorkOrderset_.Rows.Count; k++) { @@ -362,8 +398,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel }); } - SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 110 } }, - "WorkOrder ='" + WorkOrderdata.Select()[k].Field("WorkOrder").ToString() + "'", null); + SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 114 } }, + "WorkOrder ='" + WorkOrderset_.Select()[k].Field("WorkOrder").ToString() + "'", null); } else {//串口