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í
| 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.