Использование свойства SerialPort.ReadLine - PullRequest
2 голосов
/ 31 января 2012

У меня есть маленький вопрос, чтобы спросить.

Мне нужно прочитать данные с последовательного порта. Данные поступают построчно (я имею в виду данные + ввод) Нужно ли устанавливать новую строку свойства serialPort, как показано ниже?

SerialPort sp = new SerialPort();
sp.NewLine = "\r";
sp.ReadLine();

Какое значение для свойства новой строки? Мои наилучшие пожелания ...

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Это зависит от протокола, который вы используете. Это означает, что это является предметом соглашения об отправке и получении деталей.

Если другая сторона использует .NET в Windows, скорее всего, новая строка будет иметь значение Environment.NewLine , и вы можете пропустить ее установку, поскольку это значение по умолчанию в Windows.

Как правило, последовательности новой строки по умолчанию:
для окон '\ r \ n'
для mac '\ r'
для Linux '\ n'
Кастомный контроллер - что бы там ни делал разработчик контроллера

Таким образом, если вы пишете программное обеспечение для получения чего-либо из linux, вы можете ожидать '\ n' в качестве значения NewLine и т. Д.

Если у вас есть обмен данными с каким-либо контроллером (обмен с каким-либо устройством), строка NewLine может быть ТАКОЙ, КАК ее установил разработчик программного обеспечения устройства.

Если вы разрабатываете этот протокол и сомневаетесь в том, чтобы установить NewLine или нет, я мог бы предложить вам установить, если вы предполагаете, что ваше приложение может работать в многоплатформенной среде (например, отправитель в Windows, получатель в Linux).

0 голосов
/ 31 января 2012

Вы пробовали

 sp.NewLine = Environment.NewLine;
...