diff --git a/UserClass/AsyncSerialPortClient.cs b/UserClass/AsyncSerialPortClient.cs index 3cfb5c8..3f165ec 100644 --- a/UserClass/AsyncSerialPortClient.cs +++ b/UserClass/AsyncSerialPortClient.cs @@ -16,6 +16,7 @@ using System.Windows; using TouchSocket.Core; using TouchSocket.SerialPorts; using TouchSocket.Sockets; +using static OpenTK.Graphics.OpenGL.GL; using static SkiaSharp.HarfBuzz.SKShaper; using static SunlightCentralizedControlManagement_SCCM_.UserClass.SqliteHelper; using static SunlightCentralizedControlManagement_SCCM_.ViewModel.MainWindowViewModel; @@ -193,7 +194,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass { try { - DAT = DAT.Substring(DAT.IndexOf("]") + 1); DataTable dataTable = JsonConvert.DeserializeObject(DAT).Copy();//反序列化 System.Windows.Application.Current.Dispatcher.Invoke(() => { @@ -306,7 +306,34 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass { try { - + Dictionary _dat; + _dat = SerializeConvert.JsonDeserializeFromString>(DAT); + string[] DO = _dat.GetValue("DO").ToString().Split(','); + string[] DQ = _dat.GetValue("DQ").ToString().Split(','); + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("ID", Type.GetType("System.String")); + dataTable.Columns.Add("type", Type.GetType("System.String")); + dataTable.Columns.Add("DIO", Type.GetType("System.Bool")); + dataTable.Columns.Add("PLC", Type.GetType("System.String")); + for (int DOi = 0; DOi < DO.Length; DOi++) + { + DataRow newRow = dataTable.NewRow(); + newRow["ID"] = DOi+2001; + newRow["type"] = "DO"; + newRow["DIO"] = DO[DOi]; + newRow["PLC"] = DOi + 2001; + dataTable.Rows.Add(newRow); + } + for (int DQi = 0; DQi < DO.Length; DQi++) + { + DataRow newRow = dataTable.NewRow(); + newRow["ID"] = DQi + 3001; + newRow["type"] = "DQ"; + newRow["DIO"] = DQ[DQi]; + newRow["PLC"] = DQi + 3001; + dataTable.Rows.Add(newRow); + } + MainWindowViewModel.dt_d = dataTable; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } }//数字开关表 @@ -314,7 +341,34 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass { try { - + Dictionary _dat; + _dat = SerializeConvert.JsonDeserializeFromString>(DAT); + string[] AI = _dat.GetValue("DO").ToString().Split(','); + string[] AO = _dat.GetValue("DQ").ToString().Split(','); + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("ID", Type.GetType("System.String")); + dataTable.Columns.Add("type", Type.GetType("System.String")); + dataTable.Columns.Add("AIO", Type.GetType("System.Int")); + dataTable.Columns.Add("PLC", Type.GetType("System.String")); + for (int AIi = 0; AIi < AI.Length; AIi++) + { + DataRow newRow = dataTable.NewRow(); + newRow["ID"] = AIi + 4001; + newRow["type"] = "DO"; + newRow["AIO"] = AI[AIi]; + newRow["PLC"] = AIi + 4001; + dataTable.Rows.Add(newRow); + } + for (int AOi = 0; AOi < AO.Length; AOi++) + { + DataRow newRow = dataTable.NewRow(); + newRow["ID"] = AOi + 5001; + newRow["type"] = "DQ"; + newRow["AIO"] = AO[AOi]; + newRow["PLC"] = AOi + 5001; + dataTable.Rows.Add(newRow); + } + MainWindowViewModel.dt_a = dataTable; } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; } }//寄存器表 @@ -322,7 +376,23 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass { try { - + Dictionary _dat; + _dat = SerializeConvert.JsonDeserializeFromString>(DAT); + string[] M = _dat.GetValue("M").ToString().Split(','); + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("ID", Type.GetType("System.String")); + dataTable.Columns.Add("type", Type.GetType("System.String")); + dataTable.Columns.Add("Value", Type.GetType("System.Double")); + dataTable.Columns.Add("PLC", Type.GetType("System.String")); + for (int Mi = 0; Mi < M.Length; Mi++) + { + DataRow newRow = dataTable.NewRow(); + newRow["ID"] = Mi + 1001; + newRow["type"] = "M"; + newRow["Value"] = M[Mi]; + newRow["PLC"] = Mi + 1001; + dataTable.Rows.Add(newRow); + } } catch (Exception ex) { LogGing.LogGingDATA("[ERR='" + ex + "']=Exception"); MainWindowViewModel.ERR_c++; }