Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        /// <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);
        }