Module flask_app.VarSupply

Source code
from flask_app.Driver.PCAL6416 import PCAL6416
import logging

class VarSupply:
    def __init__(self, address, pinAssignments, name):
        self.logger = logging.getLogger(__name__)
        self.ioExpander = PCAL6416(1, address)
        self.pinAssignments = pinAssignments
        self.name = name
        for pinAss in pinAssignments:
            self.ioExpander.setToOutputPinAssignment(pinAss)

    def disable(self):
        for assignment in self.pinAssignments:
            if (assignment.type == "enable"):
                self.ioExpander.setVoltageLowOnPinAssignment(assignment)
                return

    def setVoltage(self, voltage):
        # Convert voltage diff to int between 0 and 15
        self.logger.debug("Setting voltage in device " + self.name + " desired voltage: " + str(voltage) + " V")
        if(voltage != 3.5):
            voltage  = int((float(voltage) - 1.8) * 10 + 0.5)
        else:
            voltage = 0b1111

        if (voltage > 0b1111 or voltage < 0b0000):
            raise ValueError("Voltage not in range")

        for assignment in self.pinAssignments:
            if (assignment.type == "enable"):
                self.ioExpander.setVoltageHighOnPinAssignment(assignment)
            else:
                if ((voltage % 2) == 0):
                    self.ioExpander.setVoltageLowOnPinAssignment(assignment)
                else:
                    self.ioExpander.setVoltageHighOnPinAssignment(assignment)
                voltage = voltage >> 1

Classes

class VarSupply (address, pinAssignments, name)
Source code
class VarSupply:
    def __init__(self, address, pinAssignments, name):
        self.logger = logging.getLogger(__name__)
        self.ioExpander = PCAL6416(1, address)
        self.pinAssignments = pinAssignments
        self.name = name
        for pinAss in pinAssignments:
            self.ioExpander.setToOutputPinAssignment(pinAss)

    def disable(self):
        for assignment in self.pinAssignments:
            if (assignment.type == "enable"):
                self.ioExpander.setVoltageLowOnPinAssignment(assignment)
                return

    def setVoltage(self, voltage):
        # Convert voltage diff to int between 0 and 15
        self.logger.debug("Setting voltage in device " + self.name + " desired voltage: " + str(voltage) + " V")
        if(voltage != 3.5):
            voltage  = int((float(voltage) - 1.8) * 10 + 0.5)
        else:
            voltage = 0b1111

        if (voltage > 0b1111 or voltage < 0b0000):
            raise ValueError("Voltage not in range")

        for assignment in self.pinAssignments:
            if (assignment.type == "enable"):
                self.ioExpander.setVoltageHighOnPinAssignment(assignment)
            else:
                if ((voltage % 2) == 0):
                    self.ioExpander.setVoltageLowOnPinAssignment(assignment)
                else:
                    self.ioExpander.setVoltageHighOnPinAssignment(assignment)
                voltage = voltage >> 1

Methods

def disable(self)
Source code
def disable(self):
    for assignment in self.pinAssignments:
        if (assignment.type == "enable"):
            self.ioExpander.setVoltageLowOnPinAssignment(assignment)
            return
def setVoltage(self, voltage)
Source code
def setVoltage(self, voltage):
    # Convert voltage diff to int between 0 and 15
    self.logger.debug("Setting voltage in device " + self.name + " desired voltage: " + str(voltage) + " V")
    if(voltage != 3.5):
        voltage  = int((float(voltage) - 1.8) * 10 + 0.5)
    else:
        voltage = 0b1111

    if (voltage > 0b1111 or voltage < 0b0000):
        raise ValueError("Voltage not in range")

    for assignment in self.pinAssignments:
        if (assignment.type == "enable"):
            self.ioExpander.setVoltageHighOnPinAssignment(assignment)
        else:
            if ((voltage % 2) == 0):
                self.ioExpander.setVoltageLowOnPinAssignment(assignment)
            else:
                self.ioExpander.setVoltageHighOnPinAssignment(assignment)
            voltage = voltage >> 1