/// <summary> /// 构造方法 /// </summary> /// <param name="config">配置值</param> internal SerialPortX(Dictionary <String, String> config) { // System.IO.Ports.SerialPort定义参数 // 串口名 serialPort.PortName = this.portName = DictionaryUtils.GetString(config, "PortName"); // 波特率 serialPort.BaudRate = Convert.ToInt32(DictionaryUtils.GetString(config, "BaudRate")); // 数据位 serialPort.DataBits = Convert.ToInt32(DictionaryUtils.GetString(config, "DataBits")); // 校验规则 String parity = DictionaryUtils.GetString(config, "Parity"); foreach (Parity PARITY in Enum.GetValues(typeof(Parity))) { if (Enum.GetName(typeof(Parity), PARITY).Equals(parity)) { serialPort.Parity = PARITY; } } // 停止位 String stopBits = DictionaryUtils.GetString(config, "StopBits"); foreach (StopBits STOP_BITS in Enum.GetValues(typeof(StopBits))) { if (Enum.GetName(typeof(StopBits), STOP_BITS).Equals(stopBits)) { serialPort.StopBits = STOP_BITS; } } // LichKin.IO.Ports.SerialPortX定义参数 // 设备ID this.sid = DictionaryUtils.GetString(config, "sid"); // 是否使用指令队列 this.useCMDQueue = "true".Equals(DictionaryUtils.GetString(config, "useCMDQueue")); // 验证打开状态间隔时间(毫秒) this.checkOpenStatusPeriod = Convert.ToInt32(DictionaryUtils.GetString(config, "checkOpenStatusPeriod")); // 打开后操作间隔时间(毫秒) this.afterOpenEventHandlerPeriod = Convert.ToInt32(DictionaryUtils.GetString(config, "afterOpenEventHandlerPeriod")); // 发送指令超时时长(毫秒) this.sendCMDTimeout = Convert.ToInt32(DictionaryUtils.GetString(config, "sendCMDTimeout")); // 接收数据超时时长(毫秒) this.reciveDataTimeout = Convert.ToInt32(DictionaryUtils.GetString(config, "reciveDataTimeout")); }
/// <summary> /// 使用配置文件初始化 /// </summary> private void initByConfigs() { try { Dictionary <String, String> config = JSONFileReader.Read(CONFIG_FILE_NAME); this.Text = RSAUtils.Decrypt(RSAUtils.PEM2XML(true, PRIMARY_KEY), DictionaryUtils.GetString(config, "Title", "LichKin")); webBrowser.Url = new Uri(RSAUtils.Decrypt(RSAUtils.PEM2XML(true, PRIMARY_KEY), DictionaryUtils.GetString(config, "Url", "http://www.lichkin.com/"))); this.Icon = System.Drawing.Icon.ExtractAssociatedIcon(ICON_FILE_NAME); } catch { MessageBox.Show("配置信息被篡改或已丢失,请联系管理员。", "程序即将退出"); Application.Exit(); } }