.NET Connector Quick Start Guide (Turbo Dispatch mode)

    Table of contents
    No headers

     

    This page is for those who already use the Turbo Dispatch protocol, and want a to use the built in TD parser.  See sending example here.

     

    1.    Add the following .DLL files as a reference to your project.

    turboExchange35.dll

    protobuff-net.dll

     

    2.    Add the following code decleration the the main static class that starts the program (Program.cs)

      TIP: click on "view plain"

    static clsTurboMessageMill TurboMessage;
    static public turboExchange.Network.clsTurboClient turboClient;

     

     3.    Add the following code in your Main() procedure

     

    //Initialise TurboExchange Client
    TurboMessage = new clsTurboMessageMill();
    turboClient = new turboExchange.Network.clsTurboClient(TurboMessage);
    
    //Set username & password
    turboClient.Authentication.Username = "MyUsername";
    turboClient.Authentication.PasswordString = "MyPassword";
    
    //Start comms connection, with a 1 second delay (gives everything a chance to initialise)
    turboClient.ConnectAsyc(turboExchange.Network.clsTurboClient.KeepAlive.Always,1000);
    
    //Listen to comms events
    turboClient.EventConnectionStatus += new turboExchange.Network.clsTurboClient.envStatus(turboClient_EventStatus);
    turboClient.EventUnsentMessage += new turboExchange.Network.clsTurboClient.envUnsentMessage(turboClient_EventUnsentMessage);
    
    }
    
    static void turboClient_EventUnsentMessage(turboExchange.Messages.MessageWrapper wrap)
    {
    
    }
    
    static void turboClient_EventStatus(turboExchange.Network.clsTurboClient.enumStatus eStatus)
    {
    
    }

     

    4.    Before your application closes

     

    turboClient.Close();

     

    5.    Add the following class "clsTurboExchangeMill"

     

    using System;
    using System.Text;
    using System.IO;
    using ProtoBuf;
    using turboExchange;
    using turboExchange.Messages;
    
    
    namespace turboExchangeExample
    {
        class clsTurboMessageMill : turboExchange.ITurboClientMill
        {
    
            public turboExchange.Network.clsTurboClient Client { get; set; }
    
            /// <summary>
            /// Authentication accepted
            /// </summary>
            public void LoggedIn()
            {
            }
    
    
            /// <summary>
            /// Connection Logged out (connection thread may still be active)
            /// </summary>
            public void LoggedOut()
            {
            }
    
            public void ProcessMessage(MessageWrapper wrap)
            {    
                try
                {
                    Console.WriteLine("RX message: {0}",wrap._messageType.ToString());
    
                    //Turbo Exchange Recovery Data
                    if ((int)wrap._messageType >= 1000 && (int)wrap._messageType < 2000)
                    {
                        //Convert to TD format
                        String TDData = turboExchange.TurboDispatch.clsTDConverter.ProcessIncomingMessage(wrap);
                        Console.WriteLine(TDData);  //**Turbo Dispatch Data
                    }
                    else
                    {
                        //Process other Turbo Exchange data (Example)
                        switch (wrap._messageType)
                        {
                            case MessageWrapper.MessageType.turboTurboData:
                                Console.WriteLine(Encoding.UTF8.GetString(wrap._payload));
                                break;
                            case MessageWrapper.MessageType.gpsTrackerMessage:
                                var gps = wrap._payload.DeserializeProtoBytes<turboExchange.Messages.GPS.TrackerMessage>();
                                Console.WriteLine(turboExchange.TurboDispatch.clsTDConverter.GPSMessage(gps));
                                break;
                            case MessageWrapper.MessageType.serverSMSStatus:
                                var SMSstatus = wrap._payload.DeserializeProtoBytes<turboExchange.Messages.networkServices.SMSMessageStatus>();
                                if (SMSstatus._statusMessageSpecified)
                                    Console.WriteLine("TurboExchange SMS Server:\r\n" + SMSstatus._statusMessage);
                                break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("ProcessMessage Error - " + ex.Message);
                }
    
            }
    
      
    
            /// <summary>
            /// Connection disconnected, may reconnect
            /// </summary>
            /// <param name="reason"></param>
            public void Disconnected(turboExchange.Messages.Authentication.Logout.LogoutReason reason)
            {
            }
    
            /// <summary>
            /// Triggered when the watchdog fires (~1 min or less)
            /// </summary>
            public void WatchdogTimer()
            {
            }
    
            /// <summary>
            /// Connection is closing (Forced - e.g. application shutdown)
            /// </summary>
            public void Close()
            {
            }
        }
    }

     

    To send a message see example.