/// <summary> /// 获取用户上次使用的分辨率 /// </summary> /// <returns></returns> public string GetLastCamera() { string Resolution = null; if (!File.Exists(_CameraHistoryRealPath)) { return(null); } //先解密这个文件 Base64Helper.Base64Decode4txtFile(_CameraHistoryRealPath); XmlTextReader reader = new XmlTextReader(_CameraHistoryRealPath); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "LastCamera") { Resolution = reader.ReadElementContentAsString(); } } } //关闭流 reader.Close(); reader = null; GC.Collect(); //重新加密这个文件 Base64Helper.Base64Encode4txtFile(_CameraHistoryRealPath); return(Resolution); }
/// <summary> /// 将配置集合持久化到配置文件中 /// </summary> /// <param name="settings">要保存的配置文件集合</param> private void FlushDataToXmlFile(List <VideoSettingEntity> settings) { #region 通过 XmlTextWriter将配置持久化到文件中 XmlTextWriter myXmlTextWriter = new XmlTextWriter(_VideoSettingRealPath, null); //使用 Formatting 属性指定希望将 XML 设定为何种格式。 这样,子元素就可以通过使用 Indentation 和 IndentChar 属性来缩进。 myXmlTextWriter.Formatting = Formatting.Indented; myXmlTextWriter.WriteStartDocument(true); myXmlTextWriter.WriteStartElement("LiveChartsMap"); myXmlTextWriter.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); myXmlTextWriter.WriteAttributeString("xmlns:xsd", "http://www.w3.org/2001/XMLSchema"); myXmlTextWriter.WriteStartElement("VideoSettings"); settings.ForEach(m => { myXmlTextWriter.WriteStartElement(nameof(VideoSettingEntity)); myXmlTextWriter.WriteElementString(nameof(m.VideoSettingName), m.VideoSettingName); myXmlTextWriter.WriteElementString(nameof(m.Brightness), m.Brightness.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoBrightness), Convert.ToInt32(m.AutoBrightness).ToString()); myXmlTextWriter.WriteElementString(nameof(m.ContrastRatio), m.ContrastRatio.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoContrastRatio), Convert.ToInt32(m.AutoContrastRatio).ToString()); myXmlTextWriter.WriteElementString(nameof(m.Saturation), m.Saturation.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoSaturation), Convert.ToInt32(m.AutoSaturation).ToString()); myXmlTextWriter.WriteElementString(nameof(m.Hue), m.Hue.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoHue), Convert.ToInt32(m.AutoHue).ToString()); myXmlTextWriter.WriteElementString(nameof(m.Sharpness), m.Sharpness.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoSharpness), Convert.ToInt32(m.AutoSharpness).ToString()); myXmlTextWriter.WriteElementString(nameof(m.Gamma), m.Gamma.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoGamma), Convert.ToInt32(m.AutoGamma).ToString()); myXmlTextWriter.WriteElementString(nameof(m.ColorEnable), Convert.ToInt32(m.ColorEnable).ToString()); myXmlTextWriter.WriteElementString(nameof(m.WhiteBalance), m.WhiteBalance.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoWhiteBalance), Convert.ToInt32(m.AutoWhiteBalance).ToString()); myXmlTextWriter.WriteElementString(nameof(m.BacklightCompensation), m.BacklightCompensation.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoBacklightCompensation), Convert.ToInt32(m.AutoBacklightCompensation).ToString()); myXmlTextWriter.WriteElementString(nameof(m.Gain), m.Gain.ToString()); myXmlTextWriter.WriteElementString(nameof(m.AutoGain), Convert.ToInt32(m.AutoGain).ToString()); myXmlTextWriter.WriteElementString(nameof(m.DefaultSetting), Convert.ToInt32(m.DefaultSetting).ToString()); myXmlTextWriter.WriteEndElement(); }); myXmlTextWriter.WriteEndElement(); myXmlTextWriter.WriteEndElement(); myXmlTextWriter.Flush(); myXmlTextWriter.Close(); myXmlTextWriter = null; GC.Collect(); #endregion //重新加密这个文件 Base64Helper.Base64Encode4txtFile(_VideoSettingRealPath); }
/// <summary> /// 获取用户上次使用的分辨率 /// </summary> /// <returns></returns> public void SetLastCamera(string CameraName) { XmlTextWriter myXmlTextWriter = new XmlTextWriter(_CameraHistoryRealPath, null); //使用 Formatting 属性指定希望将 XML 设定为何种格式。 这样,子元素就可以通过使用 Indentation 和 IndentChar 属性来缩进。 myXmlTextWriter.Formatting = Formatting.Indented; myXmlTextWriter.WriteStartDocument(true); myXmlTextWriter.WriteStartElement("ResolutionCfg"); myXmlTextWriter.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); myXmlTextWriter.WriteAttributeString("xmlns:xsd", "http://www.w3.org/2001/XMLSchema"); myXmlTextWriter.WriteElementString("LastCamera", CameraName); myXmlTextWriter.WriteEndElement(); myXmlTextWriter.Flush(); myXmlTextWriter.Close(); myXmlTextWriter = null; GC.Collect(); //TODO 加密这个文件 Base64Helper.Base64Encode4txtFile(_CameraHistoryRealPath); }
/// <summary> /// 获取当前用户保存的所有摄像头设置 /// </summary> /// <returns>当前用户保存的所有摄像头设置</returns> public List <VideoSettingEntity> GetAllVideoSettings() { List <VideoSettingEntity> result = new List <VideoSettingEntity>(); #region 读取文件 if (!File.Exists(_VideoSettingRealPath)) { return(null); } //先解密这个文件 Base64Helper.Base64Decode4txtFile(_VideoSettingRealPath); XmlTextReader reader = new XmlTextReader(_VideoSettingRealPath); VideoSettingEntity setting = null; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == nameof(VideoSettingEntity)) { setting = new VideoSettingEntity(); result.Add(setting); } if (reader.Name == nameof(setting.VideoSettingName)) { setting.VideoSettingName = reader.ReadElementContentAsString(); } else if (reader.Name == nameof(setting.Brightness)) { if (setting != null) { setting.Brightness = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoBrightness)) { if (setting != null) { setting.AutoBrightness = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.ContrastRatio)) { if (setting != null) { setting.ContrastRatio = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoContrastRatio)) { if (setting != null) { setting.AutoContrastRatio = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.Saturation)) { if (setting != null) { setting.Saturation = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoSaturation)) { if (setting != null) { setting.AutoSaturation = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.DefaultSetting)) { if (setting != null) { setting.DefaultSetting = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.Hue)) { if (setting != null) { setting.Hue = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoHue)) { if (setting != null) { setting.AutoHue = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.Sharpness)) { if (setting != null) { setting.Sharpness = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoSharpness)) { if (setting != null) { setting.AutoSharpness = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.Gamma)) { if (setting != null) { setting.Gamma = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoGamma)) { if (setting != null) { setting.AutoGamma = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.ColorEnable)) { if (setting != null) { setting.ColorEnable = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.WhiteBalance)) { if (setting != null) { setting.WhiteBalance = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoWhiteBalance)) { if (setting != null) { setting.AutoWhiteBalance = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.BacklightCompensation)) { if (setting != null) { setting.BacklightCompensation = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoBacklightCompensation)) { if (setting != null) { setting.AutoBacklightCompensation = reader.ReadElementContentAsBoolean(); } } else if (reader.Name == nameof(setting.Gain)) { if (setting != null) { setting.Gain = reader.ReadElementContentAsInt(); } } else if (reader.Name == nameof(setting.AutoGain)) { if (setting != null) { setting.AutoGain = reader.ReadElementContentAsBoolean(); } } } } //关闭流 reader.Close(); reader = null; GC.Collect(); #endregion //重新加密这个文件 Base64Helper.Base64Encode4txtFile(_VideoSettingRealPath); return(result); }