SerialPort.Read Metoda

Definice

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

Přetížení

Name Description
Read(Byte[], Int32, Int32)

Přečte řadu bajtů ze SerialPort vstupní vyrovnávací paměti a zapíše tyto bajty do pole bajtů v 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ů na daném posunu.

Read(Byte[], Int32, Int32)

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

Přečte řadu bajtů ze SerialPort vstupní vyrovnávací paměti a zapíše tyto bajty do pole bajtů v 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[]

Bajtové pole pro zápis vstupu.

offset
Int32

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

count
Int32

Maximální počet bajtů, které se mají přečíst. Méně bajtů se č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 jsou count mimo platnou buffer oblast předání. Buď offset nebo count je menší než nula.

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

Nebyly k dispozici žádné bajty ke č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 ukládají data do vyrovnávací paměti a datový proud obsažený ve BaseStream vlastnosti ne, mohou tyto dva konflikty o tom, kolik bajtů je možné číst. 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 do vyrovnávací paměti třídy SerialPort .

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

Platí pro

Read(Char[], Int32, Int32)

Zdroj:
SerialPort.cs
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ů na 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ů pro zápis vstupu.

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 č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 v vyrovnávací paměti je náhradní znak.

Předané buffer je null.

Parametry offset jsou count mimo platnou buffer oblast předání. Buď offset 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 ukládají data do vyrovnávací paměti a datový proud obsažený ve BaseStream vlastnosti ne, může dojít ke konfliktu dvou znaků o tom, kolik znaků je možné číst. 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 do vyrovnávací paměti třídy SerialPort .

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

Platí pro