/// <summary> /// Read a specified navigation value /// </summary> /// <param name="value">Navigation value to read</param> /// <returns>true if the operation succeeded, false otherwise</returns> public async Task <ReadNavigationValueResult> ReadNavigationValue(NavigationValue value) { ReadNavigationValueResult ret = new ReadNavigationValueResult(); // List characteristics ret.Success = await InitCharacteristics(); if (ret.Success) { // Look for the selected characteristic BleValue val = new BleValue(); BleGattCharacteristic nav_characteristic = _navigation_characteristics[value]; ret.Success = await BleDevice.ReadValueAsync(nav_characteristic, val); if (ret.Success) { switch (value) { case NavigationValue.Speed: { ret.SpeedValue = val.ToUInt16(); break; } case NavigationValue.Latitude: { ret.LatitudeValue = val.ToFloat64(); break; } case NavigationValue.Longitude: { ret.LongitudeValue = val.ToFloat64(); break; } case NavigationValue.TrackAngle: { ret.TrackAngleValue = val.ToUInt16(); break; } default: { ret.Success = false; break; } } } } return(ret); }
public override void Navigate(IWebDriver webDriver, WebDriverWait webDriverWait) { // Check if node is present Assert.IsTrue(NavigationValue.Count() == 1, $"{InputResource} - Invalid input navigation node"); var navigationNode = NavigationValue.First(); Uri uriResult = null; Assert.IsTrue(Uri.TryCreate(navigationNode, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps), $"{InputResource} - Navigation node is not a valid URI"); webDriver.Navigate().GoToUrl(NavigationValue.First()); }
/// <summary> /// Stop notification on a specified navigation value /// </summary> /// <param name="value">Navigation to stop being notified</param> /// <returns>true if the operation succeeded, false otherwise</returns> public async Task <bool> StopNotification(NavigationValue value) { bool ret; // List characteristics ret = await InitCharacteristics(); if (ret) { // Look for the selected characteristic BleGattCharacteristic nav_characteristic = _navigation_characteristics[value]; ret = await BleDevice.UnregisterValueNotificationAsync(nav_characteristic, OnNavigationNotification); } return(ret); }