public void start()
        {
            try
            {
                int i = 3;
                if (simulation == "Yes")
                {
                    simulationTimer.Start();
                    return;

                }
                //spDriver.open(communicationPort);

                //
                //do
                //{
                //    if (spDriver.IsOpen == false)
                //    {
                //        spDriver.Close();
                //        Thread.Sleep(500);
                //    }
                //} while (--i > 0);

                actQtyScannerDriver.open(actQtycommunicationPort);
                i = 3;

                do
                {
                    if (actQtyScannerDriver.IsOpen == false)
                    {
                        actQtyScannerDriver.Close();
                        Thread.Sleep(500);
                    }
                } while (--i > 0);

                //if (spDriver.IsOpen == false)
                //    throw new Exception("unable to open serial port");

                if (actQtyScannerDriver.IsOpen == false)
                    throw new Exception("unable to open Scanner serial Port");

                rxPacket = new List<byte>();
                partialPacket = new List<byte>();
                rxDataQ = new Queue<byte>();

                transactionTimer.Start();

            }
            catch (Exception e)
            {

                actQtyScannerDriver = null;
                throw new AndonManagerException("Unable to start Andon Manager:" + e.Message);
            }
        }
        public AndonManager(Queue<int> stationList, Queue<int> departmentList, MODE mode)
        {
            try
            {
                responseTimeout = int.Parse(ConfigurationSettings.AppSettings["ResponseTimeout"]);
                this.mode = mode;

                transactionTimer = new System.Timers.Timer(responseTimeout);
                transactionTimer.Elapsed += new ElapsedEventHandler(transactionTimer_Elapsed);
                transactionTimer.AutoReset = false;

                simulation = ConfigurationSettings.AppSettings["SIMULATION"];

                ModbusMaster = new ModbusMaster();

                if (simulation != "Yes")
                {

                    actQtyScannerDriver = new SerialPortDriver(19200, 8, StopBits.One, Parity.None, Handshake.None); ;
                    actQtycommunicationPort = ConfigurationSettings.AppSettings["ACTQTYPORT"];

                    stations = stationList;

                }
                else
                {

                    simulationTimer = new System.Timers.Timer(2 * 1000);
                    simulationTimer.Elapsed += new ElapsedEventHandler(simulationTimer_Elapsed);
                    simulationTimer.AutoReset = false;

                }
                transactionQ = new Queue<TransactionInfo>();
            }
            catch (Exception e)
            {
                throw new AndonManagerException("Andon Manager Initialization Error:" + e.Message);
            }
        }