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): ...@@ -220,6 +220,7 @@ class TxAbstract(ABC):
self.soh_logger = create_stdout_logger('soh_tx') self.soh_logger = create_stdout_logger('soh_tx')
self.ctl = kwargs.pop('ctl', None) self.ctl = kwargs.pop('ctl', None)
self.pwr = kwargs.pop('pwr', None) self.pwr = kwargs.pop('pwr', None)
self._polarity = 0
self._inj_time = None self._inj_time = None
self._adc_gain = 1. self._adc_gain = 1.
self.inj_time = inj_time self.inj_time = inj_time
...@@ -264,12 +265,21 @@ class TxAbstract(ABC): ...@@ -264,12 +265,21 @@ class TxAbstract(ABC):
assert isinstance(value, float) assert isinstance(value, float)
self._inj_time = value 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 @property
@abstractmethod @abstractmethod
def tx_bat(self): def tx_bat(self):
pass pass
def voltage_pulse(self, voltage=0., length=None, polarity=1): def voltage_pulse(self, voltage=0., length=None, polarity=1):
""" Generates a square voltage pulse """ Generates a square voltage pulse
......
...@@ -95,8 +95,7 @@ class Tx(TxAbstract): ...@@ -95,8 +95,7 @@ class Tx(TxAbstract):
self.pin0.direction = Direction.OUTPUT self.pin0.direction = Direction.OUTPUT
self.pin1 = self.mcp_board.get_pin(1) self.pin1 = self.mcp_board.get_pin(1)
self.pin1.direction = Direction.OUTPUT self.pin1.direction = Direction.OUTPUT
# self.polarity = 0 self.polarity = 0
self.adc_gain = 2 / 3 self.adc_gain = 2 / 3
self.pwr = None self.pwr = None
...@@ -141,21 +140,29 @@ class Tx(TxAbstract): ...@@ -141,21 +140,29 @@ class Tx(TxAbstract):
self.exec_logger.warning(f'Current pulse is not implemented for the {TX_CONFIG["model"]} board') self.exec_logger.warning(f'Current pulse is not implemented for the {TX_CONFIG["model"]} board')
def inject(self, polarity=1, inj_time=None): def inject(self, polarity=1, inj_time=None):
assert polarity in [-1,0,1] self.polarity = polarity
if polarity==1: 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.pin0.value = True
self.pin1.value = False self.pin1.value = False
time.sleep(0.005) # Max turn on time of 211EH relays = 5ms time.sleep(0.005) # Max turn on time of 211EH relays = 5ms
elif polarity==-1: elif polarity == -1:
self.pin0.value = False self.pin0.value = False
self.pin1.value = True 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: else:
self.pin0.value = False self.pin0.value = False
self.pin1.value = False self.pin1.value = False
time.sleep(0.001) # Max turn off time of 211EH relays = 1ms time.sleep(0.001) # Max turn off time of 211EH relays = 1ms
TxAbstract.inject(self, polarity=polarity, inj_time=None)
def turn_off(self): def turn_off(self):
self.pwr.turn_off(self) self.pwr.turn_off(self)
......
...@@ -241,7 +241,7 @@ class OhmPiHardware: ...@@ -241,7 +241,7 @@ class OhmPiHardware:
def _vab_pulse(self, vab, length, sampling_rate=None, polarity=1, append=False): def _vab_pulse(self, vab, length, sampling_rate=None, polarity=1, append=False):
""" Gets VMN and IAB from a single voltage pulse """ Gets VMN and IAB from a single voltage pulse
""" """
self.tx.polarity = polarity
if sampling_rate is None: if sampling_rate is None:
sampling_rate = RX_CONFIG['sampling_rate'] sampling_rate = RX_CONFIG['sampling_rate']
if self.tx.pwr.voltage_adjustable: if self.tx.pwr.voltage_adjustable:
...@@ -268,7 +268,7 @@ class OhmPiHardware: ...@@ -268,7 +268,7 @@ class OhmPiHardware:
if polarities is not None: if polarities is not None:
assert len(polarities)==n_pulses assert len(polarities)==n_pulses
else: 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: if not append:
self._clear_values() self._clear_values()
for i in range(n_pulses): 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