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