From 5a24d49bd09e76a01d8b6f76f595a37fcf2466e2 Mon Sep 17 00:00:00 2001 From: Kristjan Komlosi Date: Fri, 11 Jan 2019 17:17:13 +0100 Subject: [PATCH] graf --- main.py | 21 +++++++++++++++++++++ utils/getcdata.py | 27 ++++++++++++++++++--------- 2 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..5cbb845 --- /dev/null +++ b/main.py @@ -0,0 +1,21 @@ +#main.py - the main program file of the TeraHz project +#This code is licensed under 3-clause BSD licensed +import serial as ser + +#global config +# TODO: move this to another file +uartpath = '/dev/ttyUSB0' +uartbaud = 115200 +uarttout = 5 + +print('TeraHz project') +print('Accessing the serial port') + +sp = 'blank' + +try: + sp = ser.Serial(uartpath, uartbaud, timeout=uarttout) +except Exception as e: + print('Connection to serial port at {} failed!'.format(uartpath)) + raise e + exit() diff --git a/utils/getcdata.py b/utils/getcdata.py index 28d0817..0d726aa 100644 --- a/utils/getcdata.py +++ b/utils/getcdata.py @@ -4,7 +4,8 @@ import serial as ser from parse import * import pandas as pd import numpy as np - +import matplotlib.pyplot as plt +import time #global variables uartpath = '/dev/ttyUSB0' uartbaud = 115200 @@ -13,19 +14,27 @@ uarttout = 5 wl = [410, 435, 460, 485, 510, 535, 560, 585, 610, 645, 680, 705, 730, 760, 810, 860, 900, 940] responseorder = [i for i in 'RSTUVWGHIJKLABCDEF'] # works, do NOT touch! realorder = [i for i in 'ABCDEFGHRISJTUVWKL'] +plt.ion() print('getcdata') print('This utility is part of the TeraHz project') wavelens = pd.Series(realorder) +data=pd.DataFrame([], []) wavetable = pd.DataFrame(columns=realorder) - +graph=plt.figure() +plot=graph.add_subplot(111) with ser.Serial(uartpath, uartbaud, timeout=uarttout) as sensor: - sensor.write(b'ATCDATA\n') - rawresp = sensor.readline().decode() - # parses, calculates and saves the data - response = pd.Series([float(i)/35.0 for i in rawresp[:-3].split(',')], index=responseorder) - data = pd.DataFrame(response, index=realorder, columns = ['uW/cm^2']) # puts data into a DataFrame - data.insert(0, 'wavelenght', wl) #inserts a legend - print(data) + while True: + sensor.write(b'ATCDATA\n') + rawresp = sensor.readline().decode() + # parses, calculates and saves the data + response = pd.Series([float(i)/35.0 for i in rawresp[:-3].split(',')], index=responseorder) + data = pd.DataFrame(response, index=realorder, columns = ['uW/cm^2']) # puts data into a DataFrame + data.insert(0, 'wavelenght', wl) #inserts a legend + print(data) + plot.cla() + line=plot.plot(data['wavelenght'], data['uW/cm^2']) + graph.canvas.draw() + time.sleep(1)