Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        /// <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;
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 将波特率列表添加进去
 /// </summary>
 /// <param name="conf"></param>
 private void AddBaudRate(Configuration conf)
 {
     conf.Add("baudRate", baudRateComboBox.Text);
 }
Esempio n. 4
0
 /// <summary>
 /// 存储配置信息到默认的路径中
 /// </summary>
 /// <param name="conf"></param>
 public static void Save(Configuration conf)
 {
     Save(conf, defaultConfPath);
 }
Esempio n. 5
0
        // 
        // 目前保存的配置信息如下:
        // 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");
        }