private decimal GetTemperatureValue(byte[] dataBuffer, int byteOffset, bool valueInMetric) { var consoleValue = BitConverter.ToInt16(dataBuffer, byteOffset); if (consoleValue.Equals(short.MaxValue)) { throw new Exception("Connection lost with ISS station"); } var tempFromDataBuffer = (float)BitConverter.ToInt16(dataBuffer, byteOffset) / 10; return(valueInMetric ? MetricConversion.FahrenheitToDegrees(tempFromDataBuffer) : Convert.ToDecimal(tempFromDataBuffer)); }
private List <decimal> GetExtraTemperaturesFromBuffer(byte[] dataBuffer, int byteOffset, int byteLength, bool valuesInMetric) { var extraTemperatures = new List <decimal>(); for (var i = byteOffset; i < byteOffset + byteLength; i++) { var byteValue = Convert.ToInt32(dataBuffer[i]); // ignore max byte values --> no sensor if (byteValue != byte.MaxValue) { var temperature = byteValue - 90; extraTemperatures.Add(valuesInMetric ? MetricConversion.FahrenheitToDegrees(temperature) : temperature); } } return(extraTemperatures); }
private decimal GetTemperatureFromSignedBytes(byte[] dataBuffer, int byteOffset, bool valueInMetric) { var tempFromDataBuffer = (float)BitConverter.ToInt16(dataBuffer, byteOffset); return(valueInMetric ? MetricConversion.FahrenheitToDegrees(tempFromDataBuffer) : Convert.ToDecimal(tempFromDataBuffer)); }