public ConfigurationDialog(Configuration config, IntelligentMicroplateReader imr)
        {
            this.config = config;
            this.imr    = imr;

            InitializeComponent();


            // setup data bindings to connect the config values to the GUI elements
            serialPortConfigurationControlTable.DataBindings.Add("SerialPortConfiguration", config, "PortSettingsTable");
            serialPortConfigurationControlMicroscopeModule.DataBindings.Add("SerialPortConfiguration", config, "PortSettingsMicroscope");

            //// create and setup the Microscope
            //PortMicroscope = new Communication_RS232();
            //PortMicroscope.Open(config.MicroscopeComport.PortName, config.MicroscopeComport.BaudRate);
            //PortMicroscope.PortRecievedMessageEvent += new PortRecievedMessageEventHandler(MessageRecievedEvent);
        }
        SynchronizedQueue <IncubatorResult> IncubatorResultQueue = null;        // define a queue to transmit sensor data to IMROS

        #endregion

        #region Constructor
        public MicroscopeSystemDriver()
        {
            imr = new IntelligentMicroplateReader();
        }