using System; namespace ArducopterConfigurator.PresentationModels { /// /// Vm for Altitude hold settings /// /// /// Todo: this one is weird because the APM sends and receives the values /// in a different order /// There is a unit test to cover it but it will need fixing. /// public class AltitudeHoldConfigVm : VmBase, IPresentationModel, ItalksToApm { public AltitudeHoldConfigVm() { PropsInUpdateOrder = new[] { "P", "I", "D", }; RefreshCommand = new DelegateCommand(_ => RefreshValues()); UpdateCommand = new DelegateCommand(_ => UpdateValues()); } public ICommand RefreshCommand { get; private set; } public ICommand UpdateCommand { get; private set; } public float P { get; set; } public float I { get; set; } public float D { get; set; } private void RefreshValues() { if (sendTextToApm != null) sendTextToApm(this, new sendTextToApmEventArgs("F")); } public void UpdateValues() { if (sendTextToApm != null) sendTextToApm(this, new sendTextToApmEventArgs(ComposePropsWithCommand("E"))); } public string Name { get { return "Altitude Hold"; } } public void Activate() { RefreshValues(); } public void DeActivate() { } public event EventHandler updatedByApm; public void handleLineOfText(string strRx) { PopulatePropsFromUpdate(strRx, true); } public event EventHandler sendTextToApm; } }