/// <summary>
        /// The top level model object.
        /// </summary>
        public HelixGenModel()
        {
            bUnderTempPlan = new bool[6];

            for (int ndx = 0; ndx < 6; ndx++)
            {
                bUnderTempPlan[ndx] = false;
            }

            bRamping  = false;
            _protocol = new Protocol();

            motorControllers = new Dictionary <string, motorBoardModel>();

            // Construct the configuration.

            _config = new Configuration();

            // Construct the various board models.

            _opticsBoard = new opticsBoardModel(this);
            _motorBoard  = new motorBoardModel(this);
            _motorBoardX = new motorBoardModel(this);
            _tecBoard    = new tecBoardModel(this);

            resultsDir = "";

            m_data_t   = new List <double>();
            m_data_r1  = new List <double>();
            _slope     = new List <double>();
            optic_zero = new double[4];
        }
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: dispose managed state (managed objects).
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.

                StopTempMonitor();

                _deviceSlider       = null;
                _deviceR1Piston     = null;
                _deviceR2Piston     = null;
                _deviceHeaterPiston = null;
                _devicePCRCycler    = null;
                _devicePump         = null;
                _deviceOpticsMotor  = null;
                _deviceHeater       = null;

                _opticsBoard = null;
                _motorBoard  = null;
                _motorBoardX = null;
                _tecBoard.theBoard.Dispose();
                _tecBoard = null;

                disposedValue = true;
            }
        }