SerialPort.Handshake Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt het handshakingprotocol opgehaald of ingesteld voor het verzenden van gegevens via seriële poort met behulp van een waarde van Handshake.
public:
property System::IO::Ports::Handshake Handshake { System::IO::Ports::Handshake get(); void set(System::IO::Ports::Handshake value); };
public System.IO.Ports.Handshake Handshake { get; set; }
[System.ComponentModel.Browsable(true)]
public System.IO.Ports.Handshake Handshake { get; set; }
member this.Handshake : System.IO.Ports.Handshake with get, set
[<System.ComponentModel.Browsable(true)>]
member this.Handshake : System.IO.Ports.Handshake with get, set
Public Property Handshake As Handshake
Waarde van eigenschap
Een van de Handshake waarden. De standaardwaarde is None.
- Kenmerken
Uitzonderingen
De poort heeft een ongeldige status.
– of –
Een poging om de status van de onderliggende poort in te stellen, is mislukt. De parameters die van dit SerialPort object zijn doorgegeven, zijn bijvoorbeeld ongeldig.
De doorgegeven waarde is geen geldige waarde in de Handshake opsomming.
Voorbeelden
Het volgende codevoorbeeld laat het gebruik van de SerialPort klasse zien, zodat twee gebruikers kunnen chatten vanaf twee afzonderlijke computers die zijn verbonden met een null-modemkabel. In dit voorbeeld worden de gebruikers gevraagd om de poortinstellingen en een gebruikersnaam voordat ze chatten. Dit codevoorbeeld maakt deel uit van een groter codevoorbeeld dat is opgegeven voor de SerialPort klasse.
public static void Main()
{
string name;
string message;
StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
Thread readThread = new Thread(Read);
// Create a new SerialPort object with default settings.
_serialPort = new SerialPort();
// Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName);
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
_serialPort.Parity = SetPortParity(_serialPort.Parity);
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);
// Set the read/write timeouts
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
_continue = true;
readThread.Start();
Console.Write("Name: ");
name = Console.ReadLine();
Console.WriteLine("Type QUIT to exit");
while (_continue)
{
message = Console.ReadLine();
if (stringComparer.Equals("quit", message))
{
_continue = false;
}
else
{
_serialPort.WriteLine(
String.Format("<{0}>: {1}", name, message));
}
}
readThread.Join();
_serialPort.Close();
}
public static void Read()
{
while (_continue)
{
try
{
string message = _serialPort.ReadLine();
Console.WriteLine(message);
}
catch (TimeoutException) { }
}
}
Public Shared Sub Main()
Dim name As String
Dim message As String
Dim stringComparer__1 As StringComparer = StringComparer.OrdinalIgnoreCase
Dim readThread As New Thread(AddressOf Read)
' Create a new SerialPort object with default settings.
_serialPort = New SerialPort()
' Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName)
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate)
_serialPort.Parity = SetPortParity(_serialPort.Parity)
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits)
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits)
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake)
' Set the read/write timeouts
_serialPort.ReadTimeout = 500
_serialPort.WriteTimeout = 500
_serialPort.Open()
_continue = True
readThread.Start()
Console.Write("Name: ")
name = Console.ReadLine()
Console.WriteLine("Type QUIT to exit")
While _continue
message = Console.ReadLine()
If stringComparer__1.Equals("quit", message) Then
_continue = False
Else
_serialPort.WriteLine([String].Format("<{0}>: {1}", name, message))
End If
End While
readThread.Join()
_serialPort.Close()
End Sub
Public Shared Sub Read()
While _continue
Try
Dim message As String = _serialPort.ReadLine()
Console.WriteLine(message)
Catch generatedExceptionName As TimeoutException
End Try
End While
End Sub
Opmerkingen
Wanneer handshaking wordt gebruikt, wordt het apparaat dat is verbonden met het SerialPort object geïnstrueerd om te stoppen met het verzenden van gegevens wanneer er ten minste (ReadBufferSize-1024) bytes in de buffer zijn. Het apparaat wordt geïnstrueerd om opnieuw gegevens te verzenden wanneer er 1024 of minder bytes in de buffer zijn. Als het apparaat gegevens verzendt in blokken die groter zijn dan 1024 bytes, kan dit ertoe leiden dat de buffer overloopt.
Als de Handshake eigenschap is ingesteld op RequestToSendXOnXOff en CtsHolding is ingesteld op false, wordt het XOff-teken niet verzonden. Als CtsHolding dit is ingesteld trueop, moeten er meer gegevens worden verzonden voordat het XOff-teken wordt verzonden.