more auto-detection stuff done

This commit is contained in:
nikzori
2024-12-16 14:43:50 +03:00
parent b54d04dc34
commit a10e248cc8
4 changed files with 11 additions and 9 deletions

View File

@@ -139,7 +139,7 @@ namespace Gidrolock_Modbus_Scanner
Array.Reverse(e.Data); Array.Reverse(e.Data);
DGV_Device.Rows[activeEntryIndex].Cells[2].Value = BitConverter.ToUInt32(e.Data, 0); DGV_Device.Rows[activeEntryIndex].Cells[2].Value = BitConverter.ToUInt32(e.Data, 0);
break; break;
case ("utf8"): case ("string"):
List<byte> bytes = new List<byte>(); List<byte> bytes = new List<byte>();
for (int i = 0; i < e.Data.Length; i++) for (int i = 0; i < e.Data.Length; i++)
{ {

10
Main.cs
View File

@@ -361,27 +361,29 @@ namespace Gidrolock_Modbus_Scanner
if (ce.dataType == "string") if (ce.dataType == "string")
{ {
List<byte> bytes = new List<byte>(); List<byte> bytes = new List<byte>();
for (int i = 0; i < data.Length; i++) for (int i = 0; i < data.Length; i++)
{ {
if (data[i] != 0) // clean empty bytes from 16-bit registers if (data[i] != 0) // clean empty bytes from 16-bit registers
bytes.Add(data[i]); bytes.Add(data[i]);
} }
string value = Encoding.UTF8.GetString(bytes.ToArray()); string value = Encoding.UTF8.GetString(bytes.ToArray());
foreach (Device dev in juju[ce]) foreach (Device dev in juju[ce])
{ {
if (dev.checkEntry.expectedValue == value) if (dev.checkEntry.expectedValue == value)
{ {
Console.WriteLine("It's a match!");
device = dev; device = dev;
break; break;
} }
} }
} }
if (ce.dataType == "bool") else if (ce.dataType == "bool")
{ {
// why would you even do that lmao // why would you even do that lmao
} }
if (ce.dataType == "uint16" || ce.dataType == "uint32") else if (ce.dataType == "uint16" || ce.dataType == "uint32")
{ {
byte[] _data = data; byte[] _data = data;
Array.Reverse(_data); Array.Reverse(_data);

View File

@@ -44,7 +44,7 @@ Modbus TCP
"length": 1, "length": 1,
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: bool, uint16, uint32, utf8 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: bool, uint16, uint32, string
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: uint16 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: uint16
"dataType": "uint16", "dataType": "uint16",
@@ -62,7 +62,7 @@ Modbus TCP
"dataType": "string", "dataType": "string",
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
"expectedValue": "SWT485" "expectedValue": "STW485"
} }
} }
``` ```

View File

@@ -45,7 +45,7 @@ Config fields and possible values:
"length": 1, "length": 1,
// data type for parsing // data type for parsing
// supported data types: bool, uint16, uint32, utf8 // supported data types: bool, uint16, uint32, string
// default value: uint16 // default value: uint16
"dataType": "uint16", "dataType": "uint16",
@@ -63,7 +63,7 @@ Config fields and possible values:
"dataType": "string", "dataType": "string",
// value after parsing // value after parsing
"expectedValue": "SWT485" "expectedValue": "STW485"
} }
} }
``` ```