Поделиться через


SerialPort.Read Метод

Определение

Выполняет чтение из входного буфера SerialPort.

Перегрузки

Read(Byte[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число байтов и записывает их в байтовый массив, начиная с указанной позиции.

Read(Char[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число символов и записывает их в символьный массив, начиная с указанной позиции.

Read(Byte[], Int32, Int32)

Исходный код:
SerialPort.cs
Исходный код:
SerialPort.cs
Исходный код:
SerialPort.cs

Считывает из входного буфера SerialPort определенное число байтов и записывает их в байтовый массив, начиная с указанной позиции.

public:
 int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public int Read (byte[] buffer, int offset, int count);
member this.Read : byte[] * int * int -> int
Public Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

Параметры

buffer
Byte[]

Массив байтов, в который записываются входные данные.

offset
Int32

Смещение в buffer, с которым следует записывать байты.

count
Int32

Максимальное число байтов, предназначенных для чтения. Считывается меньшее число байтов, если count больше числа байтов во входном буфере.

Возвращаемое значение

Число переданных байтов.

Исключения

Буфер для записи задан значением null.

Указанный порт не открыт.

Значение параметра offset или count выходит за пределы указанного массива buffer. Значение параметра offset или count меньше нуля.

offset плюс count превышает длину массива buffer.

Отсутствуют байты, доступные для чтения.

Комментарии

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

SerialPort Так как класс буферизует данные, а поток, содержащийся в BaseStream свойстве, нет, они могут конфликтовать о том, сколько байтов доступно для чтения. Свойство BytesToRead может указывать на то, что есть байты для чтения, но эти байты могут быть недоступны для потока, содержащегося в свойстве BaseStream , так как они были помещены в буфер в SerialPort класс .

Метод Read не блокирует другие операции, если число прочитанных байтов count равно, но на последовательном порту по-прежнему доступны непрочитанные байты.

Применяется к

Read(Char[], Int32, Int32)

Исходный код:
SerialPort.cs
Исходный код:
SerialPort.cs
Исходный код:
SerialPort.cs

Считывает из входного буфера SerialPort определенное число символов и записывает их в символьный массив, начиная с указанной позиции.

public:
 int Read(cli::array <char> ^ buffer, int offset, int count);
public int Read (char[] buffer, int offset, int count);
member this.Read : char[] * int * int -> int
Public Function Read (buffer As Char(), offset As Integer, count As Integer) As Integer

Параметры

buffer
Char[]

Массив символов, в который записываются входные данные.

offset
Int32

Смещение в buffer, с которым следует записывать знаки.

count
Int32

Максимальное число считываемых символов. Считывается меньшее число знаков, если count больше числа знаков во входном буфере.

Возвращаемое значение

Число считанных символов.

Исключения

offset плюс count превышает длину буфера.

-или-

count равно 1 и в буфере имеется символ-суррогат.

В качестве buffer передано null.

Значение параметра offset или count выходит за пределы указанного массива buffer. Значение параметра offset или count меньше нуля.

Указанный порт не открыт.

Отсутствуют символы, доступные для чтения.

Комментарии

Используйте этот метод для чтения символов из последовательного порта.

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

SerialPort Так как класс буферизует данные, а поток, содержащийся в BaseStream свойстве, нет, они могут конфликтовать по поводу количества символов, доступных для чтения. Свойство BytesToRead может указывать на наличие считываемых символов, но эти символы могут быть недоступны для потока, содержащегося в свойстве BaseStream , так как они были буферированы в SerialPort класс .

Метод Read не блокирует другие операции, если число прочитанных байтов count равно, но на последовательном порту по-прежнему доступны непрочитанные байты.

Применяется к