private void btnExport_Click(object sender, EventArgs e) { // отправка команды экспорта int ctrlCnlNum; string cmdDataStr = cbDataSource.Text; if (sender == btnExportArcData) { ctrlCnlNum = ArcDataCtrlCnlNum; DateTime dateTime = dtpArcDataDate.Value.Date.Add(dtpArcDataTime.Value.TimeOfDay); cmdDataStr += "\n" + ScadaUtils.XmlValToStr(dateTime); } else if (sender == btnExportEvents) { ctrlCnlNum = EventsCtrlCnlNum; DateTime date = dtpEventsDate.Value.Date; cmdDataStr += "\n" + ScadaUtils.XmlValToStr(date); } else { ctrlCnlNum = CurDataCtrlCnlNum; } byte[] cmdData = Encoding.Default.GetBytes(cmdDataStr); if (ServerComm.SendBinaryCommand(0, ctrlCnlNum, cmdData, out bool result)) { ScadaUiUtils.ShowInfo(ModPhrases.CmdSentSuccessfully); } else { ScadaUiUtils.ShowError(ServerComm.ErrMsg); } }
/// <summary> /// Выполнить вход пользователя в систему /// </summary> /// <remarks>Если пароль равен null, то он не проверяется</remarks> public bool Login(string login, string password, out string errMsg) { login = login == null ? "" : login.Trim(); int roleID; if (AppData.MainData.CheckUser(login, password, password != null, out roleID, out errMsg)) { UserLogin = login; Role = ServerComm.GetRole(roleID); RoleID = roleID; RoleName = AppData.MainData.GetRoleName(RoleID); UserID = AppData.MainData.GetUserID(login); LoggedOn = true; LogOnDT = DateTime.Now; rightList = AppData.MainData.GetRightList(roleID); InitViewSetRightList(ViewSettings.ViewSetList); AppData.Log.WriteAction((password == null ? (Localization.UseRussian ? "Вход в систему без пароля: " : "Login without a password: "******"Вход в систему: " : "Login: "******" (" + RoleName + ")", Log.ActTypes.Action); return(true); } else { Logout(); string err = login == "" ? errMsg : login + " - " + errMsg; AppData.Log.WriteAction((Localization.UseRussian ? "Неудачная попытка входа в систему: " : "Unsuccessful login attempt: ") + err, Log.ActTypes.Error); return(false); } }
/// <summary> /// Конструктор /// </summary> public DataCache(ServerComm serverComm, Log log) { if (serverComm == null) { throw new ArgumentNullException("serverComm"); } if (log == null) { throw new ArgumentNullException("log"); } this.serverComm = serverComm; this.log = log; baseLock = new object(); curDataLock = new object(); baseRefrDT = DateTime.MinValue; tblCur = new SrezTableLight(); curDataRefrDT = DateTime.MinValue; BaseTables = new BaseTables(); CnlProps = new InCnlProps[0]; CtrlCnlProps = new CtrlCnlProps[0]; CnlStatProps = new SortedList <int, CnlStatProps>(); HourTableCache = new Cache <DateTime, SrezTableLight>(HourCacheStorePeriod, HourCacheCapacity); EventTableCache = new Cache <DateTime, EventTableLight>(EventCacheStorePeriod, EventCacheCapacity); }
/// <summary> /// Initializes the class. /// </summary> static TrendsController() { string path = AppDomain.CurrentDomain.BaseDirectory; string LogDir = path + "log" + Path.DirectorySeparatorChar; Log = new Log(Log.Formats.Simple) { Encoding = Encoding.UTF8 }; Log.FileName = LogDir + LogFileName; AppSettings appSettings = new AppSettings(); Log = new Log(Log.Formats.Simple) { Encoding = Encoding.UTF8 }; Log.FileName = LogDir + LogFileName; if (!appSettings.Load(out string errMsg)) { Log.WriteAction(errMsg, Log.ActTypes.Exception); } else { CommSettings settings = new CommSettings(appSettings.ServerHost, appSettings.ServerPort, appSettings.ServerUser, appSettings.ServerPwd, appSettings.ServerTimeout); serverComm = new ServerComm(settings, Log); dataCache = new DataCache(serverComm, Log); dataAccess = new DataAccess(dataCache, Log); } }
/// <summary> /// Конструктор /// </summary> public DataCache(ServerComm serverComm, Log log) { if (serverComm == null) { throw new ArgumentNullException("serverComm"); } if (log == null) { throw new ArgumentNullException("log"); } this.serverComm = serverComm; this.log = log; baseLock = new object(); curDataLock = new object(); baseRefrDT = DateTime.MinValue; baseAge = DateTime.MinValue; tblCur = new SrezTableLight(); curRefrDT = DateTime.MinValue; BaseTables = new BaseTables(); CnlProps = new InCnlProps[0]; CtrlCnlProps = new CtrlCnlProps[0]; }
/// <summary> /// Отобразить форму модально /// </summary> public static void ShowDialog(AppDirs appDirs, ServerComm serverComm) { FrmAlarmConfig frmAlarmConfig = new FrmAlarmConfig(); frmAlarmConfig.appDirs = appDirs; frmAlarmConfig.serverComm = serverComm; frmAlarmConfig.ShowDialog(); }
/// <summary> /// Создать объекты доступа к данным /// </summary> private void CreateDataObjects() { ServerComm = new ServerComm(WebSettings.CommSettings, Log); DataCache dataCache = new DataCache(ServerComm, Log); DataAccess = new DataAccess(dataCache, Log); ViewCache = new ViewCache(ServerComm, DataAccess, Log); }
/// <summary> /// Constructor /// </summary> public ViewCache(ServerComm serverComm, DataAccess dataAccess, Log log) { this.serverComm = serverComm ?? throw new ArgumentNullException(nameof(serverComm)); this.dataAccess = dataAccess ?? throw new ArgumentNullException(nameof(dataAccess)); this.log = log ?? throw new ArgumentNullException(nameof(log)); Cache = new Cache <int, BaseView>(StorePeriod, Capacity); }
/// <inheritdoc /> /// <summary> /// Initializes a new instance of the class. /// </summary> public FrmGenerator(Settings settings, ServerEnvironment environment) : this() { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.environment = environment ?? throw new ArgumentNullException(nameof(environment)); serverComm = null; frmGenCommand = null; }
/// <summary> /// Display the form modally /// </summary> public static void ShowDialog(AppDirs appDirs, ServerComm serverComm) { var frmDBExportConfig = new FrmDBExportConfig { appDirs = appDirs, serverComm = serverComm }; frmDBExportConfig.ShowDialog(); }
/// <summary> /// Initializes a new instance of the class. /// </summary> public FrmGenerator(Settings settings, ServerEnvironment environment) : this() { this.settings = settings ?? throw new ArgumentNullException("settings"); this.environment = environment ?? throw new ArgumentNullException("environment"); serverComm = null; frmGenData = null; frmGenEvent = null; frmGenCommand = null; }
void Awake() { s_instance = this; NetworkComm.s_connected_callback += OnServerConnectedCallback; NetworkComm.s_error_callback += OnErrorCallbackHandler; NetworkComm.s_data_callback += OnServerDataCallback; network_comm.Initialize(); }
/// <summary> /// Initializes the object to communicate with Server. /// </summary> private void InitServerComm() { serverComm = environment.GetServerComm(settings); if (serverComm == null) { gbGenerator.Enabled = false; pnlWarning.Visible = true; lblWarning.Text = ServerShellPhrases.SetProfile; } }
/// <summary> /// Initializes the object to communicate with Server. /// </summary> private void InitServerComm() { if (environment.AgentClient == null) { gbGenerator.Enabled = false; pnlProfileWarn.Visible = true; } else { CommSettings commSettings = environment.AgentClient.CreateCommSettings(); commSettings.ServerPort = settings.TcpPort; serverComm = new ServerComm(commSettings, new LogStub()); } }
/// <summary> /// Receives the configuration database subset from Server. /// </summary> private bool ReceiveConfigBase(out ConfigBaseSubset configBase) { configBase = new ConfigBaseSubset(); if (ServerComm.ReceiveBaseTable("incnl.dat", configBase.InCnlTable) && ServerComm.ReceiveBaseTable("kp.dat", configBase.KPTable)) { return(true); } else { configBase = null; return(false); } }
/// <summary> /// Отправить команду, получив её параметры из элементов управления /// </summary> private void SendCmd(int ctrlCnlNum, double cmdVal, byte[] cmdData) { bool sendOk; bool result; ServerComm serverComm = AppData.MainData.ServerComm; int userID = UserData.GetUserData().UserID; View activeView = mvCommand.Visible ? mvCommand.GetActiveView() : null; if (activeView == viewStandCmd1 || activeView == viewStandCmd1Simple || activeView == viewStandCmd2) { sendOk = serverComm.SendStandardCommand(userID, ctrlCnlNum, cmdVal, out result); } else if (activeView == viewBinCmd) { sendOk = serverComm.SendBinaryCommand(userID, ctrlCnlNum, cmdData, out result); } else { int kpNum; try { kpNum = (int)ViewState["KPNum"]; } catch { kpNum = 0; } sendOk = serverComm.SendRequestCommand(userID, ctrlCnlNum, kpNum, out result); } if (sendOk) { mvMain.SetActiveView(viewResult); if (result) { // добавление скрипта, чтобы закрыть окно команды при простой отправке if (activeView == viewStandCmd1Simple) { ClientScript.RegisterStartupScript(this.GetType(), "Startup", "window.close();", true); } } else { lblResultSuccessful.Visible = false; lblResultFailed.Visible = true; } } else { lblMessage.Text = string.Format(WebPhrases.ErrorFormat, WebPhrases.ServerUnavailable); lblMessage.Visible = true; } }
// Update is called once per frame // void Update () { // // } void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Egg") { GameObject player = other.GetComponent <EggCarry> ().playerObj; player.GetComponent <PlayerMove> ().MoveTo(toX, toY); // Camera.main.transform.position = new Vector3 (toX, toY, Camera.main.transform.position.z); if (player.GetComponent <PlayerHealth>().alive) { ServerComm serverComm = player.GetComponent <ServerComm> (); serverComm.RequestMap(); serverComm.MovePlayers(toX, toY); } Destroy(other.gameObject); } }
/// <summary> /// Принять таблицу входных каналов и таблицу КП от SCADA-Сервера /// </summary> private bool ReceiveBaseTables(out DataTable tblInCnl, out DataTable tblKP) { tblInCnl = new DataTable(); tblKP = new DataTable(); if (ServerComm.ReceiveBaseTable("incnl.dat", tblInCnl) && ServerComm.ReceiveBaseTable("kp.dat", tblKP)) { return(true); } else { tblInCnl = null; tblKP = null; return(false); } }
/// <summary> /// Проверить правильность имени и пароля пользователя /// </summary> public bool CheckUser(string username, string password, bool checkPassword, out int roleID, out string errMsg) { if (checkPassword && string.IsNullOrEmpty(password)) { roleID = BaseValues.Roles.Err; errMsg = WebPhrases.WrongPassword; return(false); } else { if (ServerComm.CheckUser(username, checkPassword ? password : null, out roleID)) { if (roleID == BaseValues.Roles.Disabled) { errMsg = CommonPhrases.NoRights; return(false); } else if (roleID == BaseValues.Roles.App) { errMsg = WebPhrases.IllegalRole; return(false); } else if (roleID == BaseValues.Roles.Err) { errMsg = WebPhrases.WrongPassword; return(false); } else { errMsg = ""; return(true); } } else { errMsg = WebPhrases.ServerUnavailable; return(false); } } }
/// <summary> /// Конструктор /// </summary> public ViewCache(ServerComm serverComm, DataAccess dataAccess, Log log) { if (serverComm == null) { throw new ArgumentNullException("serverComm"); } if (dataAccess == null) { throw new ArgumentNullException("dataAccess"); } if (log == null) { throw new ArgumentNullException("log"); } this.serverComm = serverComm; this.dataAccess = dataAccess; this.log = log; cache = new Cache <int, BaseView>(StorePeriod, Capacity); }
// Update is called once per frame // void Update () { // // } void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Player") { other.GetComponent <PlayerMove> ().MoveTo(toX, toY); // Camera.main.transform.position = new Vector3 (toX, toY, Camera.main.transform.position.z); if (isEnd && other.GetComponent <PlayerHealth> ().alive) { ServerComm serverComm = other.gameObject.GetComponent <ServerComm> (); serverComm.RequestMap(); serverComm.MovePlayers(toX, toY); } else { if (mapGen.gameMode == MapGen.GameMode.Steal) { notificationText.SetTimedNotice("Steal the egg!", Color.white, 3); } } } }
/// <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); } }
/************************************************************************/ /* server communication module */ private bool initServerComm() { sc = new ServerComm(conf.BasePath, conf.BaseUserPath); sc.MessageReceived += new MsgHandler(processServerResp); return true; }
// Use this for initialization void Start() { serv = GetComponent <ServerComm>(); }
public RGOClientManager() { InstanceCounter++; if (InstanceCounter > 1) { throw new Exception("Only one instance of the RGOclientManager may be created in this scope"); } SM.FirstAction = () => { //run the state machines of all clients for (int i = 0; i < RGOClientBase.AllClients.Count; i++) { RGOClientBase.AllClients[i].Run(); } }; SM.AddState(RGOStates.ConnectingToServer, new List <Transition> { new Transition("ServerConnected", () => ServerComm.ServerConnected, () => RGOClientDownloader.Connect(), RGOStates.DownloadingAllRGO), new Transition("ConnectionRejected", () => ServerComm.ConnectionRejected, () => log.Error("The connection was rejected by the server."), RGOStates.ConnectingToServer) }, () => ServerCommError = false, StateType.entry); SM.AddState(RGOStates.DownloadingAllRGO, new List <Transition> { new Transition("DownloadDone", () => RGOClientDownloader.RGODownloadDone == true, () => DSCClient.Connect(), RGOStates.DownloadingDSC), }, null, StateType.transition); SM.AddState(RGOStates.DownloadingDSC, new List <Transition> { new Transition("DescriptionsReceived", () => DSCClient.DSCsReceived == true, () => { log.Info("All RGO downloads done"); foreach (var C in RGOClientBase.AllClients) { C.Connect(); } }, RGOStates.Running), }, null, StateType.transition); SM.AddState(RGOStates.Running, new List <Transition> { new Transition("ServerCommDisconnected", () => ServerComm.ServerConnected == false, null, RGOStates.Disconnecting), new Transition("ServerCommErrorReported", () => ServerCommError == true, null, RGOStates.Disconnecting), }, null, StateType.idle); SM.AddState(RGOStates.Disconnecting, new List <Transition> { new Transition("AllClientsDisconnected", () => true, null, RGOStates.Disconnected), }, () => { foreach (var C in RGOClientBase.AllClients) { C.Disconnect(); } }, StateType.transition); SM.AddState(RGOStates.Disconnected, new List <Transition> { new Transition("Reconnect", () => Reconnect == true, () => { ServerComm.Connect(); } , RGOStates.ConnectingToServer) }, null, StateType.end); SM.Finalize(); }
// Use this for initialization void Start() { server = GetComponent<ServerComm>(); }
/// <summary> /// Остановить потоки линий связи и поток обмена данными со SCADA-Сервером /// </summary> private void StopThreads() { try { // остановка потока записи информации о работе приложения if (infoThread != null) { infoThread.Abort(); infoThread = null; } // остановка потока приёма команд if (commandReader != null) { commandReader.StopThread(); } if (linesStarted) { AppLog.WriteAction(Localization.UseRussian ? "Остановка линий связи" : "Stop communication lines", Log.ActTypes.Action); linesStarted = false; // далее lock (commLines) не требуется // выполнение команд завершения работы линий связи foreach (CommLine commLine in commLines) { commLine.Terminate(); } // ожидание завершения работы линий связи DateTime nowDT = DateTime.Now; DateTime t0 = nowDT; DateTime t1 = nowDT.AddMilliseconds(Settings.Params.WaitForStop); bool running; // есть линия связи, продолжающая работу do { running = false; foreach (CommLine commLine in commLines) { if (!commLine.Terminated) { running = true; Thread.Sleep(ScadaUtils.ThreadDelay); break; } } nowDT = DateTime.Now; }while (t0 <= nowDT && nowDT <= t1 && running); // прерывание работы линий связи if (running) { foreach (CommLine commLine in commLines) { commLine.Abort(); } } } // завершение работы со SCADA-Сервером if (ServerComm != null) { ServerComm.Close(); ServerComm = null; } // пауза для повышения вероятности полной остановки потоков Thread.Sleep(ScadaUtils.ThreadDelay); // запись информации о работе программы workState = WorkStateNames.Stopped; WriteInfo(); } catch (Exception ex) { AppLog.WriteAction((Localization.UseRussian ? "Ошибка при остановке линий связи: " : "Error stop communication lines: ") + ex.Message, Log.ActTypes.Exception); } }
public void StoreLocalPlayer(ServerComm comm) { localPlayerComm = comm; }
/// <summary> /// Initializes a new instance of the class. /// </summary> public FrmGenCommand(ServerComm serverComm, Log errLog) : this() { this.serverComm = serverComm ?? throw new ArgumentNullException("serverComm"); this.errLog = errLog ?? throw new ArgumentNullException("errLog"); }