diff --git a/Datasheet.Designer.cs b/Datasheet.Designer.cs index 88f6a46..72ad3de 100644 --- a/Datasheet.Designer.cs +++ b/Datasheet.Designer.cs @@ -41,6 +41,7 @@ // // DGV_Device // + this.DGV_Device.AllowUserToAddRows = false; dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.DGV_Device.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.DGV_Device.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) diff --git a/Datasheet.cs b/Datasheet.cs index 33799c9..f08a597 100644 --- a/Datasheet.cs +++ b/Datasheet.cs @@ -55,8 +55,8 @@ namespace Gidrolock_Modbus_Scanner DGV_Device.Columns.Add(new DataGridViewCheckBoxColumn()); DGV_Device.Columns[4].Name = "Опрос"; DGV_Device.Columns[4].FillWeight = 20; - - + DGV_Device.Columns[4].ValueType = typeof(bool); + for (int i = 0; i < entries.Count; i++) { DGV_Device.Rows.Add(i.ToString(), entries[i].name, "", entries[i].address); @@ -83,11 +83,14 @@ namespace Gidrolock_Modbus_Scanner { for (int i = 0; i < entries.Count; i++) { - // TODO: figure out how to get the checkbox value out of DataGridView cells; - // holy fuck DGV is awful - activeEntryIndex = i; - await PollForEntry(entries[i]); - + // holy fuck DGV is awful + DataGridViewCheckBoxCell chbox = DGV_Device.Rows[i].Cells[4] as DataGridViewCheckBoxCell; + if (Convert.ToBoolean(chbox.Value)) + { + Console.WriteLine("Polling for " + device.entries[i].name); + activeEntryIndex = i; + await PollForEntry(entries[i]); + } } } } @@ -101,7 +104,6 @@ namespace Gidrolock_Modbus_Scanner public async Task PollForEntry(Entry entry) { byte[] message = new byte[9]; - Console.WriteLine("Sending message: " + Modbus.ByteArrayToString(Modbus.BuildMessage(slaveID, (byte)entry.registerType, entry.address, entry.length, ref message))); var send = await Modbus.ReadRegAsync(port, slaveID, (FunctionCode)entry.registerType, entry.address, entry.length); isAwaitingResponse = true; @@ -123,11 +125,8 @@ namespace Gidrolock_Modbus_Scanner if (isAwaitingResponse) { isAwaitingResponse = false; - try { - Console.WriteLine("Data after processing in Datasheet.cs: " + Modbus.ByteArrayToString(e.Data)); - switch (entries[activeEntryIndex].dataType) { case ("bool"): diff --git a/Modbus.cs b/Modbus.cs index cd635d0..c0e4ff4 100644 --- a/Modbus.cs +++ b/Modbus.cs @@ -186,8 +186,6 @@ namespace Gidrolock_Modbus_Scanner static void PortDataReceived(object sender, EventArgs e) { - Console.WriteLine("Data receieved on Serial Port"); - try { byte[] message = new byte[port.BytesToRead]; @@ -197,15 +195,13 @@ namespace Gidrolock_Modbus_Scanner { port.Read(message, i + 3, 1); } - Console.WriteLine("Raw data from port: " + BitConverter.ToString(message)); + byte[] data = new byte[length]; for (int i = 0; i < length; i++) { data[i] = message[i + 3]; } string dataCleaned = ByteArrayToString(message); - Console.WriteLine("Received response: " + dataCleaned); - Console.WriteLine("UTF8: " + Encoding.UTF8.GetString(data)); port.DiscardInBuffer();