static void Main(string[] args) { SetCurrentProcessExplicitAppUserModelID("PeerFinderApp"); if (args[0] == "host") { HostRole host = new HostRole(); host.Run(); return; } ClientRole client = new ClientRole(); client.Run(); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.I32) { this.type = (ListHostType)iprot.ReadI32(); this.__isset.type = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.I32) { this.role = (HostRole)iprot.ReadI32(); this.__isset.role = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public CalcController(ControllerParameters controllerParameters) { this.controllerRole = controllerParameters.ControllerRole; timer = new Stopwatch(); Uri url = UrlBuilder.Build(controllerParameters.OpcServerName); opcServer = new OpcDaServer(url); opcClient = new OpcClient(opcServer, controllerParameters.OpcServerSubstring); SingleTagsNamesForRW = controllerParameters.SingleTagNamesForRW; this.controllerParameters = controllerParameters; //Определение creator'ов для переменных //0.0. Single Tag for reading/writing to OPC singleTagCreator = new SingleTagCreator(opcClient, SingleTagsNamesForRW); //1.0. TemperatureCreator temperatureCreator = new TemperatureCreator(opcClient); //2.0. PressureCreator pressureCreator = new PressureCreator(opcClient); // levelCreator = new LevelCreator(opcClient); //3.0. CapacityCreator capacityCreator = new CapacityCreator(opcClient, singleTagCreator); //4.0. DensityCreator densityCreator = new DensityCreator(opcClient, singleTagCreator); //5.0. ContentCreator contentCreator = new ContentCreator(opcClient, singleTagCreator); //6.0. ContentCreator levelTankCreator = new LevelTankCreator(opcClient, singleTagCreator); //parameterClaculatedSucceedEvent += (o, ea) => CheckForItemInPlcForWritingToPLC(o, (CustomEventArgs)ea); //Запускаем процесс проверки изменения тега в PLC для определения разрешения записи данному экземпляру программы в PLC //Процесс непрерывно раз в 3 периода поллинга проверяет активность тега PLC Task.Run(() => CheckForItemInPlcForWritingToPLC()); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { this.hostAddr = new nebula.HostAddr(); this.hostAddr.Read(iprot); this.__isset.hostAddr = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.I32) { this.status = (HostStatus)iprot.ReadI32(); this.__isset.status = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 3: if (field.Type == TType.Map) { { this.leader_parts = new Dictionary <byte[], List <int> >(); TMap _map8 = iprot.ReadMapBegin(); for (int _i9 = 0; _i9 < _map8.Count; ++_i9) { byte[] _key10; List <int> _val11; _key10 = iprot.ReadBinary(); { _val11 = new List <int>(); TList _list12 = iprot.ReadListBegin(); for (int _i13 = 0; _i13 < _list12.Count; ++_i13) { int _elem14 = 0; _elem14 = iprot.ReadI32(); _val11.Add(_elem14); } iprot.ReadListEnd(); } this.leader_parts[_key10] = _val11; } iprot.ReadMapEnd(); } this.__isset.leader_parts = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 4: if (field.Type == TType.Map) { { this.all_parts = new Dictionary <byte[], List <int> >(); TMap _map15 = iprot.ReadMapBegin(); for (int _i16 = 0; _i16 < _map15.Count; ++_i16) { byte[] _key17; List <int> _val18; _key17 = iprot.ReadBinary(); { _val18 = new List <int>(); TList _list19 = iprot.ReadListBegin(); for (int _i20 = 0; _i20 < _list19.Count; ++_i20) { int _elem21 = 0; _elem21 = iprot.ReadI32(); _val18.Add(_elem21); } iprot.ReadListEnd(); } this.all_parts[_key17] = _val18; } iprot.ReadMapEnd(); } this.__isset.all_parts = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 5: if (field.Type == TType.I32) { this.role = (HostRole)iprot.ReadI32(); this.__isset.role = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 6: if (field.Type == TType.String) { this.git_info_sha = iprot.ReadBinary(); this.__isset.git_info_sha = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.I32) { this.role = (HostRole)iprot.ReadI32(); this.__isset.role = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.Struct) { this.host = new nebula.HostAddr(); this.host.Read(iprot); this.__isset.host = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 3: if (field.Type == TType.I64) { this.cluster_id = iprot.ReadI64(); this.__isset.cluster_id = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 4: if (field.Type == TType.Map) { { this.leader_partIds = new Dictionary <int, List <int> >(); TMap _map107 = iprot.ReadMapBegin(); for (int _i108 = 0; _i108 < _map107.Count; ++_i108) { int _key109; List <int> _val110; _key109 = iprot.ReadI32(); { _val110 = new List <int>(); TList _list111 = iprot.ReadListBegin(); for (int _i112 = 0; _i112 < _list111.Count; ++_i112) { int _elem113 = 0; _elem113 = iprot.ReadI32(); _val110.Add(_elem113); } iprot.ReadListEnd(); } this.leader_partIds[_key109] = _val110; } iprot.ReadMapEnd(); } this.__isset.leader_partIds = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 5: if (field.Type == TType.String) { this.git_info_sha = iprot.ReadBinary(); this.__isset.git_info_sha = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public MainWindow() { InitializeComponent(); ////Application Icon for tray. TrayMenu = Resources["TrayMenu"] as System.Windows.Controls.ContextMenu; ni = new NotifyIcon(); string path = AppDomain.CurrentDomain.BaseDirectory; ni.Icon = new System.Drawing.Icon(@"Source\Main.ico"); ni.Visible = true; ni.DoubleClick += delegate(object sender, EventArgs args) { if ((args as MouseEventArgs).Button == MouseButtons.Left) { // по левой кнопке показываем или прячем окно this.Show(); this.WindowState = WindowState.Normal; } }; ni.Click += delegate(object sender, EventArgs args) { if ((args as MouseEventArgs).Button == MouseButtons.Right) { // по правой кнопке (и всем остальным) показываем меню TrayMenu.IsOpen = true; Activate(); // нужно отдать окну фокус, см. ниже } }; //Creating User Interfaces opcSettingsUC = new OPCServerSettingsUC { isEnableWritingChecked = true }; dataAccessSettingsUC = new DataAccessSettingsUC(); parametersUC = new ParametersUC(); serverSynchronizationUC = new ServerSynchronizationUC(); logUC = new LogUC(); //При запуске приложения проверяется роль хоста (чтение IP из БД). Если при старте компьютера //приложение стучится к БД раньше, чем запустится SQL сервер, будет произведена попытка прочитать роль еще раз //(кол-во попыток - в теле конструкции 'for') Task.Run(() => { for (int i = 0; i < 5; i++) { controllerRole = DefineHostRole(); Dispatcher.Invoke(() => serverSynchronizationUC.ServerSyncRoleTextBox.Text = controllerRole.ToString()); if (controllerRole != HostRole.ERROR) { break; } WriteToLog("Attempt to define Server role. Reading from DataBase failed!"); Thread.Sleep(2000); } }).ContinueWith((o) => { //Создаем класс-контейнер для хранения параметров для передачи в контроллер перед началом расчетов controllerParameters = new ControllerParameters { isEnableWriting = opcSettingsUC.isEnableWritingChecked, ControllerRole = this.controllerRole, OpcServerName = Properties.Settings.Default.OPCServerName, OpcServerSubstring = Properties.Settings.Default.OPCServerSubString, SingleTagNamesForRW = serverSynchronizationUC.singleTagNamesForRW }; //Start Calculations after launching if (controllerRole != HostRole.ERROR) { Task.Run(async() => await StartOperation()); } else { WriteToLog("Невозможно определить хост-роль сервера"); } }); }