def Pond_GoToTemp_Button_Click(self, event): global SetTemp, SlewInput, GetTempThreadPause, GetTempThreadAlreadyPaused; GetTempThreadPause = True; #Pause GetTempThread print GetTempThreadPause; while(GetTempThreadAlreadyPaused == False): #print GetTempThreadAlreadyPaused; pass; GetTempThreadAlreadyPaused = False; #Reset the thread pause SetTemp = int(self.InputTemp_Text.GetValue()); SetSlew = int(self.SlewInput1_Text.GetValue()); LowRange = SetTemp - 1; HighRange = SetTemp + 1; #time.sleep(0.01); #a_pond.fastSeek([LowRange,HighRange], returnImmediate=True) if (SetSlew == 0): a_pond.fastSeek([LowRange,HighRange], returnImmediate=True); SeekMode = "Fast mode" self.GetParent().SetStatusText = "Seek Mode: " + SeekMode; else: a_pond.slewSeek([LowRange,HighRange], SlewInput, returnImmediate=True); SeekMode = "Fast mode" self.GetParent().SetStatusText("Seek Mode: " + SeekMode); #self.SlewInput_Text.SetValue(str(SlewInput)); self.Log += "Set Temp = " + str(SetTemp) + "\n"; self.Log_Text.SetValue(self.Log); GetTempThreadPause = False; #Resume GetTempThread
def CycleFunction(self,TempInput, SlewInput): global CurrentTemp, SetTemp, CycleThreadStop, choice; a_pond.getTemperature(); print "-- Cycle Thread get temp..."; print str(math.floor(CurrentTemp)); print str(math.floor(TempInput)); if(SlewInput != 0): a_pond.slewSeek([TempInput - 1, TempInput + 1], SlewInput, True); else: a_pond.fastSeek([TempInput - 1, TempInput + 1], returnImmediate=True); #In case if the current temp =24.9487...C, just return and stay for dwel time and go to the next set point #it will be very slow to put 24.646C to 25C if(math.fabs(float(CurrentTemp) - TempInput) < 0.2): return; choice = "TempDisplay"; if(math.fabs(CurrentTemp - TempInput) < 0.5): pass #while (math.floor(CurrentTemp)!=math.floor(TempInput)): while (math.fabs(CurrentTemp - TempInput) > 0.2): try: print "CycleThreadStop = " + str(CycleThreadStop); if(CycleThreadStop == False): CurrentTemp = a_pond.getTemperature(3); Display_line1 = "RAMP SP= " + str(SetTemp) + " DEG C \n"; Display_line2 = " STAGE = " + str(CurrentTemp) + " DEG C"; choice = "TempDisplay"; evt = UpdateDisplayEvent(DisplayEventType, -1); #initialize update display event evt.UpdateText(Display_line1 + Display_line2); #update display event wx.PostEvent(self.output_window, evt); #After the event trigger, time.sleep(1); else: return; except: print "Can not get measure" trace = traceback.format_exc() print trace return;