SerialClient Class

Represents a communication client based on SerialPort.

Definition

Namespace: Gemstone.Communication
Assembly: Gemstone.Communication (in Gemstone.Communication.dll) Version: 1.0.110 -- Release Build+0c64c8391bfe7dd5190df3a4b323a05770415384
public class SerialClient : ClientBase
Inheritance
Object    ClientBase    SerialClient

Example

This example shows how to use SerialClient for communicating with SerialPort:
C#
using System;
using GSF;
using GSF.Communication;

class Program
{
    static SerialClient s_client;

    static void Main(string[] args)
    {
        // Initialize the client.
        s_client = new SerialClient("Port=COM1; BaudRate=9600; Parity=None; StopBits=One; DataBits=8; DtrEnable=False; RtsEnable=False");
        s_client.Initialize();
        // Register event handlers.
        s_client.ConnectionAttempt += s_client_ConnectionAttempt;
        s_client.ConnectionEstablished += s_client_ConnectionEstablished;
        s_client.ConnectionTerminated += s_client_ConnectionTerminated;
        s_client.SendDataComplete += s_client_SendDataComplete;
        s_client.ReceiveDataComplete += s_client_ReceiveDataComplete;
        // Connect the client.
        s_client.Connect();

        // Write user input to the serial port.
        string input;
        while (string.Compare(input = Console.ReadLine(), "Exit", true) != 0)
        {
            s_client.Send(input);
        }

        // Disconnect the client on shutdown.
        s_client.Dispose();
    }

    static void s_client_ConnectionAttempt(object? sender, EventArgs e)
    {
        Console.WriteLine("Client is connecting to serial port.");
    }

    static void s_client_ConnectionEstablished(object? sender, EventArgs e)
    {
        Console.WriteLine("Client connected to serial port.");
    }

    static void s_client_ConnectionTerminated(object? sender, EventArgs e)
    {
        Console.WriteLine("Client disconnected from serial port.");
    }

    static void s_client_SendDataComplete(object? sender, EventArgs e)
    {
        Console.WriteLine(string.Format("Sent data - {0}", s_client.TextEncoding.GetString(s_client.Client.SendBuffer)));
    }

    static void s_client_ReceiveDataComplete(object? sender, EventArgs<byte[], int> e)
    {
        Console.WriteLine(string.Format("Received data - {0}", s_client.TextEncoding.GetString(e.Argument1, 0, e.Argument2)));
    }
}

Constructors

SerialClient Initializes a new instance of the SerialClient class.
SerialClient(String) Initializes a new instance of the SerialClient class.

Properties

Client Gets the SerialPort object for the SerialClient.
ConnectionString Gets or sets the data required by the client to connect to the server.
(Inherited from ClientBase)
ConnectionTime Gets the Time for which the client has been connected to the server.
(Inherited from ClientBase)
CurrentState Gets the current ClientState.
(Inherited from ClientBase)
Enabled Gets or sets a boolean value that indicates whether the client is currently enabled.
(Inherited from ClientBase)
IsDisposed Gets a flag that indicates whether the object has been disposed.
(Inherited from ClientBase)
MaxConnectionAttempts Gets or sets the maximum number of times the client will attempt to connect to the server.
(Inherited from ClientBase)
Name Gets or sets the unique identifier of the server.
(Inherited from ClientBase)
ReadIndex Gets or sets current read index for received data buffer incremented at each Read(Byte, Int32, Int32) call.
(Inherited from ClientBase)
ReceiveBufferSize Gets or sets the size of the buffer used by the client for receiving data from the server.
(Inherited from ClientBase)
ReceivedBytesThreshold Gets or sets the needed number of bytes in the internal input buffer before a OnReceiveDataComplete(Byte, Int32) event occurs.
SendBufferSize Gets or sets the size of the buffer used by the client for sending data to the server.
(Inherited from ClientBase)
ServerIndex Gets the current server index, when multiple server end points are defined.
(Inherited from ClientBase)
ServerUri Gets the server URI of the SerialClient.
(Overrides ClientBaseServerUri)
Statistics Gets the TransportStatistics for the client connection.
(Inherited from ClientBase)
Status Gets the descriptive status of the SerialClient.
(Overrides ClientBaseStatus)
TextEncoding Gets or sets the Encoding to be used for the text sent to the server.
(Inherited from ClientBase)
TrackStatistics Determines whether the base class should track statistics.
(Inherited from ClientBase)
TransportProtocol Gets the TransportProtocol used by the client for the transportation of data with the server.
(Inherited from ClientBase)

Methods

Connect Connects the client to the server synchronously.
(Inherited from ClientBase)
ConnectAsync Connects the SerialClient to the SerialPort asynchronously.
(Overrides ClientBaseConnectAsync)
Disconnect Disconnects the SerialClient from the SerialPort.
(Overrides ClientBaseDisconnect)
Dispose Releases all the resources used by the ClientBase object.
(Inherited from ClientBase)
Dispose(Boolean) Releases the unmanaged resources used by the SerialClient and optionally releases the managed resources.
(Overrides ClientBaseDispose(Boolean))
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Initialize Initializes the client.
(Inherited from ClientBase)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
OnConnectionAttempt Raises the ConnectionAttempt event.
(Inherited from ClientBase)
OnConnectionEstablished Raises the ConnectionEstablished event.
(Inherited from ClientBase)
OnConnectionException Raises the ConnectionException event.
(Overrides ClientBaseOnConnectionException(Exception))
OnConnectionTerminated Raises the ConnectionTerminated event.
(Inherited from ClientBase)
OnReceiveData Raises the ReceiveData event.
(Inherited from ClientBase)
OnReceiveDataComplete Raises the ReceiveDataComplete event.
(Inherited from ClientBase)
OnReceiveDataException Raises the ReceiveDataException event.
(Inherited from ClientBase)
OnSendDataComplete Raises the SendDataComplete event.
(Inherited from ClientBase)
OnSendDataException Raises the SendDataException event.
(Inherited from ClientBase)
OnSendDataStart Raises the SendDataStart event.
(Inherited from ClientBase)
Read Reads a number of bytes from the current received data buffer and writes those bytes into a byte array at the specified offset.
(Overrides ClientBaseRead(Byte, Int32, Int32))
RequestNextServerIndex Requests that the client attempt to move to the next ServerIndex.
(Inherited from ClientBase)
Send(Byte) Sends data to the server synchronously.
(Inherited from ClientBase)
Send(String) Sends data to the server synchronously.
(Inherited from ClientBase)
Send(Byte, Int32, Int32) Sends data to the server synchronously.
(Inherited from ClientBase)
SendAsync(Byte) Sends data to the server asynchronously.
(Inherited from ClientBase)
SendAsync(String) Sends data to the server asynchronously.
(Inherited from ClientBase)
SendAsync(Byte, Int32, Int32) Sends data to the server asynchronously.
(Inherited from ClientBase)
SendDataAsync Sends (writes) data to the SerialPort asynchronously.
(Overrides ClientBaseSendDataAsync(Byte, Int32, Int32))
ToStringReturns a string that represents the current object.
(Inherited from Object)
UpdateBytesReceived Updates the Statistics pertaining to bytes received.
(Inherited from ClientBase)
UpdateBytesSent Updates the Statistics pertaining to bytes sent.
(Inherited from ClientBase)
ValidateConnectionString Validates the specified connectionString.
(Overrides ClientBaseValidateConnectionString(String))

Events

ConnectionAttempt Occurs when client is attempting connection to the server.
(Inherited from ClientBase)
ConnectionEstablished Occurs when client connection to the server is established.
(Inherited from ClientBase)
ConnectionException Occurs when an Exception is encountered during connection attempt to the server.
(Inherited from ClientBase)
ConnectionTerminated Occurs when client connection to the server is terminated.
(Inherited from ClientBase)
Disposed Occurs when the ClientBase has been disposed.
(Inherited from ClientBase)
ReceiveData Occurs when unprocessed data has been received from the server.
(Inherited from ClientBase)
ReceiveDataComplete Occurs when data received from the server has been processed and is ready for consumption.
(Inherited from ClientBase)
ReceiveDataException Occurs when an Exception is encountered when receiving data from the server.
(Inherited from ClientBase)
SendDataComplete Occurs when the client has successfully sent data to the server.
(Inherited from ClientBase)
SendDataException Occurs when an Exception is encountered when sending data to the server.
(Inherited from ClientBase)
SendDataStart Occurs when the client begins sending data to the server.
(Inherited from ClientBase)

Fields

DefaultConnectionString Specifies the default value for the ConnectionString property.
DefaultReceivedBytesThreshold Default value for ReceivedBytesThreshold property.

See Also