Beispiel #1
0
        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;
        }
Beispiel #2
0
        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();
        }