Я пишу тестовое программное обеспечение, которое отправляет команды на устройство и получает ответ через com-порт. когда программное обеспечение получает ответ от устройства, я хотел бы проанализировать ответ и записать его в электронную таблицу svn. Во-первых, у меня возникают проблемы с анализом данных и получением только полученных цифр c. Код циклически перебирает массив команд и имеет отдельную функцию для получения данных, и теперь я хотел бы получить определенные c цифры c данные из этого. Я пытаюсь разобрать, но это не работает. Вот мой блок кода, любая помощь будет оценена. Я новичок в программировании, так что это был трудный момент для меня.
static string Test(string myComPort)
{
const int buffSize = 2048;
byte[] buf = new byte[buffSize];
Console.WriteLine(myComPort);
SerialPort mySerialPort = new SerialPort(myComPort, 115200);
string myStatus = OK_Status;
string[] Commands = new string[] { "command1", "command2", "command3", "command4" };
mySerialPort.Open();
mySerialPort.DataReceived += port_OnReceiveData;
mySerialPort.DtrEnable = true;
mySerialPort.RtsEnable = true;
Thread.Sleep(1000);
for (int c = 0; c < Commands.Length; c++)
{
string s = Commands[c];
mySerialPort.Write(s);
Thread.Sleep(1000);
if (!line.Contains("OK"))
{
Console.WriteLine("\n\n\n Test Failed: " + Test_Names[c]);
mySerialPort.Write("Command");
mySerialPort.Close();
Thread.Sleep(500);
return "Test Failed: " + Test_Names[c];
}
}
mySerialPort.Write("Command");
Console.WriteLine("\n\n shutting down");
Thread.Sleep(2000);
mySerialPort.Close();
Thread.Sleep(500);
return myStatus;
}
private static void port_OnReceiveData(object sender, SerialDataReceivedEventArgs e)
{
SerialPort spL = (SerialPort)sender;
const int buffSize = 12;
byte[] buf = new byte[buffSize];
line = spL.ReadExisting();
int num = -1;
if (int.TryParse(line, out num))
{
Console.WriteLine(num);
Console.ReadKey();
}
Console.WriteLine(line);
}