I have two radios, sdr and sdr2, receiving data and I want to save that date (which are complex numbers) in a CSV file. I need to get the data from both radios at the same time,running a scan 5 times on each, so what I do in the main part of my code is:
#we save the sdr and sdr2 in the same array
radios = [ sdr, sdr2]
pool = ThreadPool(4)
#create an object of class Scan
s=Scan()
#pool.map(function, array)
pool.map(s.scan, radios)
pool.close()
pool.join()
Then, the Scan function is:
class Scan:
def scan(self, object):
for i in range(0,1):
#Read iq data
samples = object.read_samples(256*1024)
#print(samples)
#get the maximum amplitude in frequency to save IQ samples if it's greater
#than -1 dB
sp = np.fft.fft(samples)
ps_real=sp.real
ps_imag=sp.imag
sq=np.power(ps_real,2)+np.power(ps_imag,2)
sqrt=np.sqrt(sq)
psd=sqrt/1024
value=[ps_real,ps_imag]
max=np.max(psd)
log=10*math.log10(max)
print(value)
current_time = time.strftime("%m.%d.%y-%H%M.csv", time.localtime())
if log > -1:
#save the IQ data in csv
with open('%s' % current_time, 'w',newline='') as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(zip(ps_real,ps_imag))
but what this does is getting the array (real,imag pairs) from the last iteration of one of the radios (I think it's only one) and save it in a unique CSV...I'd like to have 2 different CSVs, that's why I put the timestamp in the CSV name and I also need to record the data from any iteration. Any idea on how to fix this? Thanks!