123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701 |
-
- using System;
- using System.Data;
- using System.IO;
- using System.Windows.Forms;
- using Microsoft.Win32;
- using System.Collections;
- using System.Runtime.InteropServices;
- using OTSModelSharp.ServiceCenter;
- namespace OTSSysMgrApp
- {
- public struct PostLogMsg
- {
- public int logLevel;//1 trace 2 debug 3info 4 warn 5 error 6 fatal
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)2000)]
- public char[] logMessage;
- };
- public partial class OTSSystemManagerForms : Form
- {
-
- private PostLogMsg m_LogMsg;
- public const int MsgID = 0x0464;
- public const int LogMsgID = 0x0465;
- #region 全部变量声明
- //获取XML 路径
- static string xmlFilePath = string.Empty;
- //日志路径
- static string XMLFileName = string.Empty;
- //设置日志路径
- static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
- string SubKey = "OTSDevName";
- //国际化
- Language lan;
- //国际化存储信息
- Hashtable table;
- #endregion
- #region 构造函数
- public OTSSystemManagerForms()
- {
- try
- {
- //获取XML 路径
- xmlFilePath = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString;
- XMLFileName = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFileName"].ConnectionString;
-
- InitializeComponent();
- }
- catch (Exception ex)
- {
- log.Error("OTSSystemManagerForms_OTSSystemManagerForms()--错误信息:"+ex.ToString());
- }
- //国际化
- lan = new Language(this);
- table = lan.GetNameTable(this.Name);
- rdb_ch.Checked = true;
- }
- private string GetString(char[] csStr)
- {
- int ilen = csStr.Length;
- string csName = new string(csStr); //MSTMsg.STMSampleStu.cSName
- csName.IndexOf('\0');
- csName = csName.Substring(0, csName.IndexOf('\0'));
- return csName;
- }
- protected override void DefWndProc(ref Message m)
- {
- switch (m.Msg)
- {
- case LogMsgID:
- m_LogMsg = new PostLogMsg();
- m_LogMsg = (PostLogMsg)Marshal.PtrToStructure(m.LParam, typeof(PostLogMsg));
- var log = NLog.LogManager.GetCurrentClassLogger();
- string s = GetString(m_LogMsg.logMessage);
- switch (m_LogMsg.logLevel)
- {
- case 1:
- log.Trace(s);
- break;
- case 2:
- log.Debug(s);
- break;
- case 3:
- log.Info(s);
- break;
- case 4:
- log.Warn(s);
- break;
- case 5:
- log.Error(s);
- break;
- case 6:
- log.Fatal(s);
- break;
- }
- break;
- default:
- base.DefWndProc(ref m);
- break;
- }
- }
- #endregion
- #region 保存设置
- /// <summary>
- /// 保存设置
- /// </summary>
- /// <param name="Name">节点名称</param>
- /// <param name="Value">节点参数值</param>
- public void SaveSetting(string Name, string Value)
- {
- try
- {
- //判断XML文件中是否存在
- if (!XMLOperationClass.ExistsXmlInfo(Name))
- {
- //调用添加XML节点功能
- XMLOperationClass.AddXmlInfo(Name, Value);
- }
- else
- {
- //调用修改XML节点功能
- XMLOperationClass.EditXmlInfo(Name, Value);
- }
- }
- catch (Exception ex)
- {
- //记录日志信息
- log.Error(ex.Message.ToString());
- }
- }
- #endregion
-
-
-
-
-
-
-
-
-
-
-
- #region 修改设置
- public void EditSetting(string Name, string Value)
- {
- try
- {
- //调用修改XML节点功能
- XMLOperationClass.EditXmlInfo(Name, Value);
- }
- catch (Exception ex)
- {
- //记录日志信息
- log.Error(ex.Message.ToString());
- }
- }
- #endregion
- #region 控件事件汇总
- /// <summary>
- /// 打开SEM设置
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnSEMTest_Click(object sender, EventArgs e)
- {
- //实力窗口对象
- SemTestForms sTextForms = new SemTestForms();
- //判断窗口对话框返回值
- sTextForms.ShowDialog();
- }
- /// <summary>
- /// 窗口加载
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void OTSSystemManagerForms_Load(object sender, EventArgs e)
- {
- //获取下拉选项
- ReadXMLFile();
- string message = string.Empty;
-
- CmbEDSController.SelectedIndexChanged += new EventHandler(CmbEDSController_SelectedIndexChanged);
- try
- {
-
- tabHardwareSet.Parent = tabControl1;
-
- }
- catch (Exception)
- {
- }
- string str = Language.ReadDefaultLanguage();
- switch (str)
- {
- case "ZH":
- rdb_ch.Checked = true;
- rdb_en.Checked = false;
- break;
- case "EN":
- rdb_ch.Checked = false;
- rdb_en.Checked = true;
- break;
- }
- coB_CleannessType.Items.Add("TCCleannessA");
- coB_CleannessType.Items.Add("BatteryCleannessA");
- this.coB_CleannessType.SelectedIndexChanged -= new System.EventHandler(this.coB_CleannessType_SelectedIndexChanged);
- coB_CleannessType.SelectedIndex=0;
- this.coB_CleannessType.SelectedIndexChanged += new System.EventHandler(this.coB_CleannessType_SelectedIndexChanged);
- ReadSysType();
-
- }
- /// <summary>
- /// 将所有参数保存
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnDone_Click(object sender, EventArgs e)
- {
- try
- {
- //节点名称与节点参数值
- string Name = string.Empty;
- string Value = string.Empty;
- //判断本地中是否存在文件路径
- if (ExistsFile(xmlFilePath))
- {
- //遍历tabHardwareSet标签中所有的ComboBox控件
- foreach (Control control in this.tabHardwareSet.Controls)
- {
- //判断类型名称
- if (control is ComboBox)
- {
- //获取节点名称与节点参数值
- Name = (control as ComboBox).Name.Substring(2);
- Value = (control as ComboBox).Text;
- SaveSetting(Name, Value);
- }
- }
- }
- else
- {
- //如果文件不存在,则创建文件
- CreateFile(xmlFilePath);
- }
- //关闭窗口
- this.Close();
- }
- catch (Exception ex)
- {
- log.Error(ex.Message.ToString());
- }
- }
- private void btnEDSTest_Click(object sender, EventArgs e)
- {
- //实例窗口对象
- ControllerSettingForm sTextForms = new ControllerSettingForm();
- try
- {
- sTextForms.Show();
- }
- catch (InvalidOperationException ex)
- {
- log.Error("OTSSystemManagerForms_btnEDSTest_Click-错误日志:"+ ex.ToString());
- }
- }
- private void SaveSEMAndEDSController()
- {
- string EDSName = string.Empty;
- if (CmbEDSController.SelectedItem != null)
- {
- EDSName = CmbEDSController.SelectedItem.ToString();
- }
- try
- {
- if (!WriteXMLFile(EDSName, EDSName))
- {
- log.Error("SaveSelectVersionInfo()--错误日志:请检查HardwareConfig.xml确保Value为值标签!");
- }
- }
- catch (Exception ex)
- {
- log.Error("SaveSelectVersionInfo()--错误日志:" + ex.ToString() + "");
- }
- }
- private void ReadXMLFile()
- {
- string xmlSEMName = string.Empty;
- string xmlEDSName = string.Empty;
- bool result = XMLOperationClass.ReadXMLFile(XMLFileName, ref xmlSEMName, ref xmlEDSName);
- if (result)
- {
- if (xmlEDSName != "")
- {
- CmbEDSController.SelectedItem = xmlEDSName.ToString();
- }
- else
- {
- try
- {
- CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();// "Genesis";
- }
- catch (Exception)
- {
- throw;
- }
- }
- }
- else
- {
- CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();
- }
- }
- private bool WriteXMLFile(string xmlSEMName, string xmlEDSName)
- {
- try
- {
- return XMLOperationClass.WriteXMLFile(XMLFileName, xmlSEMName, xmlEDSName);
- }
- catch (Exception)
- {
- return false;
- }
- }
- private void ReadSysType()
- {
- string path = Application.StartupPath + @"\Config\SysData\OTSProgMgrParam.pmf";
- string Type = "";
- bool result = XMLOperationClass.ReadSysType(path, "SysType", ref Type);
- if (result)
- {
- this.radioButton_IncA.CheckedChanged -= new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- if (Type == "IncA")
- {
- radioButton_IncA.Checked = true;
- }
- else
- {
- radioButton_CleannessA.Checked = true;
- this.coB_CleannessType.SelectedIndexChanged -= new System.EventHandler(this.coB_CleannessType_SelectedIndexChanged);
- if (Type == "TCCleannessA")
- {
- coB_CleannessType.SelectedIndex = 0;
- }
- else if(Type == "BatteryCleannessA")
- {
- coB_CleannessType.SelectedIndex = 1;
- }
- this.coB_CleannessType.SelectedIndexChanged += new System.EventHandler(this.coB_CleannessType_SelectedIndexChanged);
- }
- this.radioButton_IncA.CheckedChanged += new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- }
- }
- private bool ChangeSysType()
- {
- SwitchSystemValidation switchSystemValidation = new SwitchSystemValidation();
- DialogResult dialogResult = switchSystemValidation.ShowDialog();
- if (dialogResult == DialogResult.OK)
- {
- if (!switchSystemValidation.GetUpdateFile())
- {
- WriteSysType();
- return true;
- }
- else
- {
- string sourceFilepath = Application.StartupPath + @"\Config\ConfigTemplate";
- if (radioButton_IncA.Checked)
- {
- sourceFilepath += "\\IncA";
- }
- else if (radioButton_CleannessA.Checked)
- {
- if (coB_CleannessType.SelectedItem.ToString() == "TCCleannessA")
- {
- sourceFilepath += "\\CleannessA";
- }
- else
- {
- sourceFilepath += "\\BatteryCleannessA";
- }
- }
- var files = Directory.GetFiles(sourceFilepath);
- foreach (var file in files)
- {
- string tagretFile = Application.StartupPath + @"\Config";
- var fileInfo = new FileInfo(file);
- if (fileInfo.Name == "ReportTemplateConfig.xml")
- {
- tagretFile += "\\ReportTemplate";
- }
- else
- {
- tagretFile += "\\SysData";
- }
- fileInfo.CopyTo(tagretFile + "\\" + fileInfo.Name, true);
- }
- WriteSysType();
- MessageBox.Show("Configure successful!", "Tip");
- return true;
- }
-
- }
- return false;
- }
- private void GetSEMAndEDSController()
- {
- string xmlNodeEDS = XMLOperationClass.GetXMLInformations("EDSName");
- if (xmlNodeEDS != null)
- {
- CmbEDSController.SelectedItem = xmlNodeEDS.ToString();
- }
- }
- private void GetRegistData()
- {
- try
- {
- string SEMRegistData = string.Empty;
- string EDSRegistData = string.Empty;
- RegistryKey hkml = Registry.LocalMachine;
- RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
- RegistryKey aimdir = software.OpenSubKey(SubKey, true);
- if (aimdir != null)
- {
- if (IsRegeditExit("EDSName"))
- {
- EDSRegistData = aimdir.GetValue("EDSName").ToString();
- CmbEDSController.SelectedItem = EDSRegistData.ToString();
- }
- }
- }
- catch (Exception)
- {
- //MessageBox.Show("读取失败,请以管理员身份运行!");
- return;
- }
- }
- private bool WTRegedit(string name, string tovalue)
- {
- try
- {
- RegistryKey hklm = Registry.LocalMachine;
- RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
- RegistryKey aimdir = software.CreateSubKey(SubKey);
- aimdir.SetValue(name, tovalue);
- return true;
- }
- catch (Exception)
- {
- //MessageBox.Show("写入失败,请以管理员身份运行!");
- return false;
- }
- }
- private bool IsRegeditExit(string name)
- {
- try
- {
- bool _exit = false;
- string[] valueNames;
- RegistryKey hkml = Registry.LocalMachine;
- RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
- RegistryKey aimdir = software.OpenSubKey(SubKey, true);
- valueNames = aimdir.GetValueNames();
- foreach (string keyName in valueNames)
- {
- if (keyName == name)
- {
- _exit = true;
- return _exit;
- }
- }
- return _exit;
- }
- catch (Exception ex)
- {
- MessageBox.Show("IsRegeditExit:" + ex.ToString());
- return false;
- }
- }
- #endregion
- #region 判断文件路径
- /// <summary>
- /// 判断文件路径
- /// </summary>
- /// <param name="path"></param>
- /// <returns></returns>
- public bool CreateFile(string path)
- {
- Directory.CreateDirectory(path);
- return false;
- }
- #endregion
- #region 判断文件是否存在
- /// <summary>
- /// 判断文件是否存在
- /// </summary>
- /// <param name="path">文件路径</param>
- /// <returns></returns>
- public bool ExistsFile(string path)
- {
- try
- {
- if (File.Exists(path))
- {
- return true;
- }
- return false;
- }
- catch (Exception ex)
- {
- //记录日志文件
- log.Error(ex.Message.ToString());
- return false;
- }
- }
- #endregion
- private void OTSSystemManagerForms_FormClosing(object sender, FormClosingEventArgs e)
- {
- var m_SemHardwareMgr = SemController.GetSEMController();
- m_SemHardwareMgr.DisConnect();
- }
- private void lnklab_about_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- //打开关于窗体,显示版本号等信息
- About a = new About();
- a.ShowDialog();
- }
- private void rdb_ch_CheckedChanged(object sender, EventArgs e)
- {
- if (rdb_ch.Checked == true)
- {
- rdb_en.Checked = false;
- WriteDefaultLanguage("ZH");
- //国际化
- Language lan1 = new Language(this);
- }
- else
- {
- rdb_en.Checked = true;
- WriteDefaultLanguage("EN");
- //国际化
- Language lan1 = new Language(this);
- }
- }
- private void rdb_en_CheckedChanged(object sender, EventArgs e)
- {
- if (rdb_en.Checked == true)
- {
- rdb_ch.Checked = false;
- WriteDefaultLanguage("EN");
- //国际化
- Language lan1 = new Language(this);
- }
- else
- {
- rdb_ch.Checked = true;
- WriteDefaultLanguage("ZH");
- //国际化
- Language lan1 = new Language(this);
- }
- }
- private void rdb_ch_Click(object sender, EventArgs e)
- {
- rdb_en.Checked = false;
- WriteDefaultLanguage("ZH");
- //国际化
- Language lan1 = new Language(this);
- }
- private void rdb_en_Click(object sender, EventArgs e)
- {
- rdb_ch.Checked = false;
- WriteDefaultLanguage("EN");
- //国际化
- Language lan1 = new Language(this);
- }
- private void CmbSEMController_SelectedIndexChanged(object sender, EventArgs e)
- {
- SaveSEMAndEDSController();
- }
- private void CmbEDSController_SelectedIndexChanged(object sender, EventArgs e)
- {
- SaveSEMAndEDSController();
- }
-
- //修改默认语言
- public static void WriteDefaultLanguage(string lang)
- {
- DataSet ds = new DataSet();
- ds.ReadXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
- DataTable dt = ds.Tables["Language"];
- dt.Rows[0]["DefaultLanguage"] = lang;
- ds.AcceptChanges();
- ds.WriteXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
- }
- private void btn_ok_Click(object sender, EventArgs e)
- {
- //CopyConfigBySysType();
- }
- private void radioButton_IncA_CheckedChanged(object sender, EventArgs e)
- {
- bool r = radioButton_IncA.Checked;
- if (!ChangeSysType())
- {
- this.radioButton_IncA.CheckedChanged -= new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- radioButton_CleannessA.Checked = r;
- radioButton_IncA.Checked = !r;
- this.radioButton_IncA.CheckedChanged += new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- }
- }
- private void coB_CleannessType_SelectedIndexChanged(object sender, EventArgs e)
- {
- if(radioButton_CleannessA.Checked)
- {
- this.radioButton_IncA.CheckedChanged -= new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- ChangeSysType();
- this.radioButton_IncA.CheckedChanged += new System.EventHandler(this.radioButton_IncA_CheckedChanged);
- }
- }
- private void WriteSysType()
- {
- string path = Application.StartupPath + @"\Config\SysData\OTSProgMgrParam.pmf";
- string Type = "";
- if (radioButton_IncA.Checked)
- {
- Type = "IncA";
- }
- else if (radioButton_CleannessA.Checked)
- {
- if (coB_CleannessType.SelectedItem.ToString() == "TCCleannessA")
- {
- Type = "TCCleannessA";
- }
- else
- {
- Type = "BatteryCleannessA";
- }
- }
- bool result = XMLOperationClass.WriteSysType(path, "SysType", Type);
- string path2 = Application.StartupPath + @"\Config\SysData\OTSReportMgrParam.rpf";
- bool resultreport = XMLOperationClass.WriteSysType(path2, "systype", Type);
- }
- private void btn_otherconfig_Click(object sender, EventArgs e)
- {
- string filepath = @".\Config\ProData\HardwareConfig.xml";
- if(File.Exists(filepath))
- {
- System.Diagnostics.Process.Start("notepad.exe", filepath);
- }
- else
- {
- MessageBox.Show("File is lost!");
- }
- }
- }
- }
|