/// <summary> /// 从自定义存储路径读取配置信息 /// </summary> /// <param name="path">存储配置信息路径</param> /// <returns>配置信息</returns> public static Configuration Read(string path) { string confStr = ""; Configuration conf = null; if (System.IO.File.Exists(path) == false) { return null; } // 读取配置信息 using (System.IO.StreamReader sr = new System.IO.StreamReader(path, defaultConfEncoding)) { try { confStr = sr.ReadToEnd(); // 解析得到配置信息 Dictionary<string, object> confInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(confStr); conf = new Configuration(confInfo); } catch (Exception ex) { throw ex; } } return conf; }
/// <summary> /// 存储配置信息到自定义路径 /// </summary> /// <param name="conf"></param> /// <param name="path">存储配置信息的路径</param> public static void Save(Configuration conf, string path) { // 构建配置信息的json字符串 string confStr = Newtonsoft.Json.JsonConvert.SerializeObject(conf.ConfigInfo); // 如果指定的配置路径不存在,则新建一个 if (System.IO.File.Exists(path) == false) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)); } // 保存配置信息 using (System.IO.StreamWriter sw = new System.IO.StreamWriter(path, false, defaultConfEncoding)) { try { sw.Write(confStr); } catch (Exception ex) { throw ex; } } }
/// <summary> /// 将波特率列表添加进去 /// </summary> /// <param name="conf"></param> private void AddBaudRate(Configuration conf) { conf.Add("baudRate", baudRateComboBox.Text); }
/// <summary> /// 存储配置信息到默认的路径中 /// </summary> /// <param name="conf"></param> public static void Save(Configuration conf) { Save(conf, defaultConfPath); }
// // 目前保存的配置信息如下: // 1. 波特率 // 2. 奇偶校验位 // 3. 数据位 // 4. 停止位 // 5. 字节编码 // 6. 发送区文本内容 // 7. 自动发送时间间隔 // 8. 窗口状态:最大化|高度+宽度 // 9. 面板显示状态 // 10. 接收数据模式 // 11. 是否显示接收数据 // 12. 发送数据模式 // 13. 发送追加内容 // /// <summary> /// 保存配置信息 /// </summary> private void SaveConfig() { // 配置对象实例 Configuration config = new Configuration(); // 保存波特率 AddBaudRate(config); // 保存奇偶校验位 config.Add("parity", parityComboBox.SelectedIndex); // 保存数据位 config.Add("dataBits", dataBitsComboBox.SelectedIndex); // 保存停止位 config.Add("stopBits", stopBitsComboBox.SelectedIndex); // 字节编码 config.Add("encoding", encodingComboBox.SelectedIndex); // 保存发送区文本内容 config.Add("sendDataTextBoxText", sendDataTextBox.Text); // 自动发送时间间隔 config.Add("autoSendDataInterval", autoSendIntervalTextBox.Text); config.Add("timeUnit", timeUnitComboBox.SelectedIndex); // 窗口状态信息 config.Add("maxmized", this.WindowState == WindowState.Maximized); config.Add("windowWidth", this.Width); config.Add("windowHeight", this.Height); config.Add("windowLeft", this.Left); config.Add("windowTop", this.Top); // 面板显示状态 config.Add("serialPortConfigPanelVisible", serialPortConfigPanel.Visibility == Visibility.Visible); config.Add("autoSendConfigPanelVisible", autoSendConfigPanel.Visibility == Visibility.Visible); config.Add("serialCommunicationConfigPanelVisible", serialCommunicationConfigPanel.Visibility == Visibility.Visible); // 保存接收模式 config.Add("receiveMode", receiveMode); config.Add("showReceiveData", showReceiveData); // 保存发送模式 config.Add("sendMode", sendMode); // 保存发送追加 config.Add("appendContent", appendContent); // 保存配置信息到磁盘中 Configuration.Save(config, @"Config\default.conf"); }