private async void ThermoResultCallback(ThermometerResult res) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { decimal Conversion = res.Temp; if (TxtTmpUnitbtn.IsOn) { Conversion = decimal.Round((Conversion * (decimal)1.8), 1) + 32; } else { Conversion = decimal.Round(res.Temp, 1); } if (res.Status) { TxtTemprature.Text = string.Format(tempformat, Conversion.ToString(), TxtTmpUnitbtn.IsOn ? TxtTmpUnitbtn.OnContent : TxtTmpUnitbtn.OffContent); } else { TxtTemprature.Text = "Error: Lo"; } TxtTestMode.Text = res.Mode; TxtTestTime.Text = res.DateTimeOfTest.ToString(); }); }
private void Characteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs args) { try { byte[] data; IBuffer buffer = args.CharacteristicValue; ThermometerResult Result = new ThermometerResult(); CryptographicBuffer.CopyToByteArray(buffer, out data); string rawdata = ""; // float temperature =(float) (((data[4] & 255) * 256 + (data[3] & 255)) * 0.01); // decimal temperature = (decimal) ((data[4] & 255) * 256 + (data[3] & 255)) ; int a = data[4] & 255; int b = data[3] & 255; int c = a * 256; int d = b + c; decimal f = decimal.Round(((decimal)d / (decimal)100), 1); //temperature = decimal.Round((temperature / (decimal)100), 1); for (int i = 0; i < data.Length; i++) { rawdata += data[i].ToString() + "-"; } MainPage.TestresultModel.ThermometerData(f, data.Length > 6? data[6]:0, data[2] == 193, rawdata); }catch (Exception ex) { MainPage.TestresultModel.NotifyStatusMessage?.Invoke("Exception: " + ex.Message, 2); } // double temperature = (((0x0e & 0xff) * 256 + (0x78 & 0xff)) * 0.01); // double t = temperature; // double t1 = temperature1; }