Commit 590edb5b authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Adds a pulses property

Showing with 12 additions and 0 deletions
+12 -0
...@@ -62,6 +62,15 @@ class OhmPiHardware: ...@@ -62,6 +62,15 @@ class OhmPiHardware:
self.tx.voltage_pulse(length=duration) self.tx.voltage_pulse(length=duration)
self.tx_sync.clear() self.tx_sync.clear()
@property
def pulses(self):
pulses = {}
for i in np.unique(self.readings[:,1]):
r = self.readings[self.readings[:, 1] == i, :]
assert np.all(np.isclose(r[:,2], r[0, 2])) # Polarity cannot change within a pulse
pulses.update({i: {'polarity': int(r[0, 2]), 'iab': r[:,3], 'vmn' : r[:,4]}}) # TODO: check how to generalize in case of multi-channel RX
return pulses
def _read_values(self, sampling_rate, append=False): # noqa def _read_values(self, sampling_rate, append=False): # noqa
if not append: if not append:
self._clear_values() self._clear_values()
......
...@@ -42,5 +42,8 @@ plt.show() ...@@ -42,5 +42,8 @@ plt.show()
print(f'SP: {k.sp} mV') print(f'SP: {k.sp} mV')
r = ((k.readings[:,4]-k.sp)/k.readings[:,3]) r = ((k.readings[:,4]-k.sp)/k.readings[:,3])
print(f'Mean resistance with sp correction : {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %') print(f'Mean resistance with sp correction : {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
print('\nTesting with pulses')
r = np.array([(k.pulses[i]['vmn']-k.sp)/k.pulses[i]['iab'] for i in k.pulses.keys()])
print(f'Mean resistance with sp correction : {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
change_config('config_default.py', verbose=False) change_config('config_default.py', verbose=False)
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