У меня есть оборудование, которое непрерывно отправляет данные при выполнении операции. Я использую 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#
Место общения программистов C#
1719227723
Anonymous
У меня есть оборудование, которое непрерывно отправляет данные при выполнении операции. Я использую 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();
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78662071/how-to-read-data-from-serial-port-rs232-that-continuously-sends-data-without-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия