private double m_Ypixpermm; // the calculated pixels per mm

        #endregion Fields

        #region Constructors

        public MachineConfig()
        {
            m_XDLPRes = 1024;
            m_YDLPRes = 768;
            m_PlatXSize = 102.0;
            m_PlatYSize = 77.0;
            m_PlatZSize = 100; // 100 mm default, we have to load this
            m_ZMaxFeedrate = 10;
            m_monitorid = "";
            CalcPixPerMM();
            m_driverconfig = new DeviceDriverConfig();
        }
        private double m_ZMaxFeedrate; // in mm/min

        #endregion Fields

        #region Constructors

        public MachineConfig()
        {
            m_PlatXSize = 102.0;
            m_PlatYSize = 77.0;
            m_PlatZSize = 100; // 100 mm default, we have to load this
            m_XMaxFeedrate = 100;
            m_YMaxFeedrate = 100;
            m_ZMaxFeedrate = 100;
            m_driverconfig = new DeviceDriverConfig();
            m_monitorconfig = new MonitorConfig();
            m_machinetype = eMachineType.UV_DLP;
            CalcPixPerMM();
        }
        private double m_ZMaxFeedrate; // in mm/min

        #endregion Fields

        #region Constructors

        public MachineConfig()
        {
            m_PlatXSize = 102.0;
            m_PlatYSize = 77.0;
            m_PlatZSize = 100; // 100 mm default, we have to load this
            m_XMaxFeedrate = 100;
            m_YMaxFeedrate = 100;
            m_ZMaxFeedrate = 100;
            XRenderSize = 1024;
            YRenderSize = 768;
            m_driverconfig = new DeviceDriverConfig();
            //m_monitorconfig = new MonitorConfig();
            m_lstMonitorconfigs = new List<MonitorConfig>(); // create a list of monitors attached to the system
            m_machinetype = eMachineType.UV_DLP;
            m_multimontype = eMultiMonType.eVertical;
            CalcPixPerMM();
        }
 // create a null loop-back machine for test
 public void CreateNullMachine() 
 {
     m_PlatXSize = 102.0;
     m_PlatYSize = 77.0;
     m_PlatZSize = 100; // 100 mm default, we have to load this
     m_XMaxFeedrate = 100;
     m_YMaxFeedrate = 100;
     m_ZMaxFeedrate = 100;
     XRenderSize = 1024;
     YRenderSize = 768;
     m_driverconfig = new DeviceDriverConfig();
     m_driverconfig.m_drivertype = Drivers.eDriverType.eNULL_DRIVER;
     //m_monitorconfig = new MonitorConfig();
     m_lstMonitorconfigs = new List<MonitorConfig>(); // for now, m_monitorconfig is assiugned to the first loaded
     m_machinetype = eMachineType.UV_DLP;
     m_driverconfig.m_connection.comname = "LoopBack";
     CalcPixPerMM();
 
 }
 // create a null loop-back machine for test
 public void CreateNullMachine()
 {
     m_PlatXSize = 102.0;
     m_PlatYSize = 77.0;
     m_PlatZSize = 100; // 100 mm default, we have to load this
     m_XMaxFeedrate = 100;
     m_YMaxFeedrate = 100;
     m_ZMaxFeedrate = 100;
     m_driverconfig = new DeviceDriverConfig();
     m_driverconfig.m_drivertype = Drivers.eDriverType.eNULL_DRIVER;
     m_monitorconfig = new MonitorConfig();
     m_machinetype = eMachineType.UV_DLP;
     m_driverconfig.m_connection.comname = "LoopBack";
     CalcPixPerMM();
 }