diff --git a/scripts/consolidated_data.py b/scripts/consolidated_data.py index 74b595f..171aaeb 100644 --- a/scripts/consolidated_data.py +++ b/scripts/consolidated_data.py @@ -72,7 +72,7 @@ if __name__ == "__main__": df = df.sort_values(by=['testTime'], ascending=False) # df = df.drop(['resultData', "reportUploadTime", "userImageURL", "testType", "birthYear", "testStatus"], axis=1) df = df[["_id", "calculatedRatio", "deviceId", "deviceRatio", "deviceType", "kitSerial", "led1Average", "led1Buffer", "led1Sample", "led2Average", "led2Buffer", "led2Sample", "location", "deviceSerialNumber", "name", "testTime"]] - df.rename(columns={'deviceSerialNumber': "loginId", "calculatedRatio": "calibratedRatio"}, inplace = True) + df.rename(columns={'deviceSerialNumber': "login_id", "calculatedRatio": "calibrated_ratio", "led1Buffer": "427_buffer_intensity", "led2Buffer": "555_buffer_intensity", "led1Sample": "427_sample_intensity", "led2Sample": "555_sample_intensity", "led1Average": "427_absorbance", "led2Average": "555_absorbance"}, inplace = True) df = df.reindex(sorted(df.columns), axis=1) df.to_excel(writer, sheet_name = 'data', index=False) writer.close() diff --git a/scripts/serial_qc.py b/scripts/serial_qc.py index adec88c..06f6c97 100644 --- a/scripts/serial_qc.py +++ b/scripts/serial_qc.py @@ -1,16 +1,36 @@ import serial import pandas as pd +import os.path +from datetime import datetime +import math +import time +from tqdm import tqdm -if __name__ == "__main__": +class Device: + def __init__(self, accuracy, precision): + self.accuracy = accuracy + self.precision = precision +def perform_hpos_test(repeat_no): try: + data_file = 'data.xlsx' + if os.path.exists(data_file): + df = pd.read_excel('data.xlsx') + else: + df = pd.DataFrame(columns=["sol", "427_buffer_intensity", "555_buffer_intensity", "427_sample_intensity", "555_sample_intensity", "427_absorbance", "555_absorbance", "absorbance_ratio", "time"]) + + time.sleep(5) + with serial.Serial('/dev/cu.usbserial-1420', 115200, timeout=1, parity=serial.PARITY_NONE) as ser: - x = ser.read() # read one byte - s = ser.read(10) # read up to ten bytes (timeout) - line = ser.readline() # read a '\n' terminated line + x = ser.read() + s = ser.read(10) + line = ser.readline() print(x) print(s) print(line) + + # perform_blanking = input("Do you want to perform blanking?(Y/N)") + ser.write(b'B') while True: x = ser.read() @@ -32,12 +52,32 @@ if __name__ == "__main__": line = ser.readline() print(r) if 'RESULT' in r.decode("utf-8") or 'REND' in r.decode('utf-8'): - print(r) + result = r.decode("utf-8").split(' ') + df = pd.concat([df, pd.DataFrame([{"sol": solution + '-' + str(repeat_no), "427_buffer_intensity": result[3], "555_buffer_intensity": result[3], "427_sample_intensity": result[5], "555_sample_intensity": result[6], "427_absorbance": math.log10(float(result[3]) / float(result[5])), "555_absorbance": math.log10(float(result[4]) / float(result[6])), "absorbance_ratio": math.log10(float(result[3]) / float(result[5])) / math.log10(float(result[4]) / float(result[6])), "time": datetime.today().strftime('%d-%m-%y %H:%M:%S')}])], ignore_index = True) + print(df) + writer = pd.ExcelWriter(data_file, engine = 'openpyxl') + df.to_excel(writer, sheet_name = 'data', index=False) + writer.close() break break break + except serial.serialutil.SerialException: - print("connect device!") - except: - print("error!") + print("device is not connected!") + exit() + except Exception as err: + print("error!", err) + exit() + + +if __name__ == "__main__": + + d = Device(0.01, 0.001) + + solution = input("solution name: ") + repeats = int(input("number of repeats: ")) + for repeat in tqdm(range(0, repeats)): + perform_hpos_test(repeat) + + \ No newline at end of file