private void StateObserver_StateChanged(object sender, Events.StateChangedArgs e) { var group = this.repository.NewEntity <ObservationGroup>(this.session); this.repository.Insert(new StateObservation(group, e.State)); this.repository.Insert(new AirSpeedObservation(group, e.State)); this.repository.Insert(new AttitudeObservation(group, e.State)); this.repository.Insert(new BatteryObservation(group, e.State)); this.repository.Insert(new HobbsMeterObservation(group, e.State)); this.repository.Insert(new PositionObservation(group, e.State)); }
private void StateObserver_StateChanged(object sender, Events.StateChangedArgs e) { // state reporting interval is 5hz, so 25 should be once every 5 seconds if (_stateCount % 25 == 0) { Log.WriteLine($"state: {e.State}", ConsoleColor.Yellow); } _stateCount = _stateCount < Int32.MaxValue ? _stateCount + 1 : 0; var group = _repository.NewEntity <ObservationGroup>(_session); _repository.Insert(new StateObservation(group, e.State)); _repository.Insert(new AirSpeedObservation(group, e.State)); _repository.Insert(new AttitudeObservation(group, e.State)); _repository.Insert(new BatteryObservation(group, e.State)); _repository.Insert(new HobbsMeterObservation(group, e.State)); _repository.Insert(new PositionObservation(group, e.State)); }
private void StateChanged(object sender, Events.StateChangedArgs e) { // todo: this should be pushed directly to a queue to minimize time in method. the queue can be picked up by a processor that does what this method is currently doing. this.Dispatcher.Invoke( (state) => { this.State = state as ITelloState; this.StateHistory.Add(state as ITelloState); if (this.StateHistory.Count > 500) { this.StateHistory.RemoveAt(0); } }, e.State); var group = this.repository.NewEntity <ObservationGroup>(this.session); this.repository.Insert(new StateObservation(group, e.State)); this.repository.Insert(new AirSpeedObservation(group, e.State)); this.repository.Insert(new AttitudeObservation(group, e.State)); this.repository.Insert(new BatteryObservation(group, e.State)); this.repository.Insert(new HobbsMeterObservation(group, e.State)); this.repository.Insert(new PositionObservation(group, e.State)); }