Share via


SerialPort.Read Metoda

Definice

Čte ze SerialPort vstupní vyrovnávací paměti.

Přetížení

Read(Byte[], Int32, Int32)

Načte SerialPort ze vstupní vyrovnávací paměti několik bajtů a zapíše tyto bajty do pole bajtů při zadaném posunu.

Read(Char[], Int32, Int32)

Přečte několik znaků ze SerialPort vstupní vyrovnávací paměti a zapíše je do pole znaků při daném posunu.

Read(Byte[], Int32, Int32)

Zdroj:
SerialPort.cs
Zdroj:
SerialPort.cs
Zdroj:
SerialPort.cs

Načte SerialPort ze vstupní vyrovnávací paměti několik bajtů a zapíše tyto bajty do pole bajtů při zadaném posunu.

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

Parametry

buffer
Byte[]

Pole bajtů, do které se má zapsat vstup.

offset
Int32

Posun, ve buffer kterém se mají zapsat bajty.

count
Int32

Maximální počet bajtů ke čtení. Méně bajtů se přečte, pokud count je větší než počet bajtů ve vstupní vyrovnávací paměti.

Návraty

Počet přečtených bajtů.

Výjimky

Předaná vyrovnávací paměť je null.

Zadaný port není otevřený.

Parametry offset nebo count jsou mimo platnou oblast předávaného parametru buffer . Buď offset je, nebo count je menší než nula.

offset plus count je větší než délka buffer.

Nebyly k dispozici žádné bajty pro čtení.

Poznámky

Pokud je nutné přepínat mezi čtením textu a čtením binárních dat ze streamu, vyberte protokol, který pečlivě definuje hranici mezi textovými a binárními daty, například ruční čtení bajtů a dekódování dat.

Vzhledem k tomu, že SerialPort třída data do vyrovnávací paměti a datový proud obsažený ve BaseStream vlastnosti ne, můžou tyto dvě třídy kolidovat o tom, kolik bajtů je k dispozici ke čtení. Vlastnost BytesToRead může znamenat, že existují bajty ke čtení, ale tyto bajty nemusí být přístupné pro datový proud obsažený ve BaseStream vlastnosti, protože byly převedeny do vyrovnávací paměti třídy SerialPort .

Metoda Read neblokuje jiné operace, pokud se počet přečtených bajtů rovná count , ale na sériovém portu jsou stále k dispozici nepřečtené bajty.

Platí pro

Read(Char[], Int32, Int32)

Zdroj:
SerialPort.cs
Zdroj:
SerialPort.cs
Zdroj:
SerialPort.cs

Přečte několik znaků ze SerialPort vstupní vyrovnávací paměti a zapíše je do pole znaků při daném posunu.

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

Parametry

buffer
Char[]

Pole znaků, do které chcete zapsat vstup.

offset
Int32

Posun, ve buffer kterém se mají zapsat znaky.

count
Int32

Maximální počet znaků, které se mají přečíst. Méně znaků se přečte, pokud count je větší než počet znaků ve vstupní vyrovnávací paměti.

Návraty

Počet přečtených znaků.

Výjimky

offset plus count je větší než délka vyrovnávací paměti.

-nebo-

count je 1 a ve vyrovnávací paměti je náhradní znak.

Předaná buffer hodnota je null.

Parametry offset nebo count jsou mimo platnou oblast předávaného parametru buffer . Buď offset je, nebo count je menší než nula.

Zadaný port není otevřený.

Nebyly k dispozici žádné znaky ke čtení.

Poznámky

Tuto metodu použijte ke čtení znaků ze sériového portu.

Pokud je nutné přepínat mezi čtením textu a čtením binárních dat ze streamu, vyberte protokol, který pečlivě definuje hranici mezi textovými a binárními daty, například ruční čtení bajtů a dekódování dat.

Vzhledem k tomu, že SerialPort třída data ve vyrovnávací paměti a datový proud obsažený ve BaseStream vlastnosti ne, můžou tyto dvě třídy kolidovat o tom, kolik znaků je k dispozici ke čtení. Vlastnost BytesToRead může znamenat, že existují znaky ke čtení, ale tyto znaky nemusí být přístupné pro datový proud obsažený ve BaseStream vlastnosti, protože byly převedeny do vyrovnávací paměti třídy SerialPort .

Metoda Read neblokuje jiné operace, pokud se počet přečtených bajtů rovná count , ale na sériovém portu jsou stále k dispozici nepřečtené bajty.

Platí pro