Source code for BinPy.Analog.base
from BinPy import *
[docs]class Resistor:
"""
This Class implements the Resistor, having the following parameters:
'+' : Resistor end at positive potential
'-' : Resistor end at negative potential
'r' : Resistance value
'i' : Current flowing through the resistor
Example:
>>> from BinPy import *
>>> params = {'r':5}
>>> r = Resistor(params)
>>> r.getParams()
{'i': 0, '+': 0, 'r': 5, '-': 0}
>>> r.setVoltage(Connector(5), Connector(0))
{'i': 1.0, '+': 5, 'r': 5, '-': 0}
>>> r.setCurrent(10)
{'i': 10, '+': 50, 'r': 5, '-': 0}
>>> r.setResistance(10)
{'i': 5.0, '+': 50, 'r': 10, '-': 0}
"""
def __init__(self, params):
self.params = {'+': Connector(0), '-': Connector(0), 'i': 0, 'r':
0}
for i in params:
self.params[i] = params[i]
[docs] def setResistance(self, value):
self.params['r'] = value
self.params['i'] = (
self.params['+'].state - self.params['-'].state) / self.params['r']
return self.params
[docs] def getParams(self):
return self.params
[docs] def setCurrent(self, value):
self.params['i'] = value
self.params['+'].state = self.params['-'].state + \
(self.params['i'] * self.params['r'])
return self.params
[docs] def setVoltage(self, val1, val2):
if not(isinstance(val1, Connector) and isinstance(val2, Connector)):
raise Exception(
"Invalid Voltage Values, Expecting a Connector Class Object")
self.params['+'] = val1
self.params['-'] = val2
self.params['i'] = (
self.params['+'].state - self.params['-'].state) / self.params['r']
return self.params
def __repr__(self):
return str(self.params['r'])