Commit 87fc36d6 authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Reverts to tx.polarity

Showing with 30 additions and 13 deletions
+30 -13
......@@ -220,6 +220,7 @@ class TxAbstract(ABC):
self.soh_logger = create_stdout_logger('soh_tx')
self.ctl = kwargs.pop('ctl', None)
self.pwr = kwargs.pop('pwr', None)
self._polarity = 0
self._inj_time = None
self._adc_gain = 1.
self.inj_time = inj_time
......@@ -264,12 +265,21 @@ class TxAbstract(ABC):
assert isinstance(value, float)
self._inj_time = value
@property
def polarity(self):
return self._polarity
@polarity.setter
@abstractmethod
def polarity(self, polarity):
assert polarity in [-1, 0, 1]
self._polarity = polarity
@property
@abstractmethod
def tx_bat(self):
pass
def voltage_pulse(self, voltage=0., length=None, polarity=1):
""" Generates a square voltage pulse
......
......@@ -95,8 +95,7 @@ class Tx(TxAbstract):
self.pin0.direction = Direction.OUTPUT
self.pin1 = self.mcp_board.get_pin(1)
self.pin1.direction = Direction.OUTPUT
# self.polarity = 0
self.polarity = 0
self.adc_gain = 2 / 3
self.pwr = None
......@@ -141,21 +140,29 @@ class Tx(TxAbstract):
self.exec_logger.warning(f'Current pulse is not implemented for the {TX_CONFIG["model"]} board')
def inject(self, polarity=1, inj_time=None):
assert polarity in [-1,0,1]
if polarity==1:
self.polarity = polarity
TxAbstract.inject(self, polarity=polarity, inj_time=None)
@property
def polarity(self):
return self._polarity
@polarity.setter
def polarity(self, polarity):
assert polarity in [-1, 0, 1]
self._polarity = polarity
if polarity == 1:
self.pin0.value = True
self.pin1.value = False
time.sleep(0.005) # Max turn on time of 211EH relays = 5ms
elif polarity==-1:
time.sleep(0.005) # Max turn on time of 211EH relays = 5ms
elif polarity == -1:
self.pin0.value = False
self.pin1.value = True
time.sleep(0.005) # Max turn on time of 211EH relays = 5ms
time.sleep(0.005) # Max turn on time of 211EH relays = 5ms
else:
self.pin0.value = False
self.pin1.value = False
time.sleep(0.001) # Max turn off time of 211EH relays = 1ms
TxAbstract.inject(self, polarity=polarity, inj_time=None)
time.sleep(0.001) # Max turn off time of 211EH relays = 1ms
def turn_off(self):
self.pwr.turn_off(self)
......
......@@ -241,7 +241,7 @@ class OhmPiHardware:
def _vab_pulse(self, vab, length, sampling_rate=None, polarity=1, append=False):
""" Gets VMN and IAB from a single voltage pulse
"""
self.tx.polarity = polarity
if sampling_rate is None:
sampling_rate = RX_CONFIG['sampling_rate']
if self.tx.pwr.voltage_adjustable:
......@@ -268,7 +268,7 @@ class OhmPiHardware:
if polarities is not None:
assert len(polarities)==n_pulses
else:
polarities = [-1 * np.heaviside(i % 2, -1.) for i in range(n_pulses)]
polarities = [-self.tx.polarity * np.heaviside(i % 2, -1.) for i in range(n_pulses)]
if not append:
self._clear_values()
for i in range(n_pulses):
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment