停止recv套接字蓝牙数据

时间:2017-07-20 14:09:04

标签: java android bluetooth

我想直接在我的智能手机上从我的RPI3上的sdr USB插头获取数据。使用函数samples=sdr.read_samples(256*1024),我可以轻松地在循环中获取样本(而(1))。现在我的工作是通过蓝牙与Android应用程序更改中心频率。问题实际上是:我无法从我的密钥接收新数据,我可以通过结构更改值:data=client_sock.recv(1024)

但是我的函数sdr.read_samples无法获得新的价值,因为如果她没有数据,函数from pylab import* from rtlsdr import* from bluetooth import* import sys #configure device sdr= RtlSdr() sdr.sample_rate=double(sys.argv[3]) sdr.gain=double(sys.argv[2]) sdr.center_freq=double(sys.argv[1]) NFFT=33 #Bluetooth connection server_sock=BluetoothSocket(RFCOMM) server_sock.bind(("",PORT_ANY)) server_sock.listen(1) port=server_sock.getsockname()[1] uuid="94f39d29-7d6d-437d-973b-fba39e49d4ee" client_sock,client_info=server_sock.accept() while(1): samples=sdr.read_samples(256*1024) result=psd(samples,NFFT, Fs=sdr.sample_rate/1e6, Fc=sdr.center_freq*1e6/1e6) tab_freq=(result[1]/1e6) value_freq=str(tab_freq)[1:-1] value_list=[format(float(v), ".10f") for v in value_freq.split()] value_freq2= "\n".join(value_list) tab_pxx=result[0] value_pxx=str(tab_pxx)[1:-1] client_sock.send(value_freq2+'\n'+'\n'.join(value_pxx.split())) try: data=client_sock.recv(1024) if len(data)==0: break data2=float(data) a=data2 except IOError: pass 会阻止我的循环。但这不是我想要的。我想从我的{{1}}获取数据,如果她从我的手机中检测到新数据,那么她正在运行。

{{1}}

我该如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我用except Bluetooth:

解决了这个问题