Rover.MicrocontrollerSingleton.Initialize C# (CSharp) Method

Initialize() public method

public Initialize ( ) : bool
return bool
        public bool Initialize()
        {
            if (isInitialized)
            {
                return true;
            }
            else
            {
                lock (syncLock)
                {
                    if (isInitialized == false)
                    {
                        int retry = 10000;

                        while (retry > 0 && isInitialized == false)
                        {
                            string[] portnames = SerialPort.GetPortNames();
                            if (portnames.Length > 0)
                            {
                                foreach (string port in portnames)
                                {
                                    try
                                    {
                                        //Assumes only 1 device is connected via serial. Some additional feedback will have to be sent from
                                        //the arduino if more than one serial device is connected.

                                        serialPort.PortName = port;
                                        serialPort.BaudRate = 115200;
                                        serialPort.DataReceived += new SerialDataReceivedEventHandler(CommandReadyEvent);
                                        serialPort.Open();
                                        serialPort.DiscardOutBuffer();
                                        isInitialized = true;
                                    }
                                    catch (Exception e)
                                    {
                                        Console.WriteLine(e.Message); //log error here
                                    }
                                }
                            }
                            retry -= 1;
                        }
                    }
                }

            }

            return isInitialized;
        }

Same methods

MicrocontrollerSingleton::Initialize ( string portName, int baud = 9600, int readTimeout = 500, int writeTimeout = 500 ) : bool

Usage Example

Ejemplo n.º 1
0
        static void SerialManager(IQueue DispatcherMessageBox, IQueue MicrocontrollerCommanderMessageBox)
        {
            MicrocontrollerSingleton microcontroller = MicrocontrollerSingleton.Instance;

            microcontroller.SetQueue(MicrocontrollerCommanderMessageBox);

            bool success = false;

            while (true)
            {
                while (microcontroller.IsInitialized == false)
                {
                    microcontroller.Initialize();
                    if (microcontroller.IsInitialized == true)
                    {
                        Console.WriteLine("Connected to microcontroller");
                        // success = microcontroller.WriteMessage("test \n");
                        // Console.WriteLine(success.ToString());
                    }
                    else
                    {
                        Console.WriteLine("Could not connect to microcontroller");
                    }
                    Thread.Sleep(5000);
                }
                Thread.Sleep(100);
            }
        }