def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) config = configs.EnvelopeServiceConfig() config.sensor = args.sensors print(config) connect_info = client.connect() print("connect info:") print_dict(connect_info) session_info = client.start_session(config) print("session_info:") print_dict(session_info) data_info, data = client.get_next() print("data_info:") print_dict(data_info) client.disconnect()
def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) config = configs.IQServiceConfig() config.sensor = args.sensors config.range_interval = [0.2, 0.6] config.update_rate = 50 info = client.start_session(config) interrupt_handler = utils.ExampleInterruptHandler() print("Press Ctrl-C to end session") fc = utils.FreqCounter(num_bits=(4 * 8 * info["data_length"])) while not interrupt_handler.got_signal: info, data = client.get_next() fc.tick() print("\nDisconnecting...") client.disconnect()
def main(): client = clients.UARTClient("/dev/ttyUSB1") client.squeeze = False sensor_config = configs.EnvelopeServiceConfig() sensor_config.sensor = 1 sensor_config.range_interval = [0.2, 1.0] sensor_config.profile = sensor_config.Profile.PROFILE_2 sensor_config.hw_accelerated_average_samples = 20 sensor_config.downsampling_factor = 2 session_info = client.setup_session(sensor_config) client.start_session()
def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) client.squeeze = False sensor_config = configs.SparseServiceConfig() sensor_config.sensor = args.sensors sensor_config.range_interval = [0.24, 1.20] sensor_config.sweeps_per_frame = 16 sensor_config.hw_accelerated_average_samples = 60 sensor_config.sampling_mode = sensor_config.SamplingMode.A sensor_config.profile = sensor_config.Profile.PROFILE_3 sensor_config.gain = 0.6 session_info = client.setup_session(sensor_config) pg_updater = PGUpdater(sensor_config, None, session_info) pg_process = PGProcess(pg_updater) pg_process.start() client.start_session() interrupt_handler = utils.ExampleInterruptHandler() print("Press Ctrl-C to end session") while not interrupt_handler.got_signal: data_info, data = client.get_next() try: pg_process.put_data(data) except PGProccessDiedException: break print("Disconnecting...") pg_process.close() client.disconnect()
def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) client.squeeze = False sensor_config = get_sensor_config() processing_config = get_processing_config() sensor_config.sensor = args.sensors session_info = client.setup_session(sensor_config) pg_updater = PGUpdater(sensor_config, processing_config, session_info) pg_process = PGProcess(pg_updater) pg_process.start() client.start_session() interrupt_handler = utils.ExampleInterruptHandler() print("Press Ctrl-C to end session") processor = Processor(sensor_config, processing_config, session_info) while not interrupt_handler.got_signal: info, data = client.get_next() plot_data = processor.process(data) if plot_data is not None: try: pg_process.put_data(plot_data) except PGProccessDiedException: break print("Disconnecting...") pg_process.close() client.disconnect()
def check_connection(args): print("Checking connection to radar") try: if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) client.connect() client.disconnect() return True except Exception: print() traceback.print_exc() print() return False
def setup(request): conn_type, *args = request.param if conn_type == "spi": client = clients.SPIClient() sensor = 1 elif conn_type == "uart": port = args[0] or utils.autodetect_serial_port() client = clients.UARTClient(port) sensor = 1 elif conn_type == "socket": client = clients.SocketClient(args[0]) sensor = int(args[1]) elif conn_type == "mock": client = clients.MockClient() sensor = 1 else: pytest.fail() client.connect() yield (client, sensor) client.disconnect()
def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) client.squeeze = False range_start = 0.18 range_end = 0.60 num = int((range_end*100-range_start*100)/6)+1 sensor_config = configs.SparseServiceConfig() sensor_config.sensor = args.sensors sensor_config.range_interval = [range_start, range_end] sensor_config.sweeps_per_frame = 16 sensor_config.hw_accelerated_average_samples = 60 sensor_config.sampling_mode = sensor_config.SamplingMode.A sensor_config.profile = sensor_config.Profile.PROFILE_2 sensor_config.gain = 0.6 session_info = client.setup_session(sensor_config) # pg_updater = PGUpdater(sensor_config, None, session_info) # pg_process = PGProcess(pg_updater) # pg_process.start() client.start_session() storage = [] counter = 0 sample = 300 interrupt_handler = utils.ExampleInterruptHandler() print("Press Ctrl-C to end session") temp = np.zeros(num) #端末からデータを受け取り、フレームに入っているsweepの平均を取得し、tempに追加 while not interrupt_handler.got_signal: data_info, data = client.get_next() counter += 1 for sweep in data[0]: temp = temp + sweep temp = temp/len(data[0]) storage.append(temp) temp = np.zeros(int(num)) if(counter >= sample): break #300個のフレームから距離ごとに平均を取得 # result = np.zeros(len(storage[0])) # for data in storage: # result = result + data # result = result/len(storage) # clr=plt.rcParams['axes.prop_cycle'].by_key()['color'] roop_count = 0 prev_getData = np.loadtxt('sparse.csv') #生データ300個のフレームの平均を表示 show_raw_data = np.zeros(int(num)) for frame in storage: show_raw_data += frame show_curr_RawData = show_raw_data/sample ##保存していたデータの生データ300個のフレームの平均 show_prev_RawData = [] for data in prev_getData: show_prev_RawData.append(np.sum(data)/sample) x = np.arange(range_start*100,range_end*100+1,6) plt.subplot(1,3,1) plt.plot(x,show_curr_RawData,color='r') plt.title("Raw Data(Current)") plt.xlabel("Distance(cm)") plt.ylabel("Amptitude") plt.subplot(1,3,2) plt.plot(x,show_prev_RawData,color='b') plt.title("Raw Data(Previous)") plt.xlabel("Distance(cm)") plt.ylabel("Amptitude") plt.subplot(1,3,3) plt.title("Raw Data(Compare)") plt.plot(x,show_curr_RawData,color='r') plt.plot(x,show_prev_RawData,color='b') plt.xlabel("Distance") plt.ylabel("Amptitude") # plt.tight_layout() # plt.show() # exit(1) #データを別々に表示 for i in range(num): show_data = [] plt.subplot(math.ceil(num/2),4,roop_count*2+1) plt.title(str(range_start*100+i*6)+"cm(Current)") plt.xlabel("Quantity") plt.ylabel("Amptitude") for j in range(len(storage)): show_data.append(storage[j][i]) plt.plot(range(1,sample+1),show_data,color='r') plt.subplot(math.ceil(num/2),4,roop_count*2+2) plt.title(str(range_start*100+i*6)+"cm(Previous)") plt.plot(range(1,sample+1),prev_getData[i],color='b') plt.xlabel("Quantity") plt.ylabel("Amptitude") roop_count += 1 # plt.tight_layout() # plt.show() #データをあわせて表示 for i in range(num): show_data = [] plt.subplot(math.ceil(num/2),2,i+1) for j in range(len(storage)): show_data.append(storage[j][i]) plt.plot(range(1,sample+1),show_data,color='r',label="Current Data") plt.title(str(range_start*100+i*6)+"cm(Combination)") plt.plot(range(1,sample+1),prev_getData[i],color='b',label="Previous Data") plt.xlabel("Quantity") plt.ylabel("Amptitude") plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0,fontsize='small') # plt.tight_layout() # plt.show() #ある距離の時系列データの遷移とそのデータのヒストグラムの表示 now_getData = [] for i in range(num): show_data = [] # plt.subplot(math.ceil(num/2),2,i+1) plt.subplot(math.ceil(num/2),4,i*2+1) plt.title(str(range_start*100+i*6)+"cm") plt.xlabel("Distance") plt.ylabel("Amptitude") for j in range(len(storage)): show_data.append(storage[j][i]) now_getData.append(show_data) # ヒストグラムの作成と表示 # hist, bins = np.histogram(show_data,density=True) plt.plot(range(1,sample+1),show_data,color = "tomato") plt.subplot(math.ceil(num/2),4,i*2+2) plt.hist(show_data,bins=10,density=True,color = "aqua") plt.title(str(range_start*100+i*6)+"cm") plt.xlabel("Class") plt.ylabel("Frequency") # print("ヒストグラムの度数"+str(hist[0])) # print("階級を区切る値"+str(hist[1])) # plt.tight_layout() # plt.show() #ndarray型に変換し、保存 # now_getData = np.array(now_getData) # np.savetxt('sparse.csv',now_getData) # exit(1) roop_count = 0 prev_getData = np.loadtxt('sparse.csv') KL_storage = [] JS_storage = [] #ヒストグラムの度数からKLを算出 for i in zip(prev_getData,now_getData): plt.subplot(math.ceil(num/2),4,roop_count*2+1) plt.title(str(range_start*100+roop_count*6)+"cm(Previous)") plt.xlabel("Distance") plt.ylabel("Frequency") now_hist = plt.hist(i[0],bins=10,color = "lime") now_hist = normalization(np.array(now_hist[0])) # now_hist_normalization = normalization(np.array(now_hist[0])) # now_hist[0] = now_hist_normalization # print(now_hist) plt.subplot(math.ceil(num/2),4,roop_count*2+2) plt.title(str(range_start*100+roop_count*6)+"cm(Now)") plt.xlabel("Distance") plt.ylabel("Frequency") prev_hist = plt.hist(i[1],bins=10,color = "deepskyblue") prev_hist = normalization(np.array(prev_hist[0])) # print("now_histの要素の数: "+str(len(now_hist[0]))) # print("prev_histの要素の数: "+str(len(now_hist[0]))) KL_value = KLdivergence(now_hist,prev_hist) print(str(range_start*100+roop_count*6)+"cm時のKL_Divergence: "+str(KL_value)) JS_value = JSdivergence(now_hist,prev_hist) print(str(range_start*100+roop_count*6)+"cm時のJS_Divergence: "+str(JS_value)+"\n") KL_storage.append(KL_value) JS_storage.append(JS_value) roop_count += 1 # plt.tight_layout() # plt.show() temp_KLlist = [] temp_store_KLlist = [] temp_JSlist = [] temp_store_JSlist = [] temp_KLlist.append(np.array(KL_storage)) temp_JSlist.append(np.array(JS_storage)) #ファイルからデータを読みこむ store_KLarr = np.loadtxt("KLDivergence_Sparse.csv",delimiter = ",") store_JSarr = np.loadtxt("JSDivergence_Sparse.csv",delimiter = ",") temp_store_KLlist.append(store_KLarr) temp_store_JSlist.append(store_JSarr) #データを追加 store_KLarr = np.empty((0,num),int) store_JSarr = np.empty((0,num),int) for data in temp_store_KLlist: print(data) store_KLarr = np.append(store_KLarr,np.array(data),axis=0) # store_KLarr = np.append(store_KLarr,np.array(temp_store_KLlist),axis=0) for data in temp_store_KLlist: store_JSarr = np.append(store_JSarr,np.array(data),axis=0) # store_JSarr = np.append(store_JSarr,np.array(temp_store_JSlist),axis=0) store_KL = np.append(store_KLarr,np.array(temp_KLlist),axis=0) store_JS = np.append(store_JSarr,np.array(temp_JSlist),axis=0) #ファイルを保存 store_KL = np.savetxt("KLDivergence_Sparse.csv",store_KL,delimiter=",") store_JS = np.savetxt("JSDivergence_Sparse.csv",store_JS,delimiter=",") #KL,JSの平均値 # print("KL_Divergenceの平均値: "+str(np.sum(np.array(KL_storage))/num)+"\n") # print("JS_Divergenceの平均値: "+str(np.sum(np.array(JS_storage))/num)+"\n") #KLとJSを可視化 X = list(range(int(range_start*100),int(range_end*100+1),6)) plt.subplot(1,3,1) # plt.plot(range(len(KL_storage)),KL_storage,color='r',marker="o") plt.plot(X,KL_storage,color='r',marker="o") plt.title("KL Divergence") plt.xlabel("Distance") plt.ylabel("Amptitude") plt.subplot(1,3,2) plt.plot(X,JS_storage,color='b',marker="o") plt.title("JS Divergence") plt.xlabel("Distance") plt.ylabel("Amptitude") plt.subplot(1,3,3) plt.plot(X,KL_storage,color='r',marker="o") plt.plot(X,JS_storage,color='b',marker="o") # plt.plot(X,KL_strage,color='r',marker="o",linewidth=0) # plt.plot(X,JS_strage,color='b',marker="o",linewidth=0) plt.title("Compare") plt.xlabel("Distance") plt.ylabel("Amptitude") # plt.tight_layout() # plt.show() print("Disconnecting...") client.disconnect()
def main(): args = utils.ExampleArgumentParser().parse_args() utils.config_logging(args) if args.socket_addr: client = clients.SocketClient(args.socket_addr) elif args.spi: client = clients.SPIClient() else: port = args.serial_port or utils.autodetect_serial_port() client = clients.UARTClient(port) client.squeeze = False sensor_config = configs.EnvelopeServiceConfig() sensor_config.sensor = args.sensors sensor_config.range_interval = [0.2, 1.0] sensor_config.profile = sensor_config.Profile.PROFILE_2 sensor_config.hw_accelerated_average_samples = 20 sensor_config.downsampling_factor = 2 session_info = client.setup_session(sensor_config) pg_updater = PGUpdater(sensor_config, None, session_info) pg_process = PGProcess(pg_updater) #pg_process.start() client.start_session() interrupt_handler = utils.ExampleInterruptHandler() print("Press Ctrl-C to end session") f = open("demo.txt", "w") while not interrupt_handler.got_signal: data_info, data = client.get_next() tempstr = " " #Array is within another Array, need to get address internal array dataArray = data[0] localMaxArray = [0, 0] breakVariable = 0 iteratorJ = 0 iteratorI = 0 for x in dataArray: if (iteratorJ > 10): localMaxArray[0] = iteratorI - iteratorJ break else: if (x >= localMaxArray[0]): localMaxArray[0] = x iteratorJ = 0 else: iteratorJ = iteratorJ + 1 iteratorI = iteratorI + 1 while (dataArray[iteratorI] >= dataArray[iteratorI + 1]): iteratorI = iteratorI + 1 iteratorJ = 0 while (iteratorI < 827): if (iteratorJ > 10): localMaxArray[1] = iteratorI - iteratorJ break else: if (dataArray[iteratorI] >= localMaxArray[1]): localMaxArray[1] = dataArray[iteratorI] iteratorJ = 0 else: iteratorJ = iteratorJ + 1 iteratorI = iteratorI + 1 #try: #pg_process.put_data(data) #except PGProccessDiedException: #break print( math.floor( (((localMaxArray[1] - localMaxArray[0]) / 1.773) * 0.0393701) * 10) / 10) print("Disconnecting...") f.close() #pg_process.close() client.disconnect()
import sys from acconeer.exptool import clients from acconeer.exptool import utils from acconeer.exptool import configs #from acconeer.exptool.pg_process import PGProccessDiedException, PGProcess import numpy import math import time from scipy import stats client = clients.UARTClient("/dev/ttyUSB1") numtries = 1 def initialize(): ''' ********************************** Initialize: Call once at beginning ********************************** ''' client.squeeze = False sensor_config = configs.EnvelopeServiceConfig() sensor_config.sensor = 1 sensor_config.range_interval = [0.2, 1.0] sensor_config.profile = sensor_config.Profile.PROFILE_2 sensor_config.hw_accelerated_average_samples = 20 sensor_config.downsampling_factor = 2 sensor_config.repetition_mode = configs.EnvelopeServiceConfig.RepetitionMode.SENSOR_DRIVEN sensor_config.update_rate = 10 * numtries # period of 100ms