Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
 /// <summary>
 /// Отобразить форму модально
 /// </summary>
 public static void ShowDialog(AppDirs appDirs, ServerComm serverComm)
 {
     FrmDBExportConfig frmDBExportConfig = new FrmDBExportConfig();
     frmDBExportConfig.appDirs = appDirs;
     frmDBExportConfig.serverComm = serverComm;
     frmDBExportConfig.ShowDialog();
 }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #4
0
        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;
        }
Beispiel #5
0
        /// <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;
        }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        /// <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);
                    }
                }
            }
        }
Beispiel #8
0
        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();
        }