Beispiel #1
0
 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; 
Beispiel #2
0
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;