def read_data(self):
    (raw_t, raw_p, raw_h) = self._read_raw_data()
    var1 = (((raw_t / 16384.0) - (self.T1 / 1024.0)) * float(self.T2))
    var2 = ((((raw_t / 131072.0) - (self.T1 / 8192.0)) * ((raw_t / 131072.0) - (self.T1 / 8192.0))) * self.T3)
    self.t_fine = (var1 + var2)
    t = ((var1 + var2) / 5120.0)
    var1 = ((self.t_fine / 2.0) - 64000.0)
    var2 = (((var1 * var1) * self.P6) / 32768.0)
    var2 = (var2 + ((var1 * self.P5) * 2.0))
    var2 = ((var2 / 4.0) + (self.P4 * 65536.0))
    var1 = (((((self.P3 * var1) * var1) / 524288.0) + (self.P2 * var1)) / 524288.0)
    var1 = ((1.0 + (var1 / 32768.0)) * self.P1)
    if (var1 != 0.0):
        p = (1048576.0 - raw_p)
        p = (((p - (var2 / 4096.0)) * 6250.0) / var1)
        var1 = (((self.P9 * p) * p) / 2147483648.0)
        var2 = ((p * self.P8) / 32768.0)
        p = (p + (((var1 + var2) + self.P7) / 16.0))
    else:
        p = 0
    h = (self.t_fine - 76800.0)
    h = ((raw_h - ((self.H4 * 64.0) + ((self.H5 / 16384.0) * h))) * ((self.H2 / 65536.0) * (1.0 + (((self.H6 / 67108864.0) * h) * (1.0 + ((self.H3 / 67108864.0) * h))))))
    h = (h * (1.0 - ((self.H1 * h) / 524288.0)))
    if (h > 100.0):
        h = 100.0
    elif (h < 0.0):
        h = 0.0
    return (t, p, h)
def read_data(self):
    (raw_t, raw_p, raw_h) = self._read_raw_data()
    var1 = (((raw_t / 16384.0) - (self.T1 / 1024.0)) * float(self.T2))
    var2 = ((((raw_t / 131072.0) - (self.T1 / 8192.0)) * ((raw_t / 131072.0) - (self.T1 / 8192.0))) * self.T3)
    self.t_fine = (var1 + var2)
    t = ((var1 + var2) / 5120.0)
    var1 = ((self.t_fine / 2.0) - 64000.0)
    var2 = (((var1 * var1) * self.P6) / 32768.0)
    var2 = (var2 + ((var1 * self.P5) * 2.0))
    var2 = ((var2 / 4.0) + (self.P4 * 65536.0))
    var1 = (((((self.P3 * var1) * var1) / 524288.0) + (self.P2 * var1)) / 524288.0)
    var1 = ((1.0 + (var1 / 32768.0)) * self.P1)
    if (var1 != 0.0):
        p = (1048576.0 - raw_p)
        p = (((p - (var2 / 4096.0)) * 6250.0) / var1)
        var1 = (((self.P9 * p) * p) / 2147483648.0)
        var2 = ((p * self.P8) / 32768.0)
        p = (p + (((var1 + var2) + self.P7) / 16.0))
    else:
        p = 0
    h = (self.t_fine - 76800.0)
    h = ((raw_h - ((self.H4 * 64.0) + ((self.H5 / 16384.0) * h))) * ((self.H2 / 65536.0) * (1.0 + (((self.H6 / 67108864.0) * h) * (1.0 + ((self.H3 / 67108864.0) * h))))))
    h = (h * (1.0 - ((self.H1 * h) / 524288.0)))
    if (h > 100.0):
        h = 100.0
    elif (h < 0.0):
        h = 0.0
    return (t, p, h)