import spidev
import time


class MCP3008Reader:
    def __init__(self, bus=1, device=0, max_speed_hz=10**5):
        self.spi = spidev.SpiDev()
        self.spi.open(bus, device)
        self.spi.max_speed_hz = max_speed_hz

    def read_channel(self, channel):
        adc = self.spi.xfer2([1, (8 | channel) << 4, 0])
        data = ((adc[1] & 3) << 8) | adc[2]
        return data

    def close(self):
        self.spi.close()