diff --git a/FPC1000_viewer.py b/FPC1000_viewer.py index 85026f6..b1f4f06 100755 --- a/FPC1000_viewer.py +++ b/FPC1000_viewer.py @@ -14,110 +14,110 @@ PORT = 5555 #============================================================================== def parse(): - """ - Specific parsing procedure for Allan Deviation plotting tool. - :returns: populated namespace (parser) - """ - parser = argparse.ArgumentParser(description = 'R&S FPC1000 spectrum viewer', - epilog = 'Example: \'./FPC1000_viewer.py -ip \'192.168.0.2\' -p 1234\' plot current spectrum from given device') - - parser.add_argument('-ip', - action='store', - dest='ip', - default=IP, - help='device IP (default '+IP+')') - - parser.add_argument('-p', - action='store', - dest='port', - default=PORT, - help='device port (default '+str(PORT)+')') - - args = parser.parse_args() - return args + """ + Specific parsing procedure for Allan Deviation plotting tool. + :returns: populated namespace (parser) + """ + parser = argparse.ArgumentParser(description = 'R&S FPC1000 spectrum viewer', + epilog = 'Example: \'./FPC1000_viewer.py -ip \'192.168.0.2\' -p 1234\' plot current spectrum from given device') + + parser.add_argument('-ip', + action='store', + dest='ip', + default=IP, + help='device IP (default '+IP+')') + + parser.add_argument('-p', + action='store', + dest='port', + default=PORT, + help='device port (default '+str(PORT)+')') + + args = parser.parse_args() + return args #============================================================================== def send(sock, command): - sock.send("%s\n"%command) + sock.send("%s\n"%command) #============================================================================== def read(sock): - ans = '' - nb_data_list = [] - nb_data = '' - try: - while ans != '\n': - ans = sock.recv(1) - nb_data_list.append(ans) # Return the number of data - list_size = len(nb_data_list) - for j in range (0, list_size): - nb_data = nb_data+nb_data_list[j] - return nb_data - except socket.timeout: - print "Socket timeout error when reading." + ans = '' + nb_data_list = [] + nb_data = '' + try: + while ans != '\n': + ans = sock.recv(1) + nb_data_list.append(ans) # Return the number of data + list_size = len(nb_data_list) + for j in range (0, list_size): + nb_data = nb_data+nb_data_list[j] + return nb_data + except socket.timeout: + print "Socket timeout error when reading." #============================================================================== def get_spectrum(sock): - send(sock, 'FREQ:STAR?') - x1 = read(sock) - x1 = float(x1.replace('\n','')) - send(sock, 'FREQ:STOP?') - x2 = read(sock) - x2 = float(x2.replace('\n','')) - send(sock, 'TRAC?') - y = read(sock) - y = numpy.array(y.replace('\n','').split(','), dtype='float') - x = numpy.linspace(x1, x2, len(y)) - return (x, y) + send(sock, 'FREQ:STAR?') + x1 = read(sock) + x1 = float(x1.replace('\n','')) + send(sock, 'FREQ:STOP?') + x2 = read(sock) + x2 = float(x2.replace('\n','')) + send(sock, 'TRAC?') + y = read(sock) + y = numpy.array(y.replace('\n','').split(','), dtype='float') + x = numpy.linspace(x1, x2, len(y)) + return (x, y) #============================================================================== def main(): - """ - Main script - """ - # Parse command line - args = parse() - # ip - ip = str(args.ip) - # port - port = int(args.port) - - try: - sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_TCP) - sock.settimeout(10.0) - sock.connect((ip, port)) - - app = QtGui.QApplication([]) - - win = pyqtgraph.GraphicsWindow(title='Basic FPC1000 viewer (%s:%i)'%(ip, port)) - - pyqtgraph.setConfigOptions(antialias=True) - - global curve, ptr, p1 - p1 = win.addPlot(title="Spectrum") - curve = p1.plot(pen='y') - ptr = 0 - def update(): - global curve, ptr, p1 - (x_data, y_data) = get_spectrum(sock) - curve.setData(x = x_data, y = y_data) - if ptr == 0: - p1.enableAutoRange('xy', False) ## stop auto-scaling after the first data set is plotted - ptr += 1 - timer = QtCore.QTimer() - timer.timeout.connect(update) - timer.start(500) - - if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): - QtGui.QApplication.instance().exec_() - - except: - pass - - ## Start Qt event loop unless running in interactive mode or using pyside. + """ + Main script + """ + # Parse command line + args = parse() + # ip + ip = str(args.ip) + # port + port = int(args.port) + + try: + sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_TCP) + sock.settimeout(10.0) + sock.connect((ip, port)) + + app = QtGui.QApplication([]) + + win = pyqtgraph.GraphicsWindow(title='Basic FPC1000 viewer (%s:%i)'%(ip, port)) + + pyqtgraph.setConfigOptions(antialias=True) + + global curve, ptr, p1 + p1 = win.addPlot(title="Spectrum") + curve = p1.plot(pen='y') + ptr = 0 + def update(): + global curve, ptr, p1 + (x_data, y_data) = get_spectrum(sock) + curve.setData(x = x_data, y = y_data) + if ptr == 0: + p1.enableAutoRange('xy', False) ## stop auto-scaling after the first data set is plotted + ptr += 1 + timer = QtCore.QTimer() + timer.timeout.connect(update) + timer.start(500) + + if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): + QtGui.QApplication.instance().exec_() + + except: + pass + + ## Start Qt event loop unless running in interactive mode or using pyside. if __name__ == '__main__': - main() + main()