У меня есть оборудование, которое непрерывно отправляет данные при выполнении операции. Я использую RS232 для связи через COM-порт. Я могу читать и записывать данные, но читать данные не очень хорошо.
Чтобы лучше понять, рассмотрим следующий сценарий:
Я отправляю " H», а в ответ данные отвечают «HELLO» непрерывно, строка за строкой. Через 10 секунд он останавливается и завершает передачу данных сообщением «ПОКА». Используя цикл do.. while, я могу прочитать данные, но тогда пользовательский интерфейс не отвечает при чтении данных. У меня есть класс с именем SerialCom.cs, который устанавливает соединение, записывает и читает данные. Во время чтения данные отправляются в Form1.cs для отображения в пользовательском интерфейсе. Во время чтения я могу захватывать данные, но не отображать их в пользовательском интерфейсе, поскольку пользовательский интерфейс не отвечает. Фактически, пользовательский интерфейс отображает только сообщение «ПОКА!», когда чтение остановлено и пользовательский интерфейс начинает реагировать.
Как лучше всего читать последовательные данные? какая-нибудь простая логика или синтаксис будут полезны?
namespace ReadSerialData
{
public class serialCom
{
private SerialPort serialPort;
public delegate void sendResponseData(string data);
public event sendResponseData m_resData;
public serialCom()
{
serialPort = new SerialPort();
}
public bool OpenPort(string comPortName, int baudRate)
{
// This contains open port logic
// setting all the properties to open the port
// portname, baudrate, parity, databits
}
public bool closePort()
{
// This function closes the port
}
public void writeCommand(string cmd)
{
serialPort.Write(command);
}
public void ReadSerialData()
{
if(!SerialPort.IsOpen) {
MessageBox.Show("Serial port not open");
} else {
//Read serial data code here
do {
byte[] buffer = new byte[4096];
int bytesRead = 0;
} while();
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -without-a
Как читать данные из последовательного порта (Rs232), который постоянно отправляет данные, не затрагивая пользовательски ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу читать данные из последовательного порта в приложении Android?
Anonymous » » в форуме Android - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-