SerialPort.Read Метод

Определение

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

Перегрузки

Read(Byte[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число байтов и записывает их в байтовый массив, начиная с указанной позиции.Reads a number of bytes from the SerialPort input buffer and writes those bytes into a byte array at the specified offset.

Read(Char[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число символов и записывает их в символьный массив, начиная с указанной позиции.Reads a number of characters from the SerialPort input buffer and writes them into an array of characters at a given offset.

Read(Byte[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число байтов и записывает их в байтовый массив, начиная с указанной позиции.Reads a number of bytes from the SerialPort input buffer and writes those bytes into a byte array at the specified offset.

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[]

Массив байтов, в который записываются входные данные.The byte array to write the input to.

offset
Int32

Смещение в buffer, с которым следует записывать байты.The offset in buffer at which to write the bytes.

count
Int32

Максимальное число байтов, предназначенных для чтения.The maximum number of bytes to read. Считывается меньшее число байтов, если count больше числа байтов во входном буфере.Fewer bytes are read if count is greater than the number of bytes in the input buffer.

Возвраты

Количество прочитанных байтов.The number of bytes read.

Исключения

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

Указанный порт не открыт.The specified port is not open.

Значение параметра offset или count выходит за пределы указанного массива buffer.The offset or count parameters are outside a valid region of the buffer being passed. Значение параметра offset или count меньше нуля.Either offset or count is less than zero.

offset плюс count превышает длину массива buffer.offset plus count is greater than the length of the buffer.

Отсутствуют байты, доступные для чтения.No bytes were available to read.

Комментарии

Если необходимо переключаться между чтением текста и считыванием двоичных данных из потока, выберите протокол, который аккуратно определяет границу между текстовыми и двоичными данными, например чтение вручную байтов и декодирование данных.If it is necessary to switch between reading text and reading binary data from the stream, select a protocol that carefully defines the boundary between text and binary data, such as manually reading bytes and decoding the data.

BaseStream Так как SerialPort класс помещает данные в буфер, а поток, содержащийся в свойстве, не имеет значения, два могут конфликтовать с тем, сколько байтов доступно для чтения.Because the SerialPort class buffers data, and the stream contained in the BaseStream property does not, the two might conflict about how many bytes are available to read. Свойство может означать, что есть байты для чтения, но эти байты могут быть недоступны для потока, содержащегося BaseStream в свойстве, так как они SerialPort были помещены в буфер класса. BytesToReadThe BytesToRead property can indicate that there are bytes to read, but these bytes might not be accessible to the stream contained in the BaseStream property because they have been buffered to the SerialPort class.

Метод не блокирует другие операции, когда число считанных байтов равно count , но в последовательном порте остаются непрочитанные байты. ReadThe Read method does not block other operations when the number of bytes read equals count but there are still unread bytes available on the serial port.

Read(Char[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число символов и записывает их в символьный массив, начиная с указанной позиции.Reads a number of characters from the SerialPort input buffer and writes them into an array of characters at a given offset.

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[]

Массив символов, в который записываются входные данные.The character array to write the input to.

offset
Int32

Смещение в buffer, с которым следует записывать знаки.The offset in buffer at which to write the characters.

count
Int32

Максимальное число считываемых символов.The maximum number of characters to read. Считывается меньшее число знаков, если count больше числа знаков во входном буфере.Fewer characters are read if count is greater than the number of characters in the input buffer.

Возвраты

Число прочитанных знаков.The number of characters read.

Исключения

offset плюс count превышает длину буфера.offset plus count is greater than the length of the buffer.

- или --or- count равно 1 и в буфере имеется символ-суррогат.count is 1 and there is a surrogate character in the buffer.

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

Значение параметра offset или count выходит за пределы указанного массива buffer.The offset or count parameters are outside a valid region of the buffer being passed. Значение параметра offset или count меньше нуля.Either offset or count is less than zero.

Указанный порт не открыт.The specified port is not open.

Отсутствуют символы, доступные для чтения.No characters were available to read.

Комментарии

Используйте этот метод для чтения символов из последовательного порта.Use this method for reading characters from the serial port.

Если необходимо переключаться между чтением текста и считыванием двоичных данных из потока, выберите протокол, который аккуратно определяет границу между текстовыми и двоичными данными, например чтение вручную байтов и декодирование данных.If it is necessary to switch between reading text and reading binary data from the stream, select a protocol that carefully defines the boundary between text and binary data, such as manually reading bytes and decoding the data.

BaseStream Так как SerialPort класс помещает данные в буфер, а поток, содержащийся в свойстве, не имеет значения, два могут конфликтовать с количеством доступных для чтения символов.Because the SerialPort class buffers data, and the stream contained in the BaseStream property does not, the two might conflict about how many characters are available to read. Свойство может указывать на то, что для чтения есть символы, но эти символы могут быть недоступны для потока, содержащегося BaseStream в свойстве, так как они SerialPort были помещены в буфер класса. BytesToReadThe BytesToRead property can indicate that there are characters to read, but these characters might not be accessible to the stream contained in the BaseStream property because they have been buffered to the SerialPort class.

Метод не блокирует другие операции, когда число считанных байтов равно count , но в последовательном порте остаются непрочитанные байты. ReadThe Read method does not block other operations when the number of bytes read equals count but there are still unread bytes available on the serial port.

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