read and save data to excel file
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user