public void Parse_InvalidDataFormat_ExceptionThrown() { string rawData = "01-80-01-00-00-00-00-80-01-80-01-80-01-00-00-00-00-00-CB-B8-33-4C-88-4F"; var bytes = ConvertStringBytesToByteArray(rawData); RuuviTag.Parse(bytes); }
private void CheckV4Data(byte[] bytes, double temperature, double humidity, double airPressure) { var data = RuuviTag.Parse(bytes); Assert.AreEqual(temperature, data.Temperature, "Temperature"); Assert.AreEqual(humidity, data.Humidity, "Humidity"); Assert.AreEqual(airPressure, data.AirPressure, "AirPressure"); Assert.IsNull(data.AccelerationX, "Acceleration X"); Assert.IsNull(data.AccelerationY, "Acceleration Y"); Assert.IsNull(data.AccelerationZ, "Acceleration Z"); Assert.IsNull(data.BatteryVoltage, "Battery voltage"); Assert.IsNull(data.TxPower, "TX power"); Assert.IsNull(data.MovementCounter, "Movement counter"); Assert.IsNull(data.MeasurementSequenceNumber, "Measurement sequence"); Assert.IsNull(data.MacAddress, "MAC address"); }
/// <inheritdoc cref="IBleReader"/> public async Task <T> GetManufacturerDataAsync <T>(string macAddress) { var manufacturerData = await ReadDeviceDataAsync(macAddress); if (manufacturerData != null) { if (typeof(T) == typeof(RuuviTag)) { return((T)Convert.ChangeType(RuuviTag.Parse(manufacturerData.Data), typeof(T))); } // Add support for parsing data of other device types else { throw new UnsupportedDeviceTypeException($"Support for getting manufacturer data of type '{typeof(T).ToString()}' has not been implemented"); } } return(default(T)); }