def run(self): global CurrentTemp, GetInfoThread_Done, choice, SetTemp, GetTempThreadAlreadyPaused; print "In Temp thread" retries = 0 while (GetInfoThread_Done == False): pass; #time.sleep(0.5); choice = "TempDisplay"; while(GetTempThreadStop==False): #if "Stop" button is not hit, just need to pause the GetTempThread. This will resume after CycleThread done the work while(GetTempThreadPause==False): #Just pause the thread, will resume after cyclethread is done the work #print str(GetTempThreadPause); if(GetTempThreadStop == True): print "Please wait"; return; else: try: print "- Temp Thread get temp..." if(GetTempThreadStop == True): print "Inside 1"; break; CurrentTemp = a_pond.getTemperature(3); if(GetTempThreadStop == True): print "Inside 2"; break; SetTemp = a_pond.getSetTemperature(); Display_line1 = "RAMP SP= " + str(SetTemp) + " DEG C \n"; Display_line2 = " STAGE = " + str(CurrentTemp) + " DEG C"; choice = "TempDisplay"; #print Display_line1 + Display_line2; 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, if(GetTempThreadStop == True): print "Inside 3"; break; time.sleep(0.5); except: print "\nCan not get measure - Retrying\n" trace = traceback.format_exc() print trace retries = retries + 1 pass print "\nGet Temp Thread PAUSED!"; GetTempThreadAlreadyPaused = True; while(GetTempThreadPause==True): #Just stay there and wait until the thread is resumed if (GetTempThreadStop==True): print "Get Temp Thread STOPPED!" global ThreadCompletyStop; ThreadCompletyStop = True; return; pass;
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;