/// <summary> /// Отобразить форму модально /// </summary> public static bool ShowDialog(ServerComm serverComm, List<Config.ExportDestination> expDests, Config.ExportDestination selExpDest, ref int curDataCtrlCnlNum, ref int arcDataCtrlCnlNum, ref int eventsCtrlCnlNum) { FrmManualExport frmManualExport = new FrmManualExport(); frmManualExport.ServerComm = serverComm; // заполнение списка источников данных foreach (Config.ExportDestination expDest in expDests) { int ind = frmManualExport.cbDataSource.Items.Add(expDest.DataSource); if (expDest == selExpDest) frmManualExport.cbDataSource.SelectedIndex = ind; } // установка каналов управления frmManualExport.CurDataCtrlCnlNum = curDataCtrlCnlNum; frmManualExport.ArcDataCtrlCnlNum = arcDataCtrlCnlNum; frmManualExport.EventsCtrlCnlNum = eventsCtrlCnlNum; if (frmManualExport.ShowDialog() == DialogResult.OK) { // возврат каналов управления curDataCtrlCnlNum = frmManualExport.CurDataCtrlCnlNum; arcDataCtrlCnlNum = frmManualExport.ArcDataCtrlCnlNum; eventsCtrlCnlNum = frmManualExport.EventsCtrlCnlNum; return true; } else { return false; } }
/// <summary> /// Отобразить форму модально /// </summary> public static void ShowDialog(AppDirs appDirs, ServerComm serverComm) { FrmDBExportConfig frmDBExportConfig = new FrmDBExportConfig(); frmDBExportConfig.appDirs = appDirs; frmDBExportConfig.serverComm = serverComm; frmDBExportConfig.ShowDialog(); }
private void btnCommSettings_Click(object sender, EventArgs e) { // отображение формы настроек соединения if (FrmCommSettings.Show(commSettings) == DialogResult.OK) { serverComm = null; // для последующего повторного создания объекта string errMsg; // сохранение настроек соединения if (!commSettings.SaveToFile(configDir + CommSettings.DefFileName, out errMsg)) { errLog.WriteAction(errMsg); ScadaUtils.ShowError(errMsg); } } }
private ServiceController svcContr; // контроллер службы #endregion Fields #region Constructors /// <summary> /// Конструктор /// </summary> public FrmMain() { InitializeComponent(); // установка формата дат и времени элементов управления dtpSrezDate.CustomFormat = dtpEvDate1.CustomFormat = dtpEvDate2.CustomFormat = Localization.Culture.DateTimeFormat.ShortDatePattern; dtpSrezTime.CustomFormat = dtpEvTime.CustomFormat = Localization.Culture.DateTimeFormat.LongTimePattern; // инициализация полей exeDir = ""; configDir = ""; langDir = ""; logDir = ""; modDir = ""; errLog = new Log(Log.Formats.Simple); errLog.Encoding = Encoding.UTF8; mutex = null; svcContr = null; prevSvcStatus = ServiceControllerStatus.Stopped; notifyIcons = new Icon[ilNotify.Images.Count]; for (int i = 0; i < notifyIcons.Length; i++) notifyIcons[i] = Icon.FromHandle(((Bitmap)ilNotify.Images[i]).GetHicon()); notifyIconIndex = 0; stateFileName = ""; logFileName = ""; stateFileAge = DateTime.MinValue; logFileAge = DateTime.MinValue; nodeCommonParams = treeView.Nodes["nodeCommonParams"]; nodeSaveParams = treeView.Nodes["nodeSaveParams"]; nodeDirectories = treeView.Nodes["nodeDirectories"]; nodeFiles = treeView.Nodes["nodeFiles"]; nodeBase = nodeFiles.Nodes["nodeBase"]; nodeCurSrez = nodeFiles.Nodes["nodeCurSrez"]; nodeMinSrez = nodeFiles.Nodes["nodeMinSrez"]; nodeHrSrez = nodeFiles.Nodes["nodeHrSrez"]; nodeEvents = nodeFiles.Nodes["nodeEvents"]; nodeModules = treeView.Nodes["nodeModules"]; nodeGenerator = treeView.Nodes["nodeGenerator"]; nodeStats = treeView.Nodes["nodeStats"]; lastNode = null; settings = new Settings(); commSettings = new CommSettings(); serverComm = null; changing = false; modViewDict = new Dictionary<string, ModView>(); lastModView = null; }
/// <summary> /// Принять таблицы базы конфигурации от SCADA-Сервера /// </summary> private bool ReceiveBaseTables(out string errMsg) { CommSettings commSettings = new CommSettings(origSettings.Params.ServerHost, origSettings.Params.ServerPort, origSettings.Params.ServerUser, origSettings.Params.ServerPwd, origSettings.Params.ServerTimeout); if (serverComm == null || !serverComm.CommSettings.Equals(commSettings)) serverComm = new ServerComm(commSettings, (Log)null); if (serverComm.ReceiveBaseTable("commline.dat", tblCommLine) && serverComm.ReceiveBaseTable("kp.dat", tblKP) && serverComm.ReceiveBaseTable("kptype.dat", tblKPType)) { errMsg = ""; baseTablesReceived = true; } else { errMsg = serverComm.ErrMsg; if (errMsg == "") errMsg = AppPhrases.ReceiveBaseTableError; if (errMsg.Length > 0 && !errMsg.EndsWith(".")) errMsg += "."; baseTablesReceived = false; } return baseTablesReceived; }
private bool fullLoad2; // загружать 2-й журнал полностью /// <summary> /// Конструктор /// </summary> public FrmMain() { Application.EnableVisualStyles(); InitializeComponent(); // установка формата времени опроса КП timeKpTime.CustomFormat = Localization.Culture.DateTimeFormat.LongTimePattern; // установка имён столбцов списков для перевода формы colParamName.Name = "colParamName"; colParamValue.Name = "colParamValue"; colKpOrder.Name = "colKpOrder"; colKpActive.Name = "colKpActive"; colKpBind.Name = "colKpBind"; colKpNumber.Name = "colKpNumber"; colKpName.Name = "colKpName"; colKpDll.Name = "colKpDll"; colKpAddress.Name = "colKpAddress"; colCallNum.Name = "colCallNum"; colKpTimeout.Name = "colKpTimeout"; colKpDelay.Name = "colKpDelay"; colKpTime.Name = "colKpTime"; colKpPeriod.Name = "colKpPeriod"; colKpCmdLine.Name = "colKpCmdLine"; // инициализация полей appDirs = new AppDirs(); errLog = new Log(Log.Formats.Simple); errLog.Encoding = Encoding.UTF8; mutex = null; icoStart = Icon.FromHandle((ilMain.Images["star_on.ico"] as Bitmap).GetHicon()); icoStop = Icon.FromHandle((ilMain.Images["star_off.ico"] as Bitmap).GetHicon()); svcContr = null; prevSvcStatus = ServiceControllerStatus.Stopped; nodeCommonParams = treeView.Nodes["nodeCommonParams"]; nodeKpDlls = treeView.Nodes["nodeKpDlls"]; nodeLines = treeView.Nodes["nodeLines"]; nodeStats = treeView.Nodes["nodeStats"]; origSettings = new Settings(); modSettings = null; lastNode = null; lastLine = null; lastParam = null; lastParamItem = null; lastKP = null; lastKpItem = null; copiedKP = null; changing = false; serverComm = null; baseTablesReceived = false; tblCommLine = new DataTable(); tblKP = new DataTable(); tblKPType = new DataTable(); kpDllInfoList = new SortedList<string, KpDllInfo>(); commCnlParamsBuf = new Dictionary<string, SortedList<string, string>>(); lbLog1 = null; lbLog2 = null; logFileName1 = ""; logFileName2 = ""; logFileAge1 = DateTime.MinValue; logFileAge2 = DateTime.MinValue; fullLoad1 = false; fullLoad2 = false; Application.ThreadException += Application_ThreadException; }
/// <summary> /// �������� (�����������) ������ ��� ������ ������� �� SCADA-�������� /// ��� ��������� ����� �������� ���������� �� SCADA-�������� /// </summary> private void RefrServerComm() { if (settFileName != "") { DateTime dateTime = GetLastWriteTime(settFileName); if (dateTime > DateTime.MinValue && dateTime != settModTime) { settModTime = dateTime; CommSettings commSettings = new CommSettings(); commSettings.LoadFromFile(settFileName, AppData.Log); if (serverComm == null || !serverComm.CommSettings.Equals(commSettings)) { if (serverComm != null) { serverComm.Close(); tblCur = new SrezTableLight(); for (int i = 0; i < HourCacheSize; i++) hourTableCache[i] = null; for (int i = 0; i < EventCacheSize; i++) eventTableCache[i] = null; hourTableIndex = 0; eventTableIndex = 0; trend = null; baseModTime = DateTime.MinValue; baseFillTime = DateTime.MinValue; } serverComm = new ServerComm(commSettings); } } } }
private Trend trend; // ��������� ���������� �������� ����� #endregion Fields #region Constructors /// <summary> /// ����������� /// </summary> public MainData() { serverComm = null; settFileName = ""; settModTime = DateTime.MinValue; tblCur = new SrezTableLight(); hourTableCache = new SrezTableLight[HourCacheSize]; eventTableCache = new EventTableLight[EventCacheSize]; for (int i = 0; i < HourCacheSize; i++) hourTableCache[i] = null; for (int i = 0; i < EventCacheSize; i++) eventTableCache[i] = null; hourTableIndex = 0; eventTableIndex = 0; trend = null; nfi = new NumberFormatInfo(); defDecSep = Localization.Culture.NumberFormat.NumberDecimalSeparator; defGrSep = Localization.Culture.NumberFormat.NumberGroupSeparator; baseModTime = DateTime.MinValue; baseFillTime = DateTime.MinValue; tblInCnl = new DataTable("InCnl"); tblCtrlCnl = new DataTable("CtrlCnl"); tblObj = new DataTable("Obj"); tblKP = new DataTable("KP"); tblRole = new DataTable("Role"); tblUser = new DataTable("User"); tblInterface = new DataTable("Interface"); tblRight = new DataTable("Right"); tblEvType = new DataTable("EvType"); tblParam = new DataTable("Param"); tblUnit = new DataTable("Unit"); tblCmdVal = new DataTable("CmdVal"); tblFormat = new DataTable("Format"); baseTblArr = new DataTable[13]; baseTblArr[0] = tblInCnl; baseTblArr[1] = tblCtrlCnl; baseTblArr[2] = tblObj; baseTblArr[3] = tblKP; baseTblArr[4] = tblRole; baseTblArr[5] = tblUser; baseTblArr[6] = tblInterface; baseTblArr[7] = tblRight; baseTblArr[8] = tblEvType; baseTblArr[9] = tblParam; baseTblArr[10] = tblUnit; baseTblArr[11] = tblCmdVal; baseTblArr[12] = tblFormat; cnlPropsArr = null; maxCnlCnt = 0; refrLock = new Object(); baseLock = new Object(); cnlPropLock = new Object(); cnlDataLock = new Object(); eventLock = new Object(); }