SerialPort.Read Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Č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.