Пример #1
0
        public StartForm(bool debuggerAttached)
        {
            configWindow = new ConfigForm();
            configWindow.initCaptureParameters();
            rawDataWindow = new RawDataForm();
            propWindow2   = new PropertiesForm2();

            InitializeComponent();
            version.Text = constants.buildVersion;
            MaximizeBox  = false;
            LogManager.Log("Application start, Welcome to Yocto-Visualization.");

            if (debuggerAttached)
            {
                LogManager.Log("A debugger is attached.");
            }
            LogManager.LogNoTS("---------------------------------------------------------------------------------");
            LogManager.LogNoTS("Optional command line parameters:");
            LogManager.LogNoTS("-config xmlFilePath      Create/Use alternate \"xmlFilePath\" configuration file.");
            LogManager.LogNoTS("                         You can use configuration files from V1, but they will ");
            LogManager.LogNoTS("                         be overwritten in V2 format.");
            LogManager.LogNoTS("-log                     Automatically open log window");
            LogManager.LogNoTS("-check4updates           Re-enable automatic checks for updates");
            LogManager.LogNoTS("---------------------------------------------------------------------------------");
            LogManager.Log("Current configuration file is " + constants.configfile);
            LogManager.Log("Yocto-Visualization version is " + constants.buildVersion);
            LogManager.Log("Yoctopuce API version is " + YAPI.GetAPIVersion());
            LogManager.Log("Yoctopuce dynamic library path is " + YAPI.GetYAPIDllPath());

            LogManager.Log("Architecture is " + (IntPtr.Size * 8).ToString() + " bits (platform " + Environment.OSVersion.Platform.ToString() + ")");



            if (constants.MonoRunning)
            {
                if (constants.OSX_Running)
                {
                    LogManager.Log("Mono version is " + constants.MonoVersion + " (Mac OS X)");
                }
                else
                {
                    LogManager.Log("Mono version is " + constants.MonoVersion);
                }
            }
            else
            {
                LogManager.Log("Running on .NET");
#if NET35
                LogManager.Log("WARNING! this .EXE was specifically compiled for .NET 3.5 (Windows XP compatibility)");
#endif
            }
            string cfgFile = constants.configfile;

            if (!File.Exists(cfgFile) && !constants.configfileOveridden)
            {
                string alternateCfgFile = Path.GetDirectoryName(cfgFile) + "\\..\\..\\YoctoVisualization\\1.0.0.0\\config.xml";
                if (File.Exists(alternateCfgFile))
                {
                    if (MessageBox.Show("No Yocto-Visualization V2 configuration available, but a configuration file from version 1 was found, do you want to import it?", "Yocto-Visualization V2",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                        MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                    {
                        cfgFile = alternateCfgFile;
                    }
                }
            }



            if (File.Exists(cfgFile))
            {
                try
                {
                    XmlDocument doc = new XmlDocument();

                    doc.Load(cfgFile);

                    double     version = 1;
                    XmlElement root    = doc.DocumentElement;

                    if (root.Attributes != null &&
                        root.Attributes["version"] != null)
                    {
                        version = Double.Parse(root.Attributes["version"].Value, CultureInfo.InvariantCulture);
                    }

                    GenericProperties.XmlFileVersion = version;

                    if (version == 1.0)
                    {
                        string configdata = XMLConfigTranslator.TranslateFromV1(doc);
                        doc = new XmlDocument();
                        doc.LoadXml(configdata);
                    }



                    // sensor configuration must be loaded first
                    foreach (XmlNode node in doc.DocumentElement.ChildNodes)
                    {
                        if (node.Name == "Sensors")
                        {
                            sensorsManager.setKnownSensors(node);
                        }
                    }


                    foreach (XmlNode node in doc.DocumentElement.ChildNodes)
                    {
                        switch (node.Name)
                        {
                        case "GraphForm": NewGraphForm(node); MustHide = true; break;

                        case "GaugeForm": NewSolidGaugeForm(node); MustHide = true; break;

                        case "angularGaugeForm": NewAngularGaugeForm(node); MustHide = true; break;

                        case "digitalDisplayForm": NewDigitalDisplayForm(node); MustHide = true; break;

                        case "Config": configWindow.Init(node); break;

                        case "PropertiesForm": RestoreWindowPosition(propWindow2, node); break;
                        }
                    }
                }
                catch (Exception e) { LogManager.Log("Cannot load configuration file " + constants.configfile + ": " + e.Message); }
            }
            else
            {
                configWindow.DefaultInit();
            }



            sensorsManager.registerChangeCallback(sensorListHaschanged);

            configWindow.CheckInit();
            YoctoTimer.Interval = 100;
            YoctoTimer.Enabled  = true;
            if (constants.OpenLogWindowAtStartUp)
            {
                LogManager.Show();
            }

            HideTimer = new Timer();

            HideTimer.Tick += HideTimer_Tick;
        }