void LogTemperatures(ThreadPoolTimer timer) { try { using (var oneWireDeviceHandler = new OneWireDeviceHandler()) { foreach (var device in oneWireDeviceHandler.GetDevices<DS18S20>()) { var result = device.GetTemperature(); var extendedResult = device.GetExtendedTemperature(); // Insert code to log result in some way } foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices<DS18B20>()) { var result = device.GetTemperature(); // Insert code to log result in some way } } } catch (Exception e) { // Insert code to log all exceptions! } }
void LogTemperatures(ThreadPoolTimer timer) { try { using (var oneWireDeviceHandler = new OneWireDeviceHandler()) { foreach (var device in oneWireDeviceHandler.GetDevices <DS18S20>()) { var result = device.GetTemperature(); var extendedResult = device.GetExtendedTemperature(); // Insert code to log result in some way } foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>()) { var result = device.GetTemperature(); Debug.WriteLine(result); // Insert code to log result in some way } } } catch (Exception e) { // Insert code to log all exceptions! } }
private async void GetTemperatures(ThreadPoolTimer timer) { try { using (var oneWireDeviceHandler = new OneWireDeviceHandler(true, true)) { foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>()) { var result = device.GetTemperature(); this.tempData.Temperature = result; } } } catch (Exception e) { this.oneWireDeviceHandler.Dispose(); this.oneWireDeviceHandler = null; } }
public RinsenOneWireClient() { _handler = new OneWireDeviceHandler(false, false); }
private async void GetTemperature() { if (Utilities.IsDesktopComputer()) { return; } bool firstTime = true; while (true) { try { if (_cancelToken.IsCancellationRequested) { _cancelToken.ThrowIfCancellationRequested(); } using (var oneWireDeviceHandler = new OneWireDeviceHandler(false, false)) { var devices = oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>().ToList(); if (!devices.Any()) { if (_hasDetectedDevices) { //We have had devices detected, so something must have gone wrong! //Device might have been unplugged! Temperature = -1; if (!_hasShownError) { //await UIMessager.Instance.ShowMessageAndWaitForFeedback( // "Temperature device error!", // "Temperature sensor may have been plugged out!", // UIMessageButtons.OK, // UIMessageType.Error); _hasShownError = true; } } } else { foreach (var device in devices) { var result = device.GetTemperature(); if (firstTime) { if (result > 0) { Temperature = result; firstTime = false; } await Task.Delay(TEMPERATURE_PULL_INTERVAL); continue; } //We should have some sanity check of the temperature //in case some noise gets in the way. //If we for example had a temperature of 25, and //then noise ruins the next result and returns 85, then //we should not trust the result, it should instead be discarded. //Temperature cant increase by 2 within 500ms??? if ((Math.Abs(result - Temperature) <= TEMPERATURE_SANITY)) { Temperature = result; } } _hasDetectedDevices = true; _hasShownError = false; } } } catch (OperationCanceledException) { break; } catch (Exception e) { // Insert code to log all exceptions! Debug.WriteLine("Could not get temperature: " + e); } await Task.Delay(TEMPERATURE_PULL_INTERVAL); } Temperature = 0; _tokenSource.Dispose(); _tokenSource = null; }
public MainPage() { _oneWireDeviceHandler = new OneWireDeviceHandler(); this.InitializeComponent(); }
public RinsenDefensiveOneWireClient() { _handler = new OneWireDeviceHandler(); }