Чтение всей строки через последовательный порт в C#

#c# #.net #readline

#c# #.net #строка чтения

Вопрос:

ПРИВЕТ, ребята

Я пытаюсь прочитать строку, отправляемую последовательным портом, сначала я использовал функцию readline (), но поскольку строка состоит из нескольких строк, мне приходится выполнять цикл, как мне определить, что я достиг конца строки, или есть способ, которым я могу прочитать всю строку, используя что-то другое, чем readline, что не зависит от новой строки.

Спасибо

Jp

Комментарии:

1. Используете ли вы поток? Не могли бы вы показать немного своего кода?

Ответ №1:

Не существует волшебных способов, кроме протоколов, используемых по проводам.

Если вы отправляете с другой конечной точки, вам нужно добавить что-то в конце строки, что сообщает принимающей конечной точке, что все было отправлено.

Если вы не разработали другую конечную точку, вам нужно спросить производителя / разработчика, как вы можете определить конец строки.

Довольно стандартный способ пометить начало и конец последовательных сообщений — использовать символы ASCII STX / ETX (0x2 и 0x3 в таблице ASCII)

Ответ №2:

ETA: Это не очень хорошая идея, поскольку вы не знаете, когда дойдете до конца строки.

Я не знаю об аспекте последовательного порта, но предполагая, что у вас есть поток и все данные доступны, вы можете обернуть его в StreamReader и вызвать ReadToEnd.

Комментарии:

1. И как он узнает, что все было прочитано таким образом? Это не файл.

2. Вы абсолютно правы, просматривая документы / переосмысливая ситуацию. Спасибо!

3. Да, я должен принудительно выполнить некоторую идентификацию, сообщающую мне конец строки