double GetTemperature() { lock (temperatureLock) { Initialise(); int UT, B5; // following ds convention float t; UT = readRawTemperature().Result; B5 = computeB5(UT); t = (B5 + 8) >> 4; t /= 10; return t; } }