private void UpdateTelemetry(ITelemetry08 telemetry) { Parameter01Vm.UpdateTelemetry(telemetry?.Msw); Parameter02Vm.UpdateTelemetry(telemetry?.Asw); Parameter03Vm.CurrentValue = telemetry?.EngineState; Parameter04Vm.CurrentValue = telemetry?.FollowMsw; Parameter05Vm.CurrentValue = telemetry?.FollowAsw; Parameter06Vm.CurrentValue = telemetry?.FollowEngineState; }
public void InCycleAction() { var waiter = new ManualResetEvent(false); var cmd = new ReadTelemetry08Command(); _commandSenderHost.Sender.SendCommandAsync(_targerAddressHost.TargetAddress, cmd, TimeSpan.FromSeconds(0.1), 2, (exception, bytes) => { ITelemetry08 telemetry = null; try { if (exception != null) { throw new Exception("Произошла ошибка во время обмена", exception); } var result = cmd.GetResult(bytes); telemetry = result; } catch (Exception ex) { telemetry = null; //_logger.Log("Ошибка: " + ex.Message); //Console.WriteLine(ex); } finally { _uiRoot.Notifier.Notify(() => { //Console.WriteLine("UserInterface thread begin action ============================="); //Console.WriteLine("Now update telemetry Group03..."); // TODO: result update telemetry UpdateTelemetry(telemetry); //Console.WriteLine("Done"); //Console.WriteLine("UserInterface thread end action ==============================="); }); waiter.Set(); } }); waiter.WaitOne(); waiter.Reset(); }