Я пытаюсь сделать Windows из системы, написанной на C #, которая будет получать данные с другого компьютера на компьютер с приложением, которое я расширяю через последовательный порт.После получения данных система будет отправлять их в веб-приложение при каждом получении полных данных.Теперь у меня нет отметки или знака, чтобы знать, завершены ли отправленные данные, единственное, что я вижу в качестве решения, это то, что если не получено никаких данных, они будут считаться, например, в течение 3 секунд, а затем перейдут к функции отправки.данные в веб-приложение.
Вопрос. Есть ли событие или что-то, что будет знать, если данные не отправляются через последовательный порт?
Я также пытаюсь поставить некоторую задержку, когда он работает на тесте,но когда он находится на рабочем компьютере, он получает его медленно, даже если я долгое время настраиваю задержку, он не работает.
У меня есть это слово [DATA], чтобы узнать, являются ли это действительные данные или нет:
вот пример данных:
[HEADER]
Comment
View
H_Number
V_Number
[CONTROL VALUE]
Label Sn
Target ******
UCL 15.000
LCL 7.000
Mean UCL ******
Mean LCL ******
Range UCL ******
Range LCL ******
[DATA]
Sn Batch no. Date / Shift: User Name:
9.408 19-09-20A JOUIE
8.711 19-09-20A JOUIE
9.820 19-09-20A JOUIE
это когда-нибудь долго
здесь 'мой код при получении:
public void DataReceivedHandler_2(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(@Config.Delay * 1000);
SerialPort sp = (SerialPort)sender;
if (tString == string.Empty)
{
SetText("SPC_CLEAR_TEXT");
SetTextProcessed("SPC_CLEAR_TEXT");
}
tString = sp.ReadExisting().ToString();
if (tString.Contains("[DATA]"))
{
SetText(tString);
FormatRawData(txtRawData.Text);
SendToSPC();
tString = string.Empty;
}
}
я тоже попробовал этоно не работает
int bytesRead;
while (sp.BytesToRead > 0)
{
bytesRead = sp.Read(buffer, 0, buffer.Length);
tString += Encoding.ASCII.GetString(buffer, 0, bytesRead);
}