Esempio n. 1
0
        public static void New_Config()
        { /// 1.0.9.14
            if (XDS != null)
            {
                XDS.Dispose();
                XDS = null;
                GC.Collect();
            }
            XDS = new DataSet(DS_CONFIG);

            XDS.Tables.Add(Sensor.New_CfgTable());
            XDS.AcceptChanges();

            XDS.Tables.Add(ComPorts.New_CfgTable());
            XDS.AcceptChanges();

            DataTable t2 = new DataTable(T_TERMINAL);

            t2.Columns.Add(new DataColumn(C_TERM_MAXLINES, Type.GetType(SYS_INT32)));
            t2.Columns[C_TERM_MAXLINES].DefaultValue = DEF_TERM_MAXLINES;

            t2.Columns.Add(new DataColumn(C_TERM_TIMERINTERVAL, Type.GetType(SYS_INT32)));
            t2.Columns[C_TERM_TIMERINTERVAL].DefaultValue = DEF_TERM_TIMERINTERVAL;

            t2.Columns.Add(new DataColumn(C_TERMLOG_ENABLE, Type.GetType(SYS_BOOLEAN)));
            t2.Columns[C_TERMLOG_ENABLE].DefaultValue = DEF_TERMLOG_ENABLE;

            t2.Columns.Add(new DataColumn(C_DATALOG_ENABLE, Type.GetType(SYS_BOOLEAN)));
            t2.Columns[C_DATALOG_ENABLE].DefaultValue = DEF_DATALOG_ENABLE;

            t2.Columns.Add(new DataColumn(C_DATALOG_FOLDER, Type.GetType(SYS_STRING)));
            t2.Columns[C_DATALOG_FOLDER].DefaultValue = DEF_DATALOG_FOLDER;

            t2.Columns.Add(new DataColumn(C_DATALOG_FILEINTERVAL, Type.GetType(SYS_INT32)));
            t2.Columns[C_DATALOG_FILEINTERVAL].DefaultValue = DEF_DATALOG_FILEINTERVAL;

            t2.Columns.Add(new DataColumn(C_DATALOG_FILENAMEFORMAT, Type.GetType(SYS_STRING)));
            t2.Columns[C_DATALOG_FILENAMEFORMAT].DefaultValue = DEF_DATALOG_FILENAMEFORMAT;

            t2.Columns.Add(new DataColumn(C_DATAPURGE_TIMERINTERVAL, Type.GetType(SYS_INT32)));
            t2.Columns[C_DATAPURGE_TIMERINTERVAL].DefaultValue = DEF_DATAPURGE_TIMERINTERVAL;

            t2.Rows.Add(t2.NewRow());
            t2.AcceptChanges();
            XDS.Tables.Add(t2);
            XDS.AcceptChanges();

            DataTable t3 = new DataTable(T_DISPLAY);

            t3.Columns.Add(new DataColumn(C_DISPLAY_TIMERINTERVAL, Type.GetType(SYS_INT32)));
            t3.Columns[C_DISPLAY_TIMERINTERVAL].DefaultValue = DEF_DISPLAY_TIMERINTERVAL;

            t3.Columns.Add(new DataColumn(C_DISPLAY_LIVEHIST, Type.GetType(SYS_INT32)));
            t3.Columns[C_DISPLAY_LIVEHIST].DefaultValue = DEF_DISPLAY_LIVEHIST;

            t3.Columns.Add(new DataColumn(C_HZCHART_SCALE, Type.GetType(SYS_INT32)));
            t3.Columns[C_HZCHART_SCALE].DefaultValue = DEF_HZCHART_SCALE;

            t3.Columns.Add(new DataColumn(C_HZCHART_ADJUST, Type.GetType(SYS_SINGLE)));
            t3.Columns[C_HZCHART_ADJUST].DefaultValue = DEF_HZCHART_ADJUST;

            t3.Columns.Add(new DataColumn(C_HZSPECT_SCALE, Type.GetType(SYS_SINGLE)));
            t3.Columns[C_HZSPECT_SCALE].DefaultValue = DEF_HZSPECT_SCALE;

            t3.Rows.Add(t3.NewRow());
            t3.AcceptChanges();
            XDS.Tables.Add(t3);
            XDS.AcceptChanges();

            DataTable t4 = new DataTable(T_PREFERENCES);

            t4.Columns.Add(new DataColumn(C_APP_VER, Type.GetType(SYS_STRING)));
            t4.Columns[C_APP_VER].DefaultValue = APP_VER;

            t4.Columns.Add(new DataColumn(C_STATUS_TIMERINTERVAL, Type.GetType(SYS_INT32)));
            t4.Columns[C_STATUS_TIMERINTERVAL].DefaultValue = DEF_STATUS_TIMERINTERVAL;

            t4.Columns.Add(new DataColumn(C_DATE_FORMATSTRING, Type.GetType(SYS_STRING)));
            t4.Columns[C_DATE_FORMATSTRING].DefaultValue = DEF_DATE_FORMATSTRING;

            t4.Rows.Add(t4.NewRow());
            t4.AcceptChanges();
            XDS.Tables.Add(t4);
            XDS.AcceptChanges();

            DataTable t5 = new DataTable(T_ACCOUNT);

            t5.Columns.Add(new DataColumn(C_ACCOUNT_ID, Type.GetType(SYS_INT64)));
            t5.Columns[C_ACCOUNT_ID].DefaultValue = DEF_ACCOUNT_ID;
            t5.Columns.Add(new DataColumn(C_ACCOUNT_EMAIL, Type.GetType(SYS_STRING)));
            t5.Columns[C_ACCOUNT_EMAIL].DefaultValue = "";
            t5.Columns.Add(new DataColumn(C_ACCOUNT_PSWD, Type.GetType(SYS_STRING)));
            t5.Columns[C_ACCOUNT_PSWD].DefaultValue = "";

            t5.Rows.Add(t5.NewRow());
            t5.AcceptChanges();
            XDS.Tables.Add(t5);
            XDS.AcceptChanges();


            // Remove the old Configuration file
            if (File.Exists(File_Path))
            {
                try
                {
                    File.Delete(File_Path);
                }
                catch (Exception ex)
                {
                    Log.Err(ex, "Sensor, New_Config", "Error Deleting Old Config File: " + File_Path, Log.LogDevice.LOG_DLG);
                }
            }

            // Create a new Default Configuration file
            try
            {
                XDS.WriteXml(File_Path, XmlWriteMode.WriteSchema);
            }
            catch (Exception ex)
            {
                Log.Err(ex, "Sensor, New_Config", "Error Creating New Config File: " + File_Path, Log.LogDevice.LOG_DLG);
            }

            // Note:  If we fail to Delete the Old Config or Save a New Config, we now have the Default Configuration anyway.
        }
Esempio n. 2
0
        public static string Load()
        {
            /// Load the Sensor Configuration
            string sResult = "";

            try
            {
                // Clear any existing configuration
                if (XDS != null)
                {
                    XDS.Dispose();
                    XDS = null;
                    GC.Collect();
                }

                if (File.Exists(File_Path))
                {
                    // Read the configuration DataSet from disk
                    XDS = new DataSet(DS_CONFIG);
                    XDS.ReadXml(File_Path, XmlReadMode.Auto);
                }
            }
            catch (Exception ex)
            {
                if (XDS != null)
                {
                    XDS.Dispose();
                    XDS = null;
                    GC.Collect();
                }
                sResult = "Error Reading Config File: " + File_Path;
                Log.Err(ex, "Sensor, Load_Config", sResult, Log.LogDevice.LOG_DLG);
            }

            /// Check the Version
            try
            {
                if (XDS == null)
                {
                    New_Config();
                    sResult = "New Configuration Loaded";
                }
                else
                {
                    try
                    {
                        if ((XDS.Tables.Count > 1) &&
                            (XDS.Tables[T_PREFERENCES].Rows.Count == 1) &&
                            (XDS.Tables[T_PREFERENCES].Rows[0][C_APP_VER].ToString() == APP_VER) &&
                            (XDS.Tables[Sensor.T_SENSOR].Rows.Count == 1) &&
                            (XDS.Tables[ComPorts.T_PORT1].Rows.Count == 1) &&
                            (Convert.ToUInt16(XDS.Tables[Sensor.T_SENSOR].Rows[0][Sensor.C_SENSOR_VER]) == Sensor.Sensor_Ver))
                        {
                            // Probably a good current Configuration!
                            sResult = "Configuration Loaded";
                            Log.Info("Sensor, Load_Config", sResult + ": " + File_Path, Log.LogDevice.LOG);
                        }
                        else
                        {
                            // Invalid Configuration
                            sResult = "Unrecognized Configuration or Upgrade Required.  Creating a New Configuration Version " + APP_VER;
                            Log.Info("Sensor, Load_Config", sResult + ": " + File_Path, Log.LogDevice.LOG);
                            New_Config();
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Err(ex, "Cfg.", "Load()", Log.LogDevice.LOG_DLG);
                        New_Config();
                    }
                }

                Sensor.Load_Config();
                ComPorts.Load_Config();

                m_Date_FormatString       = XDS.Tables[T_PREFERENCES].Rows[0][C_DATE_FORMATSTRING].ToString();
                m_Status_TimerInterval    = Convert.ToInt32(XDS.Tables[T_PREFERENCES].Rows[0][C_STATUS_TIMERINTERVAL]);
                m_Term_MaxLines           = Convert.ToInt32(XDS.Tables[T_TERMINAL].Rows[0][C_TERM_MAXLINES]);
                m_Term_TimerInterval      = Convert.ToInt32(XDS.Tables[T_TERMINAL].Rows[0][C_TERM_TIMERINTERVAL]);
                m_TermLog_Enable          = Convert.ToBoolean(XDS.Tables[T_TERMINAL].Rows[0][C_TERMLOG_ENABLE]);
                m_DataLog_Enable          = Convert.ToBoolean(XDS.Tables[T_TERMINAL].Rows[0][C_DATALOG_ENABLE]);
                m_DataLog_FileInterval    = Convert.ToInt32(XDS.Tables[T_TERMINAL].Rows[0][C_DATALOG_FILEINTERVAL]);
                m_DataLog_FileNameFormat  = XDS.Tables[T_TERMINAL].Rows[0][C_DATALOG_FILENAMEFORMAT].ToString();
                m_DataPurge_TimerInterval = Convert.ToInt32(XDS.Tables[T_TERMINAL].Rows[0][C_DATAPURGE_TIMERINTERVAL]);
                m_Display_TimerInterval   = Convert.ToInt32(XDS.Tables[T_DISPLAY].Rows[0][C_DISPLAY_TIMERINTERVAL]);
                m_Display_LiveHist        = Convert.ToInt32(XDS.Tables[T_DISPLAY].Rows[0][C_DISPLAY_LIVEHIST]);
                m_HzChart_Scale           = Convert.ToInt32(XDS.Tables[T_DISPLAY].Rows[0][C_HZCHART_SCALE]);
                m_HzChart_Adjust          = Convert.ToSingle(XDS.Tables[T_DISPLAY].Rows[0][C_HZCHART_ADJUST]);
                m_HzSpect_Scale           = Convert.ToSingle(XDS.Tables[T_DISPLAY].Rows[0][C_HZSPECT_SCALE]);
                m_DataLog_Folder          = XDS.Tables[T_TERMINAL].Rows[0][C_DATALOG_FOLDER].ToString();
                if (!Directory.Exists(m_DataLog_Folder))
                {
                    try
                    {
                        Directory.CreateDirectory(m_DataLog_Folder);
                    }
                    catch (Exception ex)
                    {
                        Log.Err(ex, "Cfg, New_Config", "Error Creating Data Logging Folder: " + m_DataLog_Folder, Log.LogDevice.LOG_DLG);
                    }
                }

                m_Account_Id    = Convert.ToInt64(XDS.Tables[T_ACCOUNT].Rows[0][C_ACCOUNT_ID]);
                m_Account_EMail = XDS.Tables[T_ACCOUNT].Rows[0][C_ACCOUNT_EMAIL].ToString();
                m_Account_Pswd  = XDS.Tables[T_ACCOUNT].Rows[0][C_ACCOUNT_PSWD].ToString();
            }
            catch (Exception ex)
            {
                sResult = "Error Loading Configuration File: " + File_Path;
                Log.Err(ex, "Cfg, Load_Config", sResult, Log.LogDevice.LOG_DLG);
            }
            return(sResult);
        }