Darkline handling implemented

This commit is contained in:
jens 2020-11-27 16:49:47 +01:00
parent f06f87d1ed
commit d8b0e185a1
3 changed files with 41 additions and 4 deletions

View File

@ -228,6 +228,10 @@ class buildpanel(tk.Frame):
def jfsAddOns(self,CCDplot):
def darkline():
if (self.jf.do_save_darkline(config.rxData16)==1):
self.jfsdark_check.config(state=tk.NORMAL)
self.jfstitel = tk.Label(self, text=' Photometer ')
#self.jfstitel.config(font=("Courier",0))
self.jfstitel.grid(row=10,column=4,columnspan=2)
@ -235,6 +239,10 @@ class buildpanel(tk.Frame):
self.jfs4cal.grid(row=11,column=4)
self.jfs4nm_check = tk.Checkbutton(self,text="[nm] scale on/off",variable=self.jf.nm_checked,command=lambda CCDplot=CCDplot: self.updateplot(CCDplot))
self.jfs4nm_check.grid(row=12,column=4)
self.jfs4cal = tk.Button(self,text='save Darkline',fg="blue", command= darkline)
self.jfs4cal.grid(row=13,column=4)
self.jfsdark_check = tk.Checkbutton(self,text="Darkline on/off",variable=self.jf.darkline_checked,state=tk.DISABLED,command=lambda CCDplot=CCDplot: self.updateplot(CCDplot))
self.jfsdark_check.grid(row=14,column=4)
### Callbacks for traces, buttons, etc ###
def callback(self):
@ -311,10 +319,14 @@ class buildpanel(tk.Frame):
def updateplot(self, CCDplot):
#This subtracts the ADC-pixel from ADC-dark
if (config.datainvert==1):
if (self.jf.get_darkline_checked()==1):
config.pltData16 = self.jf.darkData16 - config.rxData16
else:
config.pltData16 = (config.rxData16[10]+config.rxData16[11])/2 - config.rxData16
#This subtracts the average difference between even and odd pixels from the even pixels
if (config.balanced==1):
config.offset = (config.pltData16[18]+config.pltData16[20]+config.pltData16[22]+config.pltData16[24]-config.pltData16[19]-config.pltData16[21]-config.pltData16[23]-config.pltData16[24])/4
#print(config.offset)
for i in range (1847):
config.pltData16[2*i] = config.pltData16[2*i] - config.offset
CCDplot.a.clear()

View File

@ -25,6 +25,10 @@ class Jfsphoto (object):
########## nm scale checkButton default nm-scale is off
self.nm_checked = tk.IntVar()
self.nm_checked.set(0)
########## darkline
self.darkData16 = np.zeros(3694, np.float32)
self.darkline_checked = tk.IntVar()
self.darkline_checked.set(0)
def do_calibrate(self):
win = tk.Toplevel()
@ -71,6 +75,27 @@ class Jfsphoto (object):
win.grab_set()
win.wait_window()
def do_msg(self,txt):
self.mroot = tk.Tk()
self.mroot.minsize(100,50)
self.mroot.title(" Info ")
self.label = tk.Label(self.mroot, text=txt,bg="yellow",fg="blue")
self.label.pack()
self.button = tk.Button(self.mroot, text='OK', width=25, command=self.mroot.destroy)
self.button.pack()
self.mroot.mainloop()
def do_save_darkline(self,dark):
x = np.min(dark)
if (x < 3700):
self.do_msg(" This is not a Darkline ")
return 0
else :
self.darkData16 = dark*1.0
return 1
def get_darkline_checked(self):
return self.darkline_checked.get()
def checkit(self):
self.nm = int(self.tnm.get())

View File

@ -2,7 +2,7 @@ import numpy as np
#serial definitions
port = 'COM3' #'/dev/ttyACM0'
port = 'COM7' #'/dev/ttyACM0'
baudrate = 115200
#Data as the program handles
@ -17,7 +17,7 @@ stopsignal = 0
#Data arrays for received bytes
rxData8 = np.zeros(7388, np.uint8)
rxData16 = np.zeros(3694, np.uint16)
pltData16 = np.zeros(3694, np.uint16)
pltData16 = np.zeros(3694, np.float32)
#Arrays for data to transmit
txsh = np.uint8([0,0,0,0])