Ejemplo n.º 1
0
    def conduct(self):
        if self.verbose:
            print("RTC...", file=sys.stderr)

        try:
            I2C.open(Host.I2C_SENSORS)

            # resources...
            now = LocalizedDatetime.now()

            DS1338.init()

            # test...
            rtc_datetime = RTCDatetime.construct_from_localized_datetime(now)
            DS1338.set_time(rtc_datetime)

            time.sleep(2)

            rtc_datetime = DS1338.get_time()
            localized_datetime = rtc_datetime.as_localized_datetime(
                tzlocal.get_localzone())

            self.datum = localized_datetime - now

            if self.verbose:
                print(self.datum, file=sys.stderr)

            # test criterion...
            return 1 <= self.datum.seconds <= 2

        finally:
            I2C.close()
Ejemplo n.º 2
0
    def conduct(self):
        if self.verbose:
            print("OPC...", file=sys.stderr)

        opc = None

        try:
            I2C.open(Host.I2C_SENSORS)

            # resources...
            opc = OPCN2(Host.opc_spi_bus(), Host.opc_spi_device())

            opc.power_on()
            opc.operations_on()

            # test...
            self.datum = opc.firmware()

            if self.verbose:
                print(self.datum, file=sys.stderr)

            # test criterion...
            return len(self.datum) > 0 and self.datum.startswith('OPC')

        finally:
            if opc:
                opc.operations_off()
                opc.power_off()

            I2C.close()
Ejemplo n.º 3
0
    def conduct(self):
        if self.verbose:
            print("GPS...", file=sys.stderr)

        gps = None

        try:
            I2C.open(Host.I2C_SENSORS)

            # GPS...
            gps = PAM7Q(Host.gps_device())

            gps.power_on()
            gps.open()

            # test...
            self.datum = gps.report(GPRMC)

            if self.verbose:
                print(self.datum, file=sys.stderr)

            # criterion...
            return self.datum is not None

        finally:
            if gps:
                gps.close()
                gps.power_off()

            I2C.close()
Ejemplo n.º 4
0
    def conduct(self):
        if self.verbose:
            print("EEPROM...", file=sys.stderr)

        # validate...
        if not path.isfile(Host.eep_image()):
            print("error: eeprom image not found", file=sys.stderr)
            exit(1)

        try:
            # resources...
            Host.enable_eeprom_access()

            I2C.open(Host.I2C_EEPROM)

            eeprom = CAT24C32()

            # test...
            file_image = EEPROMImage.construct_from_file(
                Host.eep_image(), CAT24C32.SIZE)
            eeprom.write(file_image)

            # test criterion...
            return eeprom.image == file_image

        finally:
            I2C.close()
Ejemplo n.º 5
0
    def conduct(self):
        if self.verbose:
            print("AFE...", file=sys.stderr)

        try:
            I2C.open(Host.I2C_SENSORS)

            # AFE...
            dfe_conf = DFEConf.load(Host)
            afe = dfe_conf.afe(Host)

            # test...
            self.datum = afe.sample()

            if self.verbose:
                print(self.datum, file=sys.stderr)

            ok = True

            # test criterion...
            for gas, sensor in self.datum.sns.items():
                sensor_ok = 0.9 < sensor.we_v < 1.1 and 0.9 < sensor.ae_v < 1.1

                if not sensor_ok:
                    ok = False

            return ok

        finally:
            I2C.close()
Ejemplo n.º 6
0
    def conduct(self, ):
        if self.verbose:
            print("%s (0x%02x)..." % (self.__name, self.__sht.addr),
                  file=sys.stderr)

        try:
            I2C.open(Host.I2C_SENSORS)

            # test...
            self.__sht.reset()

            self.datum = self.__sht.sample()

            if self.verbose:
                print(self.datum, file=sys.stderr)

            # criterion...
            return 10 < self.datum.humid < 90 and 10 < self.datum.temp < 50

        finally:
            I2C.close()
Ejemplo n.º 7
0
    def conduct(self):
        if self.verbose:
            print("Pt1000...", file=sys.stderr)

        try:
            I2C.open(Host.I2C_SENSORS)

            # AFE...
            afe_conf = AFEConf.load(Host)
            afe = afe_conf.afe(Host)

            # test...
            self.datum = afe.sample_temp()

            if self.verbose:
                print(self.datum, file=sys.stderr)

            # test criterion...
            return 0.4 < self.datum.v < 0.6

        finally:
            I2C.close()
Ejemplo n.º 8
0
    def conduct(self):
        if self.verbose:
            print("Board temp...", file=sys.stderr)

        try:
            I2C.open(Host.I2C_SENSORS)

            # resources...
            sensor = MCP9808(True)

            # test...
            self.datum = sensor.sample()

            if self.verbose:
                print(self.datum, file=sys.stderr)

            temp = self.datum.temp

            # test criterion...
            return 10 < temp < 50

        finally:
            I2C.close()
Ejemplo n.º 9
0
from scs_dfe.board.pca8574 import PCA8574State

from scs_host.bus.i2c import I2C
from scs_host.sys.host import Host

# --------------------------------------------------------------------------------------------------------------------

I2C.open(Host.I2C_SENSORS)

try:
    io = IO()
    print(io)

    state = PCA8574State.load_from_file(IO.filename())
    print(state)

    print("led RED was:%s" % io.led_red)
    print("led GREEN was:%s" % io.led_green)

    io.led_red = not io.led_red
    io.led_green = not io.led_green

    print("led RED is:%s" % io.led_red)
    print("led GREEN is:%s" % io.led_green)

    state = PCA8574State.load_from_file(IO.filename())
    print(state)

finally:
    I2C.close()