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 int GetBarometerValue(byte[] dataBuffer, int byteOffset, bool valueInMetric)
        {
            var barometerFromDataBuffer = (float)BitConverter.ToInt16(dataBuffer, byteOffset) / 1000;

            return(valueInMetric ? MetricConversion.InHgTohPa(barometerFromDataBuffer) : Convert.ToInt32(barometerFromDataBuffer));
        }
        private int GetWindSpeedValue(byte[] dataBuffer, int byteOffset, bool valueInMetric)
        {
            var windFromDataBuffer = Convert.ToInt32(dataBuffer[byteOffset]);

            return(valueInMetric ? MetricConversion.MphToKph(windFromDataBuffer) : windFromDataBuffer);
        }
        private decimal GetTemperatureFromSignedBytes(byte[] dataBuffer, int byteOffset, bool valueInMetric)
        {
            var tempFromDataBuffer = (float)BitConverter.ToInt16(dataBuffer, byteOffset);

            return(valueInMetric ? MetricConversion.FahrenheitToDegrees(tempFromDataBuffer) : Convert.ToDecimal(tempFromDataBuffer));
        }