Commit 14e5f96a authored by Arnaud WATLET's avatar Arnaud WATLET
Browse files

Updates mux v2024 addressing

No related merge requests found
Showing with 32 additions and 34 deletions
+32 -34
...@@ -5,7 +5,7 @@ import busio ...@@ -5,7 +5,7 @@ import busio
import numpy as np import numpy as np
import time import time
def set_mux_addressing_table(addressing_logic_table='addresses_table_2roles.csv',mux_settings=''): def set_mux_addressing_table(addressing_logic_table='addresses_table_4roles.csv',mux_settings=''):
# with open(mux_table, 'r') as myfile: # with open(mux_table, 'r') as myfile:
# header = myfile.readlines()[0].strip('\n').split(',') # header = myfile.readlines()[0].strip('\n').split(',')
# mcp_table = np.genfromtxt(mux_table,dtype=str, # mcp_table = np.genfromtxt(mux_table,dtype=str,
...@@ -31,7 +31,7 @@ def set_mux_addressing_table(addressing_logic_table='addresses_table_2roles.csv' ...@@ -31,7 +31,7 @@ def set_mux_addressing_table(addressing_logic_table='addresses_table_2roles.csv'
mux_addr = np.genfromtxt(mux_settings,dtype=str, delimiter=',', skip_header=1,) mux_addr = np.genfromtxt(mux_settings,dtype=str, delimiter=',', skip_header=1,)
mux_addr = {header[k]: np.atleast_1d(mux_addr.T[k]) for k in range(len(header))} mux_addr = {header[k]: np.atleast_1d(mux_addr.T[k]) for k in range(len(header))}
keys = ['TCA_address', 'TCA_channel', 'MCP_address', 'Electrode_id', 'Role'] keys = ['TCA_address', 'TCA_channel', 'MCP_address', 'Electrode_id', 'MCP_GPIO', 'Role']
mux_addressing_table = {keys[k]:np.array([]) for k in range(len(keys))} mux_addressing_table = {keys[k]:np.array([]) for k in range(len(keys))}
print(mux_addr) print(mux_addr)
# mux_addressing_table['MCP_address'] = mux_addressing_table['MCP_address'].astype(hex) # mux_addressing_table['MCP_address'] = mux_addressing_table['MCP_address'].astype(hex)
...@@ -48,13 +48,11 @@ def set_mux_addressing_table(addressing_logic_table='addresses_table_2roles.csv' ...@@ -48,13 +48,11 @@ def set_mux_addressing_table(addressing_logic_table='addresses_table_2roles.csv'
mux_addressing_table['MCP_address'] = np.append(mux_addressing_table['MCP_address'], mux_addressing_table['MCP_address'] = np.append(mux_addressing_table['MCP_address'],
vhex(int(mux_addr['MCP_address'][i],16)+ vhex(int(mux_addr['MCP_address'][i],16)+
addressing_logic_table['MCP_board_id'])) addressing_logic_table['MCP_board_id']))
mux_addressing_table['MCP_GPIO'] = np.append(mux_addressing_table['TCA_address'], mux_addressing_table['MCP_GPIO'] = np.append(mux_addressing_table['MCP_GPIO'],
np.repeat(mux_addr['TCA_address'][i], addressing_logic_table['GPIO']).astype(np.uint16)
addressing_logic_table['GPIO'].shape[
0]))
mux_addressing_table['Electrode_id'] = np.append(mux_addressing_table['Electrode_id'], mux_addressing_table['Electrode_id'] = np.append(mux_addressing_table['Electrode_id'],
addressing_logic_table['Electrode_board_id'] + addressing_logic_table['Electrode_board_id'] +
int(mux_addr['Electrode_id_min'][i])) int(mux_addr['Electrode_id_min'][i])).astype(np.uint16)
mux_addressing_table['Role'] = np.append(mux_addressing_table['Role'], mux_addressing_table['Role'] = np.append(mux_addressing_table['Role'],
addressing_logic_table['Role']) addressing_logic_table['Role'])
...@@ -71,7 +69,7 @@ def set_relay_state(mcp_addr,mcp_pin,state=True): ...@@ -71,7 +69,7 @@ def set_relay_state(mcp_addr,mcp_pin,state=True):
addressing_logic_table='addresses_table_4roles.csv' addressing_logic_table='addresses_table_4roles.csv'
mux_table = 'MUX_settings.csv' mux_table = 'MUX_settings.csv'
mux_addressing_table = set_mux_addressing_table(addressing_logic_table,mux_table) mux_addressing_table = set_mux_addressing_table(addressing_logic_table,mux_table)
print(mux_addressing_table) print("table" , mux_addressing_table)
header = ','.join([k for k in mux_addressing_table.keys()]) header = ','.join([k for k in mux_addressing_table.keys()])
values = [[(v[i]) for v in mux_addressing_table.values()] for i in range(len(mux_addressing_table['MCP_address']))] values = [[(v[i]) for v in mux_addressing_table.values()] for i in range(len(mux_addressing_table['MCP_address']))]
with open("compiled_mux_addressing_table.csv", "w") as file: with open("compiled_mux_addressing_table.csv", "w") as file:
...@@ -82,29 +80,29 @@ with open("compiled_mux_addressing_table.csv", "a") as file: ...@@ -82,29 +80,29 @@ with open("compiled_mux_addressing_table.csv", "a") as file:
# print('rr',[[(v[i]) for v in mux_addressing_table.values()] for i in range(len(mux_addressing_table['MCP_address']))]) # print('rr',[[(v[i]) for v in mux_addressing_table.values()] for i in range(len(mux_addressing_table['MCP_address']))])
#
a_list = np.arange(1,16,1) # a_list = np.arange(1,16,1)
b_list = np.arange(2,17,1) # b_list = np.arange(2,17,1)
#
electrodes = np.array([a_list,b_list]).T # electrodes = np.array([a_list,b_list]).T
# print(np.where((mux_addressing_table['Electrode_board_id']==1) & (mux_addressing_table['Role']=='X'))) # # print(np.where((mux_addressing_table['Electrode_board_id']==1) & (mux_addressing_table['Role']=='X')))
for i,relays in enumerate(electrodes): # for i,relays in enumerate(electrodes):
for r in relays: # for r in relays:
idx = np.where((mux_addressing_table['Electrode_id']== r) & (mux_addressing_table['Role']=='X'))[0] # idx = np.where((mux_addressing_table['Electrode_id']== r) & (mux_addressing_table['Role']=='X'))[0]
mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0],16)) # mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0],16))
print(mcp_addr[0],mux_addressing_table['MCP_address']) # print(mcp_addr[0],mux_addressing_table['MCP_address'])
time.sleep(.5) # time.sleep(.5)
set_relay_state(mcp_addr, r, True) # set_relay_state(mcp_addr, r, True)
# # #
# for r in relays: # # for r in relays:
# idx = np.where((mux_addressing_table['Electrode_id']== r) & (mux_addressing_table['Role']=='X'))[0] # # idx = np.where((mux_addressing_table['Electrode_id']== r) & (mux_addressing_table['Role']=='X'))[0]
# mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0],16)) # # mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0],16))
# print(r,idx) # # print(r,idx)
# time.sleep(.5) # # time.sleep(.5)
# set_relay_state(mcp_addr, r, False) # # set_relay_state(mcp_addr, r, False)
# # #
# # #
# # #
# for r in relays: # # for r in relays:
# set_relay_state(mcp_addr,r,True) # # set_relay_state(mcp_addr,r,True)
# # #
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