import Tkinter as tk #將Python程式碼變成圖形化介面的套件庫
import tkMessageBox#顯示對話框
import ttk
from time import sleep
from PIL import Image, ImageTk
import sys
import numpy as np
from sklearn.externals import joblib
from csv import reader
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import serial
import time#未使用
import math
import os
import ssl
import urllib
import pickle

##Rainie Add##
#Jetson nano初始化
sys.path.append("/opt/nvidia/jetson-gpio/lib/python/")
sys.path.append('/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO')
import Jetson.GPIO as GPIO
##Rainie Add##

from NIRS import NIRS #光譜
import matplotlib

class initialization_basedesk():                          
    def __init__(self,master):
        #初始化Tkinter視窗
        self.root = master
        self.root.config()
        self.root.title('Base page')#程式上方的文字
        #self.root.geometry('1024x700+0+0')#長寬設定
        self.root.attributes('-fullscreen', True)
        self.root.configure(bg = "linen")
        #Measure_initface_penetrate(self.root)  
        RFID_code(self.root)#呼叫進行RFID識別

class Measure_initface_penetrate(): #杯子
    def __init__(self,master):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')

        self.Measure_initface_penetrate = tk.Frame(self.master,)
        self.Measure_initface_penetrate.config(bg='linen')
        self.Measure_initface_penetrate.place(x = 0, y = 0, width=1024, height=700)
        
        self.img1 = Image.open('/home/ispect/Desktop/GUI_element/test.png')
        self.img1 = self.img1.resize((420,127), Image.ANTIALIAS)
        self.tk_img_1 = ImageTk.PhotoImage(self.img1)

        self.img2 = Image.open('/home/ispect/Desktop/GUI_element/penetrate_image1.png')
        self.img2 = self.img2.resize((900,500), Image.ANTIALIAS)
        self.tk_img_2 = ImageTk.PhotoImage(self.img2)   
        
        self.label = tk.Label(self.Measure_initface_penetrate, image=self.tk_img_2, width=900, height=450)  
        self.label.config(bg = "linen")
        self.label.place(x = 5, y = 5) 
        
        GPIO.output(led_pin, GPIO.HIGH)
        
        self.Enter_button = tk.Button(self.Measure_initface_penetrate, image=self.tk_img_1, command=self.measure)
        self.Enter_button.grid(row=5, column=1)
        self.Enter_button.config(bg = "white")
        self.Enter_button.place(x = 240, y = 470, width=540, height=128)
        
        self.shutdown_button = tk.Button(self.Measure_initface_penetrate, text='shutdown', command=self.measure)
        self.shutdown_button.grid(row=5, column=1)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 547, width=100, height=18)   
        
        self.progressbarOne = ttk.Progressbar(self.Measure_initface_penetrate)
        self.progressbarOne.place(x = 308, y = 460, width=400, height=10)
        GPIO.cleanup()
    def measure(self,):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED        
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()
        
        GPIO.output(led_pin, GPIO.HIGH)
        print("hello world")
        
        nirs.scan()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        results = nirs.get_scan_results()
        
        print(results['wavelength'], type(results['wavelength']), len(results['wavelength']))
        print(results['intensity'], type(results['intensity']), len(results['intensity']))
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()        
        
        penetrate = str(results['intensity'])
        penetrate = penetrate.replace("[","")
        penetrate = penetrate.replace("]","")

        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        penetrate_intensity = open('/home/ispect/Desktop/GUI_element/costom_data/interface_penetrate.txt', 'w')
        penetrate_intensity.write(penetrate)
        penetrate_intensity.close()

        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        tkMessageBox.showinfo('warning', "Measure penetrate successfully.")
        
        self.progressbarOne['value']=0
        self.Measure_initface_penetrate.update()
        
        self.Measure_initface_penetrate.destroy()
        
        Measure_initface_reference_white(self.master)
        GPIO.cleanup()     
        
class Measure_initface_reference_white(): 
    def __init__(self,master):
        
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')
        self.Measure_initface_reference_white = tk.Frame(self.master,)
        self.Measure_initface_reference_white.config(bg='linen')
        self.Measure_initface_reference_white.place(x = 0, y = 0, width=1024, height=700)
        
        self.img1 = Image.open('/home/ispect/Desktop/GUI_element/test.png')
        self.img1 = self.img1.resize((420,127), Image.ANTIALIAS)
        self.tk_img_1 = ImageTk.PhotoImage(self.img1)

        self.img2 = Image.open('/home/ispect/Desktop/GUI_element/reference_image1.png')
        self.img2 = self.img2.resize((900,500), Image.ANTIALIAS)
        self.tk_img_2 = ImageTk.PhotoImage(self.img2)   
        
        self.label = tk.Label(self.Measure_initface_reference_white, image=self.tk_img_2, width=900, height=500)  
        self.label.config(bg = "linen")
        self.label.place(x = 5, y = 5) 
        
        GPIO.output(led_pin, GPIO.HIGH)
        
        self.Enter_button = tk.Button(self.Measure_initface_reference_white, image=self.tk_img_1, command=self.measure)
        self.Enter_button.grid(row=5, column=1)
        self.Enter_button.config(bg = "white")
        self.Enter_button.place(x = 240, y = 500, width=540, height=128)
        
        self.shutdown_button = tk.Button(self.Measure_initface_reference_white, text='shutdown', command=self.shutdown)
        self.shutdown_button.grid(row=5, column=1)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 547, width=100, height=18)   
        
        self.progressbarOne = ttk.Progressbar(self.Measure_initface_reference_white)
        self.progressbarOne.place(x = 308, y = 460, width=400, height=10)
        
        GPIO.cleanup()

    def measure(self,):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED  
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        GPIO.output(led_pin, GPIO.HIGH)
        print("hello world")
        nirs.scan()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        results = nirs.get_scan_results()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        
        print(results['wavelength'], type(results['wavelength']), len(results['wavelength']))
        print(results['intensity'], type(results['intensity']), len(results['intensity']))
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        intensity = str(results['intensity'])
        intensity = intensity.replace("[","")
        intensity = intensity.replace("]","")

        reference_white_intensity = open('/home/ispect/Desktop/GUI_element/costom_data/interface_reference_white.txt', 'w')
        reference_white_intensity.write(intensity)
        reference_white_intensity.close()
             
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
           
        tkMessageBox.showinfo('warning', "Measure Reference successfully.")
        
        self.progressbarOne['value']=0
        self.Measure_initface_reference_white.update()
        
        self.Measure_initface_reference_white.destroy()
        
        choose_measure(self.master)
        GPIO.cleanup()

    def shutdown(self,):
        os.system("/home/ispect/shutdown.sh")
        
class RFID_code():#讀取RFID的UID
    def __init__(self,master):
        
        GPIO.setmode(GPIO.BOARD)
        self.master = master
        self.master.config(bg='linen')

        self.initface = tk.Frame(self.master,)
        self.initface.config(bg='linen')
        self.initface.place(x = 0, y = 0, width=1024, height=700)
        
        GPIO.output(led_pin, GPIO.LOW)
        self.UID = tk.StringVar()    

        self.img5 = Image.open('/home/ispect/Desktop/GUI_element/mobile_RFID1.png')
        self.img5 = self.img5.resize((600,450), Image.ANTIALIAS)
        self.tk_img_5 = ImageTk.PhotoImage(self.img5)   
    
        self.img4 = Image.open('/home/ispect/Desktop/GUI_element/mobile_UID_button.png')
        self.img4 = self.img4.resize((480,127), Image.ANTIALIAS)
        self.tk_img_4 = ImageTk.PhotoImage(self.img4)   
        
        self.img3 = Image.open('/home/ispect/Desktop/GUI_element/clear.png')
        self.img3 = self.img3.resize((100,90), Image.ANTIALIAS)
        self.tk_img_3 = ImageTk.PhotoImage(self.img3)  
    
        self.RFIDlabel = tk.Label(self.initface, image=self.tk_img_5, width=650, height=420)  
        self.RFIDlabel.config(bg = "linen")
        self.RFIDlabel.place(x = 250, y = 5) 
        
        self.UID_label = tk.Label(self.initface, text='Your UID = ')
        self.UID_label.config(font=("Times New Roman",28,"bold"),bg = "linen" )
        self.UID_label.place(x = 202, y = 350) 
        
        self.UID_code = tk.Entry(self.initface, textvariable = self.UID)
        self.UID_code.config(font=("Times New Roman",28))
        self.UID_code.place(x = 400, y = 345, width=230, height=60)
        self.UID_code.focus_set()

        #"click here and induction easy card"
        self.Measure_button = tk.Button(self.initface, image=self.tk_img_4, command=self.measure)#這是個按鈕，按下時觸發self.measure
        self.Measure_button.config(bg = "white")
        self.Measure_button.place(x = 202, y = 437, width=540, height=128)
    
        self.clear_button = tk.Button(self.initface, image=self.tk_img_3, command=self.clear)
        self.clear_button.config(bg = "white")
        self.clear_button.place(x = 650, y = 325, width=100, height=90)
    
        self.shutdown_button = tk.Button(self.initface, text='shutdown', command=self.shutdown)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 547, width=100, height=18)
        
        GPIO.cleanup()
    
    def shutdown(self,):
        os.system("/home/ispect/shutdown.sh")

    def measure(self,):#讀取UID_code中輸入的UID
        print(self.UID_code.get())
        print("hello world")
        f_uid = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'w')
        self.UID = str(self.UID_code.get())
        f_uid.write(self.UID)#顯示一個消息框，通知用戶 UID 設定成功。
        f_uid.close()
                        
        tkMessageBox.showinfo('warning', "UID setting successfully.\n UID = " + self.UID)
        
        self.initface.destroy()
        Measure_initface_reference_white(self.master)
    def clear(self,):
        self.UID.set("")
        self.UID_code.delete(0,'end')

class Measure_initface_reference_white_RFID(): 
    def __init__(self,master):
        
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')
        
        self.f = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        self.UID = self.f.read()
        
        GPIO.output(led_pin, GPIO.LOW)
        
        if self.UID == "C55CD86B":
    	    self.data_name = str("Yu-Shing Zhou")
        elif self.UID == "451B3749":
    	    self.data_name = str("Jungle Chen")
        elif self.UID == "9536C36B":
    	    self.data_name = str("Yu-Ping Chen")
        elif self.UID == "F585CB6B":
            self.data_name = str("Ya-Pei Chou") 
        elif self.UID == "2501B96B":
            self.data_name = str("Hsin-I Ho") 
        elif self.UID == "75CDAB28":
            self.data_name = str("Jen-Jie Chieh") 
        else:
    	    self.data_name = str("NO data")
        
        
        self.Measure_initface_reference_white = tk.Frame(self.master,)
        self.Measure_initface_reference_white.config(bg='linen')
        self.Measure_initface_reference_white.place(x = 0, y = 0, width=1024, height=700)
        
        self.img1 = Image.open('/home/ispect/Desktop/GUI_element/test.png')
        self.img1 = self.img1.resize((420,127), Image.ANTIALIAS)
        self.tk_img_1 = ImageTk.PhotoImage(self.img1)

        self.img2 = Image.open('/home/ispect/Desktop/GUI_element/reference_image1.png')
        self.img2 = self.img2.resize((900,500), Image.ANTIALIAS)
        self.tk_img_2 = ImageTk.PhotoImage(self.img2)   
        
        self.label = tk.Label(self.Measure_initface_reference_white, image=self.tk_img_2, width=900, height=500)  
        self.label.config(bg = "linen")
        self.label.place(x = 5, y = 5) 
        
        self.UID_check = tk.Label(self.Measure_initface_reference_white, text="Name = " + self.data_name + "   UID = " + self.UID)
        self.UID_check.config(font=("Times New Roman",18,"bold"),bg = "linen" )
        self.UID_check.place(x=500, y=550) 
        
        
        
        self.Enter_button = tk.Button(self.Measure_initface_reference_white, image=self.tk_img_1, command=self.measure)
        self.Enter_button.grid(row=5, column=1)
        self.Enter_button.config(bg = "white")
        self.Enter_button.place(x = 240, y = 500, width=540, height=128)
        
        self.shutdown_button = tk.Button(self.Measure_initface_reference_white, text='shutdown', command=self.measure)
        self.shutdown_button.grid(row=5, column=1)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 547, width=100, height=18)   
        
        self.progressbarOne = ttk.Progressbar(self.Measure_initface_reference_white)
        self.progressbarOne.place(x = 308, y = 460, width=400, height=10)
        GPIO.cleanup()
        
    def measure(self,):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        GPIO.output(led_pin, GPIO.HIGH)
        print("hello world")
        nirs.scan()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        results = nirs.get_scan_results()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        
        print(results['wavelength'], type(results['wavelength']), len(results['wavelength']))
        print(results['intensity'], type(results['intensity']), len(results['intensity']))
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        intensity = str(results['intensity'])
        intensity = intensity.replace("[","")
        intensity = intensity.replace("]","")

        reference_white_intensity = open('/home/ispect/Desktop/GUI_element/costom_data/interface_reference_white.txt', 'w')
        reference_white_intensity.write(intensity)
        reference_white_intensity.close()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_reference_white.update()
        
        tkMessageBox.showinfo('warning', "Measure Reference successfully.")
        
        self.progressbarOne['value']=0
        self.Measure_initface_reference_white.update()
        
        self.Measure_initface_reference_white.destroy()
        
        textile_PCA_SVM(self.master)
        GPIO.cleanup()
        
class Measure_initface_penetrate_RFID(): 
    def __init__(self,master):
        
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')

        self.f = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        self.UID = self.f.read()
        
        GPIO.output(led_pin, GPIO.LOW)
        
        if self.UID == "C55CD86B":
    	    self.data_name = str("Yu-Shing Zhou")
        elif self.UID == "451B3749":
    	    self.data_name = str("Jungle Chen")
        elif self.UID == "9536C36B":
    	    self.data_name = str("Yu-Ping Chen")
        elif self.UID == "F585CB6B":
            self.data_name = str("Ya-Pei Chou") 
        elif self.UID == "2501B96B":
            self.data_name = str("Hsin-I Ho") 
        elif self.UID == "75CDAB28":
            self.data_name = str("Jen-Jie Chieh") 
        else:
    	    self.data_name = str("NO data")

        self.Measure_initface_penetrate = tk.Frame(self.master,)
        self.Measure_initface_penetrate.config(bg='linen')
        self.Measure_initface_penetrate.place(x = 0, y = 0, width=1024, height=700)
        
        self.img1 = Image.open('/home/ispect/Desktop/GUI_element/test.png')
        self.img1 = self.img1.resize((420,127), Image.ANTIALIAS)

        self.tk_img_1 = ImageTk.PhotoImage(self.img1)

        self.img2 = Image.open('/home/ispect/Desktop/GUI_element/penetrate_image1.png')
        self.img2 = self.img2.resize((900,500), Image.ANTIALIAS)
        self.tk_img_2 = ImageTk.PhotoImage(self.img2)   
        
        self.label = tk.Label(self.Measure_initface_penetrate, image=self.tk_img_2, width=900, height=500)  
        self.label.config(bg = "linen")
        self.label.place(x = 5, y = 5) 
        
        self.UID_check = tk.Label(self.Measure_initface_penetrate, text="Name = " + self.data_name + "   UID = " + self.UID)
        self.UID_check.config(font=("Times New Roman",18,"bold"),bg = "linen" )
        self.UID_check.place(x=500, y=550)

        self.Enter_button = tk.Button(self.Measure_initface_penetrate, image=self.tk_img_1, command=self.measure)
        self.Enter_button.grid(row=5, column=1)
        self.Enter_button.config(bg = "white")
        self.Enter_button.place(x = 240, y = 470, width=540, height=128)
        
        self.shutdown_button = tk.Button(self.Measure_initface_penetrate, text='shutdown', command=self.measure)
        self.shutdown_button.grid(row=5, column=1)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 547, width=100, height=18)   

        
        self.progressbarOne = ttk.Progressbar(self.Measure_initface_penetrate)
        self.progressbarOne.place(x = 308, y = 460, width=400, height=10)
        GPIO.cleanup()

    def measure(self,):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED        
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()
        
        GPIO.output(led_pin, GPIO.HIGH)

        print("hello world")
        
        nirs.scan()
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        results = nirs.get_scan_results()
        
        print(results['wavelength'], type(results['wavelength']), len(results['wavelength']))
        print(results['intensity'], type(results['intensity']), len(results['intensity']))
        
        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()        
        
        penetrate = str(results['intensity'])
        penetrate = penetrate.replace("[","")
        penetrate = penetrate.replace("]","")


        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        penetrate_intensity = open('/home/ispect/Desktop/GUI_element/costom_data/interface_penetrate.txt', 'w')
        penetrate_intensity.write(penetrate)
        penetrate_intensity.close()

        self.progressbarOne['value']+=1
        self.Measure_initface_penetrate.update()

        tkMessageBox.showinfo('warning', "Measure penetrate successfully.")
        
        self.progressbarOne['value']=0
        self.Measure_initface_penetrate.update()
        
        self.Measure_initface_penetrate.destroy()
        BOTTLE_CUP_PCA_SVM(self.master)
        GPIO.cleanup()
               
class choose_measure():
    def __init__(self,master):
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')
        
        GPIO.output(led_pin, GPIO.LOW)
        
        self.f = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        self.UID = self.f.read()
        #有先寫入才有名字
        if self.UID == "C55CD86B":
    	    self.data_name = str("Yu-Shing Zhou")
        elif self.UID == "451B3749":
    	    self.data_name = str("Jungle Chen")
        elif self.UID == "9536C36B":
    	    self.data_name = str("Yu-Ping Chen")
        elif self.UID == "F585CB6B":
            self.data_name = str("Ya-Pei Chou") 
        elif self.UID == "2501B96B":
            self.data_name = str("Hsin-I Ho") 
        elif self.UID == "75CDAB28":
            self.data_name = str("Jen-Jie Chieh") 
        else:
    	    self.data_name = str("NO data")
        
        self.choose_measure = tk.Frame(self.master,)
        self.choose_measure.config(bg='linen')
        self.choose_measure.place(x = 0, y = 0, width=1024, height=700)

        self.img6 = Image.open('/home/ispect/Desktop/GUI_element/cup.png')
        self.img6 = self.img6.resize((245,400), Image.ANTIALIAS)
        self.tk_img_6 = ImageTk.PhotoImage(self.img6)
       
        self.img7 = Image.open('/home/ispect/Desktop/GUI_element/clothes.png')
        self.img7 = self.img7.resize((250,400), Image.ANTIALIAS)
        self.tk_img_7 = ImageTk.PhotoImage(self.img7)   

        self.img8 = Image.open('/home/ispect/Desktop/GUI_element/chosen1.png')
        self.img8 = self.img8.resize((600,140), Image.ANTIALIAS)
        self.tk_img_8 = ImageTk.PhotoImage(self.img8) 
        
        self.UID_check = tk.Label(self.choose_measure, text="Name = " + self.data_name + "   UID = " + self.UID)
        self.UID_check.config(font=("Times New Roman",18,"bold"),bg = "linen" )
        self.UID_check.place(x=500, y=550) 
        
        self.chooselabel = tk.Label(self.choose_measure, image=self.tk_img_8, width=600, height=140)  
        self.chooselabel.config(bg = "linen")
        self.chooselabel.place(x = 5, y = 5)
      
        self.CUP_button = tk.Button(self.choose_measure, image=self.tk_img_6, command=self.cuppon)
        self.CUP_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.CUP_button.place(x = 160, y = 150, width=244, height=400)
    
        self.Clothes_button = tk.Button(self.choose_measure, image=self.tk_img_7, command=self.clothes)
        self.Clothes_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.Clothes_button.place(x = 560, y = 150, width=250, height=400)
        GPIO.cleanup()
        
    def cuppon(self,):
        self.choose_measure.destroy()
        BOTTLE_CUP_PCA_SVM(self.master)
    
    def clothes(self,):
        self.choose_measure.destroy()
        textile_PCA_SVM(self.master)        

class textile_PCA_SVM():
    def __init__(self,master):
        
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        self.master = master
        self.master.config(bg='linen')

        self.textile_PCA_SVM = tk.Frame(self.master,)
        self.textile_PCA_SVM.config(bg='linen')
        self.textile_PCA_SVM.place(x = 0, y = 0, width=1024, height=700)
        
        GPIO.output(led_pin, GPIO.HIGH)
        
        self.f = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        self.UID = self.f.read()
        
        if self.UID == "C55CD86B":
    	    self.data_name = str("Yu-Shing Zhou")
        elif self.UID == "451B3749":
    	    self.data_name = str("Jungle Chen")
        elif self.UID == "9536C36B":
    	    self.data_name = str("Yu-Ping Chen")
        elif self.UID == "F585CB6B":
            self.data_name = str("Ya-Pei Chou") 
        elif self.UID == "2501B96B":
            self.data_name = str("Hsin-I Ho") 
        elif self.UID == "75CDAB28":
            self.data_name = str("Jen-Jie Chieh") 
        else:
    	    self.data_name = str("NO data")
        
        self.my_var_1 = tk.StringVar(self.textile_PCA_SVM)
        self.my_var_1.set("NONE")
        
        self.my_var_2 = tk.StringVar(self.textile_PCA_SVM)
        self.my_var_2.set(0)
    
        self.my_var_3 = tk.StringVar(self.textile_PCA_SVM)   
        self.my_var_3.set("NONE")
    
        self.my_var_4 = tk.StringVar(self.textile_PCA_SVM)   
        self.my_var_4.set("NONE")
    
        self.img3 = Image.open('/home/ispect/Desktop/GUI_element/newmaterial3.png')
        self.img3 = self.img3.resize((700,400), Image.ANTIALIAS)
        self.tk_img_3 = ImageTk.PhotoImage(self.img3)    
        
        self.img4 = Image.open('/home/ispect/Desktop/GUI_element/clbu.png')
        self.img4 = self.img4.resize((300,84), Image.ANTIALIAS)
        self.tk_img_4 = ImageTk.PhotoImage(self.img4)
    
        self.img5 = Image.open('/home/ispect/Desktop/GUI_element/upload.png')
        self.img5 = self.img5.resize((240,77), Image.ANTIALIAS)
        self.tk_img_5 = ImageTk.PhotoImage(self.img5)
    
        self.img6 = Image.open('/home/ispect/Desktop/GUI_element/back.png')
        self.img6 = self.img6.resize((80,80), Image.ANTIALIAS)
        self.tk_img_6 = ImageTk.PhotoImage(self.img6) 
    
        self.img7 = Image.open('/home/ispect/Desktop/GUI_element/decorate.png')
        self.img7 = self.img7.resize((500,280), Image.ANTIALIAS)
        self.tk_img_7 = ImageTk.PhotoImage(self.img7) 
    
        self.labelD = tk.Label(self.textile_PCA_SVM, image=self.tk_img_3, width=700, height=400) 
        self.labelD.config(bg ="linen")
        self.labelD.place(x = 60, y = 10)
    
        self.UID_check = tk.Label(self.textile_PCA_SVM, text="Name = " + self.data_name + "   UID = " + self.UID)
        self.UID_check.config(font=("Times New Roman",18,"bold"),bg = "linen" )
        self.UID_check.place(x=500, y=550) 
        
        self.UUPON=tk.Label(self.textile_PCA_SVM, textvariable=self.my_var_4)
        self.UUPON.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.UUPON.place(x = 150, y = 110)
    
        self.Total_uupon =tk.Label(self.textile_PCA_SVM, textvariable=self.my_var_1)
        self.Total_uupon.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.Total_uupon.place(x=400, y=255)
    
        self.Material =tk.Label(self.textile_PCA_SVM, textvariable=self.my_var_3)
        self.Material.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.Material.place(x=400, y=335)
    
        self.Enter_button = tk.Button(self.textile_PCA_SVM, image = self.tk_img_4, command = self.execute )
        self.Enter_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.Enter_button.place(x = 140, y = 447, width=350, height=84)
    
        self.progressbarOne = ttk.Progressbar(self.textile_PCA_SVM)
        self.progressbarOne.place(x = 328, y = 435, width=500, height=10)
    
        self.END_button = tk.Button(self.textile_PCA_SVM, image = self.tk_img_5, command = self.uploading_google)
        self.END_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.END_button.place(x = 510, y = 447, width=350, height=84)
    
        self.shutdown_button = tk.Button(self.textile_PCA_SVM, text='Renew Measure Reference', command = self.execute_2)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 557, width=200, height=18)   
        
        self.back_button = tk.Button(self.textile_PCA_SVM, image=self.tk_img_6, command = self.back)
        self.back_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.back_button.place(x = 10, y = 447, width=84, height=84)  
        
        GPIO.cleanup()
   
    def execute(self,):
        
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(led_pin, GPIO.OUT)
        
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED
        self.END_button['state'] = tk.DISABLED
        self.shutdown_button['state'] = tk.DISABLED
        
        self.progressbarOne['value']+=1
        self.textile_PCA_SVM.update()        
        
        self.reference = open('/home/ispect/Desktop/GUI_element/costom_data/interface_reference_white.txt', 'r')
        self.reference_data = self.reference.read()
        self.reference_data = self.reference_data.split(", ")
        #print(self.reference_data, type(self.reference_data))
        
        self.SerialWrite()
        nirs.scan()
        results = nirs.get_scan_results()

        self.progressbarOne['value']+=1
        self.textile_PCA_SVM.update() 

        sample_intensity_data = results['intensity']
        wavelength_data = results['wavelength']
        
        absorbance_data = []
        final_absorbance = []
        for i in range(len(wavelength_data)):
            data = math.log(float(1/(float(sample_intensity_data[i])/float(self.reference_data[i]))), 10)
            absorbance_data.append(data)
        print(absorbance_data, type(absorbance_data), len(absorbance_data))

        absorbance_data_max_value = max(absorbance_data)
        absorbance_data_min_value = min(absorbance_data)
        denominator = float(absorbance_data_max_value-absorbance_data_min_value)
        
        for j in range(len(absorbance_data)):
            data_2 = float(float(absorbance_data[j]-absorbance_data_min_value)/denominator)
            final_absorbance.append(data_2)
        print(final_absorbance, type(final_absorbance), len(final_absorbance))

        self.progressbarOne['value']+=1
        self.textile_PCA_SVM.update() 

        self.model = pickle.load(open('/home/ispect/Desktop/0302/0309/clf_sample20230819.pkl', 'rb'))
        self.test = pickle.load(open('/home/ispect/Desktop/0302/0309/pca_sample20230819.m', 'rb'))
        self.numeric_array = np.array(final_absorbance).reshape(1,86)

        sample = self.test.transform(self.numeric_array)
        print(sample)

        self.progressbarOne['value']+=1
        self.textile_PCA_SVM.update() 

        self.predicted_labels = self.model.predict(sample)
        self.predicted_sample_percent = self.model.predict_proba(sample)
        self.pred_class_ = self.model.classes_
        
        print("predict sample category:", self.predicted_labels)
        print("predict sample percent:", self.predicted_sample_percent)
        print("pred classes", self.pred_class_)

        self.progressbarOne['value']+=1
        self.textile_PCA_SVM.update() 
        
        OLD_UUPOO = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'r')
        old_upoon = OLD_UUPOO.read()
        print(old_upoon, type(old_upoon))
        
        k = int(old_upoon)
        UPUP = 0
        if self.predicted_labels == "Nylon":
            UPUP=10
            lablename = "Nylon"
        elif self.predicted_labels == "Acrylic":
            UPUP=15
            lablename = "Acrylic"
        elif self.predicted_labels == "Wool":
            UPUP=20
            lablename = "Wool"
        elif self.predicted_labels == "ACE":
            UPUP=25
            lablename = "ACE"
        elif self.predicted_labels == "Cotton" or "PET":
            lablename = "Waiting Model"
            self.TC_model = pickle.load(open('/home/ispect/Desktop/0302/0309/clf_model_TC.pkl', 'rb'))#模型黨
            self.TC_test = pickle.load(open('/home/ispect/Desktop/0302/0309/pca_model_TC.m', 'rb'))
            TC_sample = self.TC_test.transform(self.numeric_array)
            self.TC_predicted_labels = self.TC_model.predict(TC_sample)
            self.TC_predicted_sample_percent = self.TC_model.predict_proba(TC_sample)
            self.TC_pred_class_ = self.TC_model.classes_
            
            if self.TC_predicted_labels=="T10C90":
                lablename = "PET10% Cotton 90%"
                UPUP=36 
            elif self.TC_predicted_labels=="T20C80":
                lablename = "PET20% Cotton 80%"
                UPUP=37 
            elif self.TC_predicted_labels=="T30C70":
                lablename = "PET30% Cotton 70%"
                UPUP=38
            elif self.TC_predicted_labels=="T40C60":
                lablename = "PET40% Cotton 60%"
                UPUP=39
            elif self.TC_predicted_labels=="T50C50":
                lablename = "PET50% Cotton 50%"
                UPUP=40
            elif self.TC_predicted_labels=="T60C40":
                lablename = "PET60% Cotton 40%"
                UPUP=41 
            elif self.TC_predicted_labels=="T70C30":
                lablename = "PET70% Cotton 30%"
                UPUP=42 
            elif self.TC_predicted_labels=="T80C20":
                lablename = "PET80% Cotton 20%"
                UPUP=43
            elif self.TC_predicted_labels=="T90C10":
                lablename = "PET90% Cotton 10%"
                UPUP=44 
            elif self.TC_predicted_labels=="T100":
                lablename = "PET100%"
                UPUP=45 
                self.command=self.SendCmdA
            elif self.TC_predicted_labels=="C100":
                lablename = "Cotton 100%"
                UPUP=50
            else:    
                lablename = "Others"
        elif self.predicted_labels == "Rayon":
            UPUP=35
            lablename = "Rayon"
        elif self.predicted_labels == "TPU":
            UPUP=45
            lablename = "TPU"
        else:
            UPUP=0
        total = UPUP + k 
        self.my_var_1.set("+"+str(UPUP))
        self.my_var_3.set(str(total))
        self.my_var_4.set(str(lablename))
        
        UUPOO = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'w')
        UUPOO.write(str(UPUP+k))
        UUPOO.close()
        
        GPIO.output(led_pin, GPIO.LOW)
        GPIO.cleanup()
        
        self.progressbarOne['value']=0
        self.Enter_button['state'] = tk.NORMAL
        self.END_button['state'] = tk.NORMAL
        self.shutdown_button['state'] = tk.NORMAL
        self.textile_PCA_SVM.update()
        
    def execute_2(self,):
        self.textile_PCA_SVM.destroy()
        print("a")
        Measure_initface_reference_white_RFID(self.master)#左下角有個很小的按鈕，重新校正
         ##===When button A be pressed then Send 'a' to arduino============
    
    
    def uploading_google(self,):
        ##initial data
        
        card_number = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        UID = card_number.read()
        
        UUF = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'r')
        UUP = UUF.read()
        
        url = (
            'https://script.google.com/macros/s/AKfycbw_2TQC92xPbuT27bhriqgk7Y_4bN-W6mgxCOLTB9ktIMTxRqsaDipNj0jcIGYe46F5aw/exec?data=')
        urllib.urlretrieve(url + str(UID) + "," + str(UUP))#增加gps
        #UID 是用戶的身份標識，而 UUP 是與衣物或物品相關的數據

        UUF = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'w')
        UUP = str(0)
        UUF.write(UUP)
        UUF.close()

        tkMessageBox.showinfo('warning', "Uploading UID and UUPON successfully")
        self.textile_PCA_SVM.destroy()
        print("uploading successfully")

        RFID_code(self.master)
        
        ##======Write Serial Command to arduino============
    def SerialWrite(self,command):
        ser.write(self,command)
        rv=ser.readline()
        #print (rv) # Read the newest output from the Arduino
        print (rv.decode("utf-8")) 
        sleep(1) # Delay for one tenth of a second
        ser.flushInput()
        
    def SendCmdA(self,):
        Arduino_cmd='a'
        cmd=Arduino_cmd.encode("utf-8") 
        self.SerialWrite(cmd)
        
    
        ##==Serial connect and Get arduino  Ready================
    def Serial_Connect(self,):
         print("Connecting to Arduino.....")
         sleep(1)
         for i in range (1,10):
             rv=ser.readline()
             print("Loading...")
            
         #----------------
         #Debug print (rv) # Read the newest output from the Arduino
         print (rv.decode("utf-8")) 
         ser.flushInput()
         sleep(1) # Delay 
         Str_Message=rv.decode("utf-8")
         #Debug print(Str[0:5])
         if Str_Message[0:5]=="Ready":  
             print("Get Arduino Ready !")
                
    
        ##==Serial connect Exit================
    def All_Exit(self,):
         print("Exit.....")
        
         sleep(1)
         chr_num = 27  ##ESC
         cmd=(chr(chr_num).encode('utf-8'))
         self.SerialWrite(cmd)
         ser.close()
     
    
        ##------------------------------------------------------ 
    def back(self,):
        self.textile_PCA_SVM.destroy()
        print("Hello world")
        choose_measure(self.master)

class BOTTLE_CUP_PCA_SVM():#上傳
    def __init__(self,master):
        self.master = master
        self.master.config(bg='linen')

        self.BOTTLE_CUP_PCA_SVM = tk.Frame(self.master,)
        self.BOTTLE_CUP_PCA_SVM.config(bg='linen')
        self.BOTTLE_CUP_PCA_SVM.place(x = 0, y = 0, width=1024, height=700)
        
        self.f = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')#到此文件讀取
        self.UID = self.f.read()
        
        if self.UID == "C55CD86B":
    	    self.data_name = str("Yu-Shing Zhou")
        elif self.UID == "451B3749":
    	    self.data_name = str("Jungle Chen")
        elif self.UID == "9536C36B":
    	    self.data_name = str("Yu-Ping Chen")
        elif self.UID == "F585CB6B":
            self.data_name = str("Ya-Pei Chou") 
        elif self.UID == "2501B96B":
            self.data_name = str("Hsin-I Ho") 
        elif self.UID == "75CDAB28":
            self.data_name = str("Jen-Jie Chieh") 
        else:
    	    self.data_name = str("NO data")
        
        self.my_var_1 = tk.StringVar(self.BOTTLE_CUP_PCA_SVM)
        self.my_var_1.set("NONE")   
    
        self.my_var_3 = tk.StringVar(self.BOTTLE_CUP_PCA_SVM)   
        self.my_var_3.set("NONE")
    
        self.my_var_4 = tk.StringVar(self.BOTTLE_CUP_PCA_SVM)   
        self.my_var_4.set("NONE")
    
        self.img3 = Image.open('/home/ispect/Desktop/GUI_element/newmaterial3.png')
        self.img3 = self.img3.resize((700,400), Image.ANTIALIAS)
        self.tk_img_3 = ImageTk.PhotoImage(self.img3)    
        
        self.img4 = Image.open('/home/ispect/Desktop/GUI_element/tebu.png')
        self.img4 = self.img4.resize((300,84), Image.ANTIALIAS)
        self.tk_img_4 = ImageTk.PhotoImage(self.img4)
    
        self.img5 = Image.open('/home/ispect/Desktop/GUI_element/upload.png')
        self.img5 = self.img5.resize((240,77), Image.ANTIALIAS)
        self.tk_img_5 = ImageTk.PhotoImage(self.img5)
    
        self.img6 = Image.open('/home/ispect/Desktop/GUI_element/back.png')
        self.img6 = self.img6.resize((80,80), Image.ANTIALIAS)
        self.tk_img_6 = ImageTk.PhotoImage(self.img6) 
    
        self.img7 = Image.open('/home/ispect/Desktop/GUI_element/decorate.png')
        self.img7 = self.img7.resize((500,280), Image.ANTIALIAS)
        self.tk_img_7 = ImageTk.PhotoImage(self.img7) 
    
        self.labelD = tk.Label(self.BOTTLE_CUP_PCA_SVM, image=self.tk_img_3, width=700, height=400) 
        self.labelD.config(bg ="linen")
        self.labelD.place(x = 60, y = 10)
    
        self.UID_check = tk.Label(self.BOTTLE_CUP_PCA_SVM, text="Name = " + self.data_name + "   UID = " + self.UID)
        self.UID_check.config(font=("Times New Roman",18,"bold"),bg = "linen" )
        self.UID_check.place(x=500, y=550) 
        
        self.UUPON=tk.Label(self.BOTTLE_CUP_PCA_SVM, textvariable=self.my_var_4)
        self.UUPON.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.UUPON.place(x = 150, y = 110)
    
        self.Total_uupon =tk.Label(self.BOTTLE_CUP_PCA_SVM, textvariable=self.my_var_1)
        self.Total_uupon.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.Total_uupon.place(x=400, y=255)
    
        self.Material =tk.Label(self.BOTTLE_CUP_PCA_SVM, textvariable=self.my_var_3)
        self.Material.config(font=("Times New Roman",40,"bold"), bg = "linen" )
        self.Material.place(x=400, y=335)
    
        self.Enter_button = tk.Button(self.BOTTLE_CUP_PCA_SVM, image = self.tk_img_4, command = self.execute )
        self.Enter_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.Enter_button.place(x = 140, y = 447, width=350, height=84)
    
        self.progressbarOne = ttk.Progressbar(self.BOTTLE_CUP_PCA_SVM)
        self.progressbarOne.place(x = 328, y = 435, width=500, height=10)
    
        self.END_button = tk.Button(self.BOTTLE_CUP_PCA_SVM, image = self.tk_img_5, command = self.uploading_google)
        self.END_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.END_button.place(x = 510, y = 447, width=350, height=84)
    
        self.shutdown_button = tk.Button(self.BOTTLE_CUP_PCA_SVM, text='Renew Measure Reference', command = self.execute_2)
        self.shutdown_button.config(font=("Times New Roman",9,"bold"),bg = "linen")
        self.shutdown_button.place(x = 5, y = 557, width=200, height=18)   
        
        self.back_button = tk.Button(self.BOTTLE_CUP_PCA_SVM, image=self.tk_img_6, command = self.back)
        self.back_button.config(font=("Times New Roman",18,"bold"),bg = "white")
        self.back_button.place(x = 10, y = 447, width=84, height=84)  
        
    def execute(self,):
        
        self.progressbarOne['maximum']=5
        self.progressbarOne['value']=0
        
        self.Enter_button['state'] = tk.DISABLED
        self.END_button['state'] = tk.DISABLED
        self.shutdown_button['state'] = tk.DISABLED
        
        self.progressbarOne['value']+=1
        self.BOTTLE_CUP_PCA_SVM.update()        
        
        self.reference = open('/home/ispect/Desktop/GUI_element/costom_data/interface_reference_white.txt', 'r')
        self.reference_data = self.reference.read()
        self.reference_data = self.reference_data.split(", ")
        #print(self.reference_data, type(self.reference_data))

        nirs.scan()
        results = nirs.get_scan_results()

        self.progressbarOne['value']+=1
        self.BOTTLE_CUP_PCA_SVM.update() 

        sample_intensity_data = results['intensity']
        wavelength_data = results['wavelength']
        
        absorbance_data = []
        final_absorbance = []
        for i in range(len(wavelength_data)):
            data = math.log(float(1/(float(sample_intensity_data[i])/float(self.reference_data[i]))), 10)
            absorbance_data.append(data)
        print(absorbance_data, type(absorbance_data), len(absorbance_data))

        absorbance_data_max_value = max(absorbance_data)
        absorbance_data_min_value = min(absorbance_data)
        denominator = float(absorbance_data_max_value-absorbance_data_min_value)
        
        for j in range(len(absorbance_data)):
            data_2 = float(float(absorbance_data[j]-absorbance_data_min_value)/denominator)
            final_absorbance.append(data_2)
        print(final_absorbance)

        self.progressbarOne['value']+=1
        self.BOTTLE_CUP_PCA_SVM.update() 

        self.model = pickle.load(open('/home/ispect/Desktop/0302/0309/clf_sample20230817.pkl', 'rb'))
        self.test = pickle.load(open('/home/ispect/Desktop/0302/0309/pca_sample20230817.m', 'rb'))
        self.numeric_array = np.array(final_absorbance).reshape(1,86)

        sample = self.test.transform(self.numeric_array)
        print(sample)

        self.progressbarOne['value']+=1
        self.BOTTLE_CUP_PCA_SVM.update() 

        self.predicted_labels = self.model.predict(sample)
        self.predicted_sample_percent = self.model.predict_proba(sample)
        self.pred_class_ = self.model.classes_
        
        OLD_UUPOO = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'r')
        old_upoon = OLD_UUPOO.read()
        print(old_upoon, type(old_upoon))
        
        k = int(old_upoon)
        UPUP = 0
        if self.predicted_labels == "HIPS" or self.predicted_labels == "GPPS":
            UPUP=15
            lablename = "PS"
        elif self.predicted_labels == "PVC":
            UPUP=16
            lablename = "PVC"
        elif self.predicted_labels == "PP":
            UPUP=19
            lablename = "PP"
        elif self.predicted_labels == "PET":
            UPUP=20
            lablename = "PET"
        elif self.predicted_labels == "LDPE":
            UPUP=21
            lablename = "LDPE"
        elif self.predicted_labels == "HDPE":
            UPUP=22
            lablename = "HDPE"
        elif self.predicted_labels == "PLA":
            UPUP=23
            lablename = "PLA"
        elif self.predicted_labels == "PEandPaper":
            UPUP=24
            lablename = "PE and Paper"
        else:
            UPUP=0

        total = UPUP + k 
        self.my_var_1.set("+"+str(UPUP))
        self.my_var_3.set(str(total))
        self.my_var_4.set(str(lablename))

        self.progressbarOne['value']+=1 
        self.BOTTLE_CUP_PCA_SVM.update() 
                
        UUPOO = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'w')
        UUPOO.write(str(UPUP+k))
        UUPOO.close()

        print("predict sample category:", self.predicted_labels)
        print("predict sample percent:", self.predicted_sample_percent)
        print("pred classes", self.pred_class_)
        
        self.progressbarOne['value']=0
        self.Enter_button['state'] = tk.NORMAL
        self.END_button['state'] = tk.NORMAL
        self.shutdown_button['state'] = tk.NORMAL
        self.BOTTLE_CUP_PCA_SVM.update()     
        
    def execute_2(self,):
        self.BOTTLE_CUP_PCA_SVM.destroy()
        print("a")
        Measure_initface_penetrate_RFID(self.master)

    def uploading_google(self,):

        card_number = open('/home/ispect/Desktop/GUI_element/costom_data/interface_UID.txt', 'r')
        UID = card_number.read()
        
        UUF = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'r')
        UUP = UUF.read()
        
        url = (
            'https://script.google.com/macros/s/AKfycbw_2TQC92xPbuT27bhriqgk7Y_4bN-W6mgxCOLTB9ktIMTxRqsaDipNj0jcIGYe46F5aw/exec?data=')
        urllib.urlretrieve(url + str(UID) + "," + str(UUP))

        UUF = open('/home/ispect/Desktop/GUI_element/costom_data/UUPOO.txt', 'w')
        UUP = str(0)
        UUF.write(UUP)
        UUF.close()

        tkMessageBox.showinfo('warning', "Uploading UID and UUPON successfully")
        self.BOTTLE_CUP_PCA_SVM.destroy()
        print("uploading successfully")

        RFID_code(self.master)

    def back(self,):
        self.BOTTLE_CUP_PCA_SVM.destroy()
        print("Hello world")
        choose_measure(self.master)


if __name__ == '__main__':    
    # init_gps()自己加的
    root = tk.Tk()
    
    nirs = NIRS()
    nirs.set_config(8, NIRS.TYPES.HADAMARD_TYPE, 86, 6, 950, 1700, 17)
    nirs.set_pga_gain(new_value=0)
    nirs.scan_snr("hadamard")#scan_snr hadamard , column
    
    #ser =serial.Serial("/dev/ttyS0", 9600, timeout=2)
    ser =serial.Serial("/dev/ttyACM0", 9600, timeout=2)
    GPIO.setmode(GPIO.BOARD)
    led_pin = 12         
    GPIO.setup(led_pin, GPIO.OUT)
    
    initialization_basedesk(root)
    root.mainloop()
