|
import sys
|
|
import time
|
|
|
|
import smbus
|
|
|
|
class TMP512(object):
|
|
|
|
def __init__(self, address):
|
|
self.bus = smbus.SMBus(1)
|
|
self.address = address
|
|
|
|
def _reverse16(self, value):
|
|
""" A quick hack method for reversing byte order for a 16 bit value """
|
|
str_val = '%04X' % value
|
|
new_val = str_val[2:4] + str_val[0:2]
|
|
return int(new_val, 16)
|
|
|
|
def read_reg(self, reg):
|
|
raw = self.bus.read_word_data(self.address, reg)
|
|
return self._reverse16(raw)
|
|
|
|
def device_id(self):
|
|
return '0x%04X' % self.read_reg(0x1F)
|
|
|
|
def local_temp(self):
|
|
return self.read_reg(0x08)
|
|
|
|
|
|
def main():
|
|
|
|
temp1 = TMP512(0x5c)
|
|
print '0x%04X' % temp1.read_reg(0x00)
|
|
print temp1.device_id()
|
|
print '0x%04X' % temp1.local_temp()
|
|
|
|
# bus = smbus.SMBus(1)
|
|
# address = 0x5c
|
|
# # 2 digits at 9ma sink
|
|
# # bus.write_byte_data(self.address, 0x00, 0x35)
|
|
# print '0x%02X' % bus.read_word_data(address, 0x00)
|
|
# print '0x%02X' % bus.read_word_data(address, 0x1F)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|