Click or drag to resize

SerialClient Class

Represents a communication client based on SerialPort.
Inheritance Hierarchy
SystemObject
  SystemMarshalByRefObject
    System.ComponentModelComponent
      GSF.CommunicationClientBase
        GSF.CommunicationSerialClient

Namespace: GSF.Communication
Assembly: GSF.Communication (in GSF.Communication.dll) Version: 2.4.181-beta
Syntax
public class SerialClient : ClientBase
View Source

The SerialClient type exposes the following members.

Constructors
 NameDescription
Public methodSerialClient Initializes a new instance of the SerialClient class.
Public methodSerialClient(IContainer) Initializes a new instance of the SerialClient class.
Public methodSerialClient(String) Initializes a new instance of the SerialClient class.
Top
Properties
 NameDescription
Protected propertyCanRaiseEventsGets a value indicating whether the component can raise an event.
(Inherited from Component)
Public propertyClient Gets the SerialPort object for the SerialClient.
Public propertyConnectionString Gets or sets the data required by the client to connect to the server.
(Inherited from ClientBase)
Public propertyConnectionTime Gets the Time for which the client has been connected to the server.
(Inherited from ClientBase)
Public propertyContainerGets the IContainer that contains the Component.
(Inherited from Component)
Public propertyCurrentState Gets the current ClientState.
(Inherited from ClientBase)
Protected propertyDesignModeGets a value that indicates whether the Component is currently in design mode.
(Inherited from Component)
Public propertyEnabled Gets or sets a boolean value that indicates whether the client is currently enabled.
(Inherited from ClientBase)
Protected propertyEventsGets the list of event handlers that are attached to this Component.
(Inherited from Component)
Public propertyIsDisposed Gets a flag that indicates whether the object has been disposed.
(Inherited from ClientBase)
Public propertyMaxConnectionAttempts Gets or sets the maximum number of times the client will attempt to connect to the server.
(Inherited from ClientBase)
Public propertyName Gets the unique identifier of the client.
(Inherited from ClientBase)
Public propertyPersistSettings Gets or sets a boolean value that indicates whether the client settings are to be saved to the config file.
(Inherited from ClientBase)
Protected propertyReadIndex Gets or sets current read index for received data buffer incremented at each Read(Byte, Int32, Int32) call.
(Inherited from ClientBase)
Public propertyReceiveBufferSize Gets or sets the size of the buffer used by the client for receiving data from the server.
(Inherited from ClientBase)
Public propertyReceivedBytesThreshold Gets or sets the needed number of bytes in the internal input buffer before a OnReceiveDataComplete(Byte, Int32) event occurs.
Public propertySendBufferSize Gets or sets the size of the buffer used by the client for sending data to the server.
(Inherited from ClientBase)
Public propertyServerIndex Gets the current server index, when multiple server end points are defined.
(Inherited from ClientBase)
Public propertyServerUri Gets the server URI of the SerialClient.
(Overrides ClientBaseServerUri)
Public propertySettingsCategory Gets or sets the category under which the client settings are to be saved to the config file if the PersistSettings property is set to true.
(Inherited from ClientBase)
Public propertySiteGets or sets the ISite of the Component.
(Inherited from Component)
Public propertyStatistics Gets the TransportStatistics for the client connection.
(Inherited from ClientBase)
Public propertyStatus Gets the descriptive status of the SerialClient.
(Overrides ClientBaseStatus)
Public propertyTextEncoding Gets or sets the Encoding to be used for the text sent to the server.
(Inherited from ClientBase)
Protected propertyTrackStatistics Determines whether the base class should track statistics.
(Inherited from ClientBase)
Public propertyTransportProtocol Gets the TransportProtocol used by the client for the transportation of data with the server.
(Inherited from ClientBase)
Top
Methods
 NameDescription
Public methodBeginInit Performs necessary operations before the client properties are initialized.
(Inherited from ClientBase)
Public methodConnect Connects the client to the server synchronously.
(Inherited from ClientBase)
Public methodConnectAsync Connects the SerialClient to the SerialPort asynchronously.
(Overrides ClientBaseConnectAsync)
Public methodCreateObjRefCreates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
(Inherited from MarshalByRefObject)
Public methodDisconnect Disconnects the SerialClient from the SerialPort.
(Overrides ClientBaseDisconnect)
Public methodDisposeReleases all resources used by the Component.
(Inherited from Component)
Protected methodDispose(Boolean) Releases the unmanaged resources used by the SerialClient and optionally releases the managed resources.
(Overrides ClientBaseDispose(Boolean))
Public methodEndInit Performs necessary operations after the client properties are initialized.
(Inherited from ClientBase)
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodFinalizeReleases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection.
(Inherited from Component)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetLifetimeServiceRetrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject)
Protected methodGetServiceReturns an object that represents a service provided by the Component or by its Container.
(Inherited from Component)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodInitialize Initializes the client.
(Inherited from ClientBase)
Public methodInitializeLifetimeServiceObtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject)
Public methodLoadSettings Loads saved client settings from the config file if the PersistSettings property is set to true.
(Inherited from ClientBase)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Protected methodMemberwiseClone(Boolean)Creates a shallow copy of the current MarshalByRefObject object.
(Inherited from MarshalByRefObject)
Protected methodOnConnectionAttempt Raises the ConnectionAttempt event.
(Inherited from ClientBase)
Protected methodOnConnectionEstablished Raises the ConnectionEstablished event.
(Inherited from ClientBase)
Protected methodOnConnectionException Raises the ConnectionException event.
(Overrides ClientBaseOnConnectionException(Exception))
Protected methodOnConnectionTerminated Raises the ConnectionTerminated event.
(Inherited from ClientBase)
Protected methodOnReceiveData Raises the ReceiveData event.
(Inherited from ClientBase)
Protected methodOnReceiveDataComplete Raises the ReceiveDataComplete event.
(Inherited from ClientBase)
Protected methodOnReceiveDataException Raises the ReceiveDataException event.
(Inherited from ClientBase)
Protected methodOnSendDataComplete Raises the SendDataComplete event.
(Inherited from ClientBase)
Protected methodOnSendDataException Raises the SendDataException event.
(Inherited from ClientBase)
Protected methodOnSendDataStart Raises the SendDataStart event.
(Inherited from ClientBase)
Protected methodOnUnhandledUserException Raises the UnhandledUserException event.
(Inherited from ClientBase)
Public methodRead 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))
Public methodRequestNextServerIndex Requests that the client attempt to move to the next ServerIndex.
(Inherited from ClientBase)
Public methodSaveSettings Saves client settings to the config file if the PersistSettings property is set to true.
(Inherited from ClientBase)
Public methodSend(Byte) Sends data to the server synchronously.
(Inherited from ClientBase)
Public methodSend(Object) Sends data to the server synchronously.
(Inherited from ClientBase)
Public methodSend(String) Sends data to the server synchronously.
(Inherited from ClientBase)
Public methodSend(Byte, Int32, Int32) Sends data to the server synchronously.
(Inherited from ClientBase)
Public methodSendAsync(Byte) Sends data to the server asynchronously.
(Inherited from ClientBase)
Public methodSendAsync(Object) Sends data to the server asynchronously.
(Inherited from ClientBase)
Public methodSendAsync(String) Sends data to the server asynchronously.
(Inherited from ClientBase)
Public methodSendAsync(Byte, Int32, Int32) Sends data to the server asynchronously.
(Inherited from ClientBase)
Protected methodSendDataAsync Sends (writes) data to the SerialPort asynchronously.
(Overrides ClientBaseSendDataAsync(Byte, Int32, Int32))
Public methodToStringReturns a String containing the name of the Component, if any. This method should not be overridden.
(Inherited from Component)
Protected methodUpdateBytesReceived Updates the Statistics pertaining to bytes received.
(Inherited from ClientBase)
Protected methodUpdateBytesSent Updates the Statistics pertaining to bytes sent.
(Inherited from ClientBase)
Protected methodValidateConnectionString Validates the specified connectionString.
(Overrides ClientBaseValidateConnectionString(String))
Top
Events
 NameDescription
Public eventConnectionAttempt Occurs when client is attempting connection to the server.
(Inherited from ClientBase)
Public eventConnectionEstablished Occurs when client connection to the server is established.
(Inherited from ClientBase)
Public eventConnectionException Occurs when an Exception is encountered during connection attempt to the server.
(Inherited from ClientBase)
Public eventConnectionTerminated Occurs when client connection to the server is terminated.
(Inherited from ClientBase)
Public eventDisposedOccurs when the component is disposed by a call to the Dispose method.
(Inherited from Component)
Public eventReceiveData Occurs when unprocessed data has been received from the server.
(Inherited from ClientBase)
Public eventReceiveDataComplete Occurs when data received from the server has been processed and is ready for consumption.
(Inherited from ClientBase)
Public eventReceiveDataException Occurs when an Exception is encountered when receiving data from the server.
(Inherited from ClientBase)
Public eventSendDataComplete Occurs when the client has successfully sent data to the server.
(Inherited from ClientBase)
Public eventSendDataException Occurs when an Exception is encountered when sending data to the server.
(Inherited from ClientBase)
Public eventSendDataStart Occurs when the client begins sending data to the server.
(Inherited from ClientBase)
Public eventUnhandledUserException Occurs when an Exception is encountered in a user-defined function via an event dispatch.
(Inherited from ClientBase)
Top
Fields
 NameDescription
Public fieldStatic memberDefaultConnectionString Specifies the default value for the ConnectionString property.
Public fieldStatic memberDefaultReceivedBytesThreshold Default value for ReceivedBytesThreshold property.
Top
Extension Methods
 NameDescription
Public Extension MethodGetEnumValueOrDefault Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Public Extension MethodGetEnumValueOrDefaultT Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Top
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)));
    }
}
See Also