/// <summary> /// Attempts auto-detection of the currently installed Navio board. /// </summary> public void Detect() { // Detect model var model = NavioDeviceProvider.Detect(); if (model.HasValue && Board?.Model != model) { // Connect to hardware when found and not already connected Board = NavioDeviceProvider.Connect(model.Value); // Fire changed event DoPropertyChanged(nameof(Board)); } }
/// <summary> /// Creates an instance. /// </summary> public RcioTerminalApplicationUIModel(TaskFactory uiTaskFactory) : base(uiTaskFactory) { // Run on background thread (necessary for C++/WinRT hardware access) Task.Run(() => { // Ensure we are running on a Navio 2 if (NavioDeviceProvider.Detect() != NavioHardwareModel.Navio2) { throw new InvalidOperationException(Strings.UnsupportedModelError); } // Initialize RCIO Rcio = new Navio2RcioDevice(); }) .Wait(); }