コード例 #1
0
        private async Task TestReadableSensor(IEarable earable, IReadableSensor <SensorValueType> sensor)
        {
            await EarableUtility.Reconnect(earable);

            Status.StatusUpdate("Reading value of sensor {0}", sensor);
            Status.StatusUpdate("Current value is {0}", await sensor.ReadAsync());
        }
コード例 #2
0
ファイル: EarableUtility.cs プロジェクト: YHB-eSense/eSense
        public static async Task Reconnect(IEarable earable)
        {
            await earable.DisconnectAsync();

            Assert.True(!earable.IsConnected(), "Earable disconnected now");
            await Task.Delay(2000);

            Assert.True(await earable.ConnectAsync(), "ConnectAsync succeeds");
            Assert.True(earable.IsConnected(), "Earable connected after connect");
        }
コード例 #3
0
        public async override Task Run(IEarable earable)
        {
            SensorType sensor = earable.GetSensor <SensorType>();

            Assert.NotNull(sensor);
            Assert.True(sensor is SensorType);
            if (sensor is IReadableSensor <SensorValueType> readable)
            {
                await TestReadableSensor(earable, readable);
            }
            if (sensor is ISubscribableSensor <SensorValueType> subscribable)
            {
                await TestSubscribableSensor(earable, subscribable);
            }
        }
コード例 #4
0
        private async Task TestSubscribableSensor(IEarable earable, ISubscribableSensor <SensorValueType> sensor)
        {
            await EarableUtility.Reconnect(earable);

            _sampleReceiver      = new TaskCompletionSource <SensorValueType>();
            sensor.ValueChanged += OnValueChanged;
            Status.StatusUpdate("Subscribing to sensor {0}", sensor);
            await sensor.StartSamplingAsync();

            Status.StatusUpdate("Waiting for a value update from sensor {0}", sensor);
            var valueReceived = _sampleReceiver.Task;
            var timeout       = Task.Delay(10000);
            await Task.WhenAny(valueReceived, timeout);

            _sampleReceiver = null;
            await sensor.StopSamplingAsync();

            sensor.ValueChanged -= OnValueChanged;
            Assert.True(valueReceived.IsCompleted, "Result recieved within 10 seconds.");
            Status.StatusUpdate("Received value {1} from sensor {0}", sensor, valueReceived.Result);
        }
コード例 #5
0
 public EarableEventArgs(IEarable earable)
 {
     Earable = earable;
 }
コード例 #6
0
 internal BluetoothDevice(IEarable earable)
 {
 }