/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException(nameof(xmlElem)); } xmlElem.AppendElem("Name", Name); xmlElem.AppendElem("Server", Server); xmlElem.AppendElem("Database", Database); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); xmlElem.AppendElem("ConnectionString", ConnectionString); }
private void btnWebDir_Click(object sender, EventArgs e) { // выбор директории веб-приложения folderBrowserDialog.SelectedPath = txtWebDir.Text.Trim(); folderBrowserDialog.Description = AppPhrases.ChooseWebDir; if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { txtWebDir.Text = ScadaUtils.NormalDir(folderBrowserDialog.SelectedPath); } txtWebDir.Focus(); txtWebDir.DeselectAll(); }
/// <summary> /// Saves the project to the specified file. /// </summary> public bool Save(string fileName, out string errMsg) { try { Save(fileName); errMsg = ""; return(true); } catch (Exception ex) { errMsg = ScadaUtils.BuildErrorMessage(ex, AdminPhrases.SaveProjectError); return(false); } }
private void btnSave_Click(object sender, EventArgs e) { // сохранение телефонного справочника string errMsg; if (phonebook.Save(appDirs.ConfigDir + Phonebook.DefFileName, out errMsg)) { Modified = false; } else { ScadaUtils.ShowError(errMsg); } }
/// <summary> /// Loads the options from the XML node. /// </summary> public void LoadFromXml(XmlNode xmlNode) { if (xmlNode == null) { throw new ArgumentNullException(nameof(xmlNode)); } Name = xmlNode.GetChildAsString("Name"); Server = xmlNode.GetChildAsString("Server"); Database = xmlNode.GetChildAsString("Database"); Username = xmlNode.GetChildAsString("Username"); Password = ScadaUtils.Decrypt(xmlNode.GetChildAsString("Password")); ConnectionString = xmlNode.GetChildAsString("ConnectionString"); }
/// <summary> /// Writes the field definintion using the specified writer. /// </summary> protected void WriteFieldDef(BinaryWriter writer, FieldDef fieldDef, byte[] buffer) { Array.Clear(buffer, 0, FieldDefSize); int nameLength = fieldDef.Name.Length; buffer[0] = (byte)nameLength; Encoding.ASCII.GetBytes(fieldDef.Name).CopyTo(buffer, 1); buffer[MaxFieldNameLength + 1] = (byte)fieldDef.DataType; buffer[MaxFieldNameLength + 2] = (byte)(fieldDef.AllowNull ? 1 : 0); ushort crc = ScadaUtils.CRC16(buffer, 0, FieldDefSize - 2); CopyUInt16(crc, buffer, FieldDefSize - 2); writer.Write(buffer, 0, FieldDefSize); }
/// <summary> /// Saves the options into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } xmlElem.AppendElem("ServerUrl", ServerUrl); xmlElem.AppendElem("SecurityMode", SecurityMode); xmlElem.AppendElem("SecurityPolicy", SecurityPolicy); xmlElem.AppendElem("AuthenticationMode", AuthenticationMode); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); }
private List <ActiveCnlList> ActiveCnl = new List <ActiveCnlList>(); // Создание списка Активных сигналов, где ActiveCnl.Cnl - номер сигнала, ActiveCnl.Name - Имя сигнала, // ActiveCnl.Fotmat - Тип активной переменной, ActiveCnl.IdxTag индекс сигнала в KPTags, ActiveCnl.IdxValue - Индекс группы, // в которую входит сигнал, ActiveCnl.MenuName - Имя меню, которому принадлежит сигнал /// <summary> /// Преобразовать данные тега КП в строку /// </summary> protected override string ConvertTagDataToStr(int signal, SrezTableLight.CnlData tagData) // Необходимо продумать как передать сюда список типов переменных - текст, время, цифровое и т.д. { string strval = ""; bool readstr = myTagId.TryGetValue(signal, out strval); // Чтение типа переменной, привязанной к сигналу if (tagData.Stat > 0) { if (strval == "DateTime") // Проверка сигнала на тип данных Время для отображения в текстовом виде в таблице Коммуникатора { return(ScadaUtils.DecodeDateTime(tagData.Val).ToString()); } } return(base.ConvertTagDataToStr(signal, tagData)); }
/// <summary> /// Saves the settings into the XML node. /// </summary> public void SaveToXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException("xmlElem"); } xmlElem.AppendElem("Host", Host); xmlElem.AppendElem("Port", Port); xmlElem.AppendElem("Username", Username); xmlElem.AppendElem("Password", ScadaUtils.Encrypt(Password)); xmlElem.AppendElem("ScadaInstance", ScadaInstance); xmlElem.AppendElem("SecretKey", ScadaUtils.BytesToHex(SecretKey)); }
private void miDbBackup_Click(object sender, EventArgs e) { // резервное копирование файла базы конфигурации string msg; if (ImportExport.BackupSDF(settings.AppSett.BaseSDFFile, settings.AppSett.BackupDir, out msg)) { ScadaUtils.ShowInfo(msg); } else { AppUtils.ProcError(msg); } }
/// <summary> /// Loads the options from the XML node. /// </summary> public void LoadFromXml(XmlNode xmlNode) { if (xmlNode == null) { throw new ArgumentNullException("xmlNode"); } ServerUrl = xmlNode.GetChildAsString("ServerUrl"); SecurityMode = xmlNode.GetChildAsEnum("SecurityMode", MessageSecurityMode.None); SecurityPolicy = xmlNode.GetChildAsEnum <SecurityPolicy>("SecurityPolicy"); AuthenticationMode = xmlNode.GetChildAsEnum <AuthenticationMode>("AuthenticationMode"); Username = xmlNode.GetChildAsString("Username"); Password = ScadaUtils.Decrypt(xmlNode.GetChildAsString("Password")); }
/// <summary> /// Loads the configuration from the XML node. /// </summary> public void LoadFromXml(XmlElement xmlElem) { if (xmlElem == null) { throw new ArgumentNullException(nameof(xmlElem)); } Active = xmlElem.GetAttrAsBool("active"); Code = xmlElem.GetAttrAsString("code"); Name = xmlElem.GetAttrAsString("name"); Kind = xmlElem.GetAttrAsEnum("kind", ArchiveKind.Unspecified); Module = ScadaUtils.RemoveFileNameSuffixes(xmlElem.GetAttrAsString("module")); CustomOptions.LoadFromXml(xmlElem); }
private void btnRefresh_Click(object sender, EventArgs e) { // перезагрузка таблицы DataTable newDataTable = new DataTable(); if (LoadDataTable(baseAdapter, errLog, ref newDataTable)) { dataTable = newDataTable; try { dataTable.DefaultView.RowFilter = txtFilter.Text; } catch { txtFilter.Text = ""; } bindingSource.DataSource = dataTable; ScadaUtils.AutoResizeColumns(dataGridView); } }
private void miDbBackup_Click(object sender, EventArgs e) { // резервное копирование файла базы конфигурации try { string workFileName = settings.AppSett.BaseSDFFile; string backupDir = settings.AppSett.BackupDir; if (File.Exists(workFileName)) { if (Directory.Exists(backupDir)) { bool wasConnected = AppData.Connected; string backupFileName = backupDir + Path.GetFileNameWithoutExtension(workFileName) + DateTime.Now.ToString(" yyyy-MM-dd HH-mm-ss") + ".sdf"; try { if (wasConnected) { AppData.Conn.Close(); // для сохранения изменений } File.Copy(workFileName, backupFileName, true); } finally { if (wasConnected) { AppData.Conn.Open(); } } ScadaUtils.ShowInfo(string.Format(AppPhrases.BackupCompleted, backupFileName)); } else { ScadaUtils.ShowError(AppPhrases.BackupDirNotExists); } } else { ScadaUtils.ShowError(AppPhrases.BaseSDFFileNotExists); } } catch (Exception ex) { AppUtils.ProcError(AppPhrases.BackupError + ":\r\n" + ex.Message); } }
/// <summary> /// Загрузить настройки приложения из файла /// </summary> public bool Load(string fileName, out string errMsg) { // установка значений по умолчанию SetToDefault(); // загрузка настроек try { if (!File.Exists(fileName)) { throw new FileNotFoundException(string.Format(CommonPhrases.NamedFileNotFound, fileName)); } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNodeList paramNodes = xmlDoc.DocumentElement.SelectNodes("Param"); foreach (XmlElement paramElem in paramNodes) { string name = paramElem.GetAttribute("name"); string nameL = name.ToLowerInvariant(); string val = paramElem.GetAttribute("value"); try { if (nameL == "webdir") { WebDir = ScadaUtils.NormalDir(val); } else if (nameL == "browser") { Browser = (Browsers)Enum.Parse(typeof(Browsers), val, true); } } catch { throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name)); } } errMsg = ""; return(true); } catch (Exception ex) { errMsg = CommonPhrases.LoadAppSettingsError + ":" + Environment.NewLine + ex.Message; return(false); } }
private void btnUp_Click(object sender, EventArgs e) { // перемещение набора или представления вверх if (selViewSet == null && selViewInfo == null) { ScadaUtils.ShowError(AppPhrases.ChooseViewToMove); } else { if (selViewInfo == null) { // перемещение набора представлений int ind = viewSettings.ViewSetList.IndexOf(selViewSet); if (ind > 0) { viewSettings.ViewSetList.Reverse(ind - 1, 2); TreeNode node = tvTableSets.Nodes[ind]; tvTableSets.BeginUpdate(); tvTableSets.Nodes.RemoveAt(ind); tvTableSets.Nodes.Insert(ind - 1, node); tvTableSets.EndUpdate(); tvTableSets.SelectedNode = node; } } else { // перемещение представления int viewInd = selViewSet.Items.IndexOf(selViewInfo); if (viewInd > 0) { selViewSet.Items.Reverse(viewInd - 1, 2); int tableSetInd = viewSettings.ViewSetList.IndexOf(selViewSet); TreeNode nodeTableSet = tvTableSets.Nodes[tableSetInd]; TreeNode nodeTable = nodeTableSet.Nodes[viewInd]; tvTableSets.BeginUpdate(); nodeTableSet.Nodes.RemoveAt(viewInd); nodeTableSet.Nodes.Insert(viewInd - 1, nodeTable); tvTableSets.EndUpdate(); tvTableSets.SelectedNode = nodeTable; } } viewSets_Changed(); } }
private void FrmAbout_Load(object sender, EventArgs e) { // инициализация формы if (!inited) { inited = true; // настройка элементов управления в зависимости от локализации PictureBox activePictureBox; if (Localization.UseRussian) { activePictureBox = pbAboutRu; pbAboutEn.Visible = false; lblVersionEn.Visible = false; lblVersionRu.Text = "Версия " + Version; } else { activePictureBox = pbAboutEn; pbAboutRu.Visible = false; lblVersionRu.Visible = false; lblVersionEn.Text = "Version " + Version; } // изменение родительских элементов для работы прозрачности lblWebsite.Parent = activePictureBox; lblVersionRu.Parent = pbAboutRu; lblVersionEn.Parent = pbAboutEn; // загрузка изображения и гиперссылки из файлов, если они существуют bool imgLoaded; string errMsg; if (ScadaUtils.LoadAboutForm(exeDir, this, activePictureBox, lblWebsite, out imgLoaded, out linkUrl, out errMsg)) { if (imgLoaded) { lblVersionRu.Visible = false; lblVersionEn.Visible = false; } } else { errLog.WriteAction(errMsg); ScadaUtils.ShowError(errMsg); } } }
/// <summary> /// Загрузить конфигурацию компонента из XML-узла /// </summary> public override void LoadFromXml(XmlNode xmlNode) { base.LoadFromXml(xmlNode); BackColorOnHover = xmlNode.GetChildAsString("BackColorOnHover"); BorderColorOnHover = xmlNode.GetChildAsString("BorderColorOnHover"); ForeColorOnHover = xmlNode.GetChildAsString("ForeColorOnHover"); UnderlineOnHover = xmlNode.GetChildAsBool("UnderlineOnHover"); CnlNums.Clear(); CnlNums.AddRange(ScadaUtils.ParseIntArray(xmlNode.GetChildAsString("CnlNums"))); PopupSize = PopupSize.GetChildAsSize(xmlNode, "PopupSize"); Target = xmlNode.GetChildAsEnum <LinkTarget>("Target"); Url = xmlNode.GetChildAsString("Url"); ViewID = xmlNode.GetChildAsInt("ViewID"); }
private void FrmMain_Shown(object sender, EventArgs e) { string errMsg; bool success = settings.LoadAppSettings(out errMsg); lblBaseSdfFile.Text = settings.AppSett.BaseSDFFile; if (success) { Connect(true); } else { ScadaUtils.ShowError(errMsg); } }
/// <summary> /// Sets the entity properties according to the controls. /// </summary> private void ControlsToEntity() { LimEntity = new Lim { LimID = Convert.ToInt32(numLimID.Value), Name = txtName.Text, IsBoundToCnl = chkIsBoundToCnl.Checked, IsShared = chkIsShared.Checked, LoLo = txtLoLo.Text == "" ? null : ScadaUtils.ParseDouble(txtLoLo.Text), Low = txtLow.Text == "" ? null : ScadaUtils.ParseDouble(txtLow.Text), High = txtHigh.Text == "" ? null : ScadaUtils.ParseDouble(txtHigh.Text), HiHi = txtHiHi.Text == "" ? null : ScadaUtils.ParseDouble(txtHiHi.Text), Deadband = txtDeadband.Text == "" ? null : ScadaUtils.ParseDouble(txtDeadband.Text) }; }
/// <summary> /// Loads the configuration from the specified reader. /// </summary> protected override void Load(TextReader reader) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(reader); XmlElement rootElem = xmlDoc.DocumentElement; Host = rootElem.GetChildAsString("Host"); Port = rootElem.GetChildAsInt("Port"); Username = rootElem.GetChildAsString("Username", rootElem.GetChildAsString("User")); Password = ScadaUtils.Decrypt(rootElem.GetChildAsString("Password")); EnableSsl = rootElem.GetChildAsBool("EnableSsl"); SenderAddress = rootElem.GetChildAsString("SenderAddress", Username); SenderDisplayName = rootElem.GetChildAsString("SenderDisplayName"); }
/// <summary> /// Загрузить настройки из XML-узла /// </summary> public void LoadFromXml(XmlNode xmlNode) { if (xmlNode == null) { throw new ArgumentNullException("xmlNode"); } Name = xmlNode.GetChildAsString("Name"); Host = xmlNode.GetChildAsString("Host"); Port = xmlNode.GetChildAsInt("Port", 10002); Username = xmlNode.GetChildAsString("Username", "admin"); Password = xmlNode.GetChildAsString("Password"); ScadaInstance = xmlNode.GetChildAsString("ScadaInstance"); SecretKey = ScadaUtils.HexToBytes(xmlNode.GetChildAsString("SecretKey")); }
public XElement Decrypt(XElement encryptedElement) { ArgumentNullException.ThrowIfNull(encryptedElement, nameof(encryptedElement)); try { string decryptedValue = ScadaUtils.Decrypt(encryptedElement.Value); return(XElement.Parse(decryptedValue)); } catch (Exception ex) { log.WriteError(ex); throw; } }
private void txtFilter_KeyDown(object sender, KeyEventArgs e) { // установка фильтра таблицы if (e.KeyCode == Keys.Enter) { try { dataTable.DefaultView.RowFilter = txtFilter.Text; } catch { ScadaUtils.ShowError(AppPhrases.IncorrectFilter); } } }
private void btnSelectObj_Click(object sender, EventArgs e) { // show a dialog to select objects if (configDatabase != null) { ScadaUtils.ParseRange(txtObjFilter.Text, true, false, out IList <int> objNums); FrmEntitySelect frmEntitySelect = new(configDatabase.ObjTable) { SelectedIDs = objNums }; if (frmEntitySelect.ShowDialog() == DialogResult.OK) { txtObjFilter.Text = frmEntitySelect.SelectedIDs.ToRangeString(); } } } }
/// <summary> /// Setup the controls according to the settings. /// </summary> private void SettingsToControls() { if (Profile != null) { txtProfileName.Text = Profile.Name; txtWebUrl.Text = Profile.WebUrl; ConnectionSettings connSettings = Profile.ConnectionSettings; txtHost.Text = connSettings.Host; numPort.SetValue(connSettings.Port); txtUsername.Text = connSettings.Username; txtPassword.Text = connSettings.Password; txtSecretKey.Text = ScadaUtils.BytesToHex(connSettings.SecretKey); } }
/// <summary> /// Sets the settings according to the controls. /// </summary> private void ControlsToSettings() { if (Profile != null) { Profile.Name = txtProfileName.Text.Trim(); Profile.WebUrl = txtWebUrl.Text.Trim(); ConnectionSettings connSettings = Profile.ConnectionSettings; connSettings.Host = txtHost.Text.Trim(); connSettings.Port = (int)numPort.Value; connSettings.Username = txtUsername.Text.Trim(); connSettings.Password = txtPassword.Text; connSettings.SecretKey = ScadaUtils.HexToBytes(txtSecretKey.Text.Trim()); } }
/// <summary> /// Adds the options to the list. /// </summary> public void AddToOptionList(OptionList options, bool clearList = true) { if (clearList) { options.Clear(); } options["Server"] = Server; options["Port"] = Port.ToString(); options["ClientID"] = ClientID; options["Username"] = Username; options["Password"] = ScadaUtils.Encrypt(Password); options["Timeout"] = Timeout.ToString(); options["ProtocolVersion"] = ProtocolVersion.ToString(); }
/// <summary> /// Validates the form fields. /// </summary> private bool ValidateFields() { StringBuilder sbError = new StringBuilder(); if (string.IsNullOrWhiteSpace(txtProfileName.Text)) { sbError.AppendError(lblProfileName, CommonPhrases.NonemptyRequired); } if (!string.IsNullOrWhiteSpace(txtWebUrl.Text) && !ScadaUtils.IsValidUrl(txtWebUrl.Text)) { sbError.AppendError(lblWebUrl, AppPhrases.ValidUrlRequired); } if (string.IsNullOrWhiteSpace(txtHost.Text)) { sbError.AppendError(lblHost, CommonPhrases.NonemptyRequired); } if (string.IsNullOrWhiteSpace(txtUsername.Text)) { sbError.AppendError(lblUsername, CommonPhrases.NonemptyRequired); } if (string.IsNullOrWhiteSpace(txtPassword.Text)) { sbError.AppendError(lblPassword, CommonPhrases.NonemptyRequired); } if (string.IsNullOrWhiteSpace(txtSecretKey.Text)) { sbError.AppendError(lblSecretKey, CommonPhrases.NonemptyRequired); } if (sbError.Length > 0) { sbError.Insert(0, AppPhrases.CorrectErrors + Environment.NewLine); ScadaUiUtils.ShowError(sbError.ToString()); return(false); } if (ExistingProfileNames != null && ExistingProfileNames.Contains(txtProfileName.Text.Trim())) { ScadaUiUtils.ShowError(AppPhrases.ProfileNameDuplicated); return(false); } if (!ScadaUtils.HexToBytes(txtSecretKey.Text.Trim(), out byte[] bytes))
/// <summary> /// Performs actions before polling the specified device. /// </summary> public override void BeforeSession(DeviceLogic deviceLogic) { currentConn = deviceLogic.Connection as TcpConnection; if (currentConn != null) { if (Behavior == ChannelBehavior.Slave) { Monitor.Enter(currentConn.SyncRoot); } // connect if disconnected if (!currentConn.Connected) { // get host and port string host; int port; if (currentConn == sharedConn) { host = options.Host; port = options.TcpPort; } else if (currentConn.RemotePort > 0) { host = currentConn.RemoteAddress; port = currentConn.RemotePort; } else { ScadaUtils.RetrieveHostAndPort(deviceLogic.StrAddress, options.TcpPort, out host, out port); } // connect Log.WriteLine(); Log.WriteAction(Locale.IsRussian ? "Соединение с {0}:{1}" : "Connect to {0}:{1}", host, port); if (currentConn.NetStream != null) // connection was already open but broken { currentConn.Renew(); } currentConn.Open(host, port); } } }