def _update(self): if not MonitorInstrument._update(self): return False temp = self.get_temperature() alarm = self.get_alarm_state() t_num = time.time() t_str = time.asctime() print('current time: %s'%t_str) print 'current alarm state: ', alarm print('current platform temperature:') print'{:.2f} K'.format(temp) if self.get_recording(): self._data.add_data_point((t_num-self._T0)/3600., temp) if (temp > self.get_max_temperature()) or (alarm and not(self.get_ignore_alarm_state())): subject= 'Warning from ' + self.get_name() message = 'Warning from ' + self.get_name() +': \n'+\ 'current Platform Temperature Reading:\n' + \ ' {:.2f} \n'.format(temp) + \ 'current alarm state: ' + str(alarm) + '.\n' + \ 'Please help me!!!\n xxx' #recipients = ['*****@*****.**', '*****@*****.**', '*****@*****.**','*****@*****.**', '*****@*****.**'] recipients = ['*****@*****.**', '*****@*****.**', '*****@*****.**','*****@*****.**'] print message if self.get_send_email(): if self._mailer.send_email(recipients,subject,message): print 'Warning email message sent' return True
def _update(self): if not MonitorInstrument._update(self): return False t_num = time.time() t_str = time.asctime() print('current time: %s'%t_str) print('current cryovac levelmeter reading:') self._levelmeter.write('chan 2') lev1 = self._levelmeter.ask('meas?') lev1_flt=float((lev1.split(' '))[0]) print(' LHe1 (upper tank): %s'%(lev1)) self._levelmeter.write('chan 1') lev2 = self._levelmeter.ask('meas?') lev2_flt=float((lev2.split(' '))[0]) print(' LHe2 (lower tank): %s'%(lev2)) volt = 'n/a' keith_meas = self._keithley.ask(':func?') if keith_meas == '"VOLT:DC"': volt = float(self._keithley.ask(':data?')) print('current sensor voltage: %.3f'%(volt)) print('current temperature: %.3f'%(self.get_temperature())) if self.get_save_data(): with open('//tudelft.net/staff-groups/tnw/ns/qt/Diamond/setups/LT2/cryo.txt','a') as f: f.write('%.0f\t%s\t%s\t%s\t%.3f V\n'%(t_num,t_str,lev1,lev2,volt)) f.close() if (lev2_flt < self.get_he2_lvl_min()) or (volt != 'n/a' and volt < self.get_temp_voltage_min()): subject= 'Warning from Cryo LT2!' message = 'Warning from Cryo LT2: Measured levels: \n'+\ 'current cryovac levelmeter reading:\n' + \ ' LHe1 (upper tank): %s'%(lev1) + '\n' + \ ' LHe2 (lower tank): %s'%(lev2) + '\n' + \ 'current sensor voltage: %.3f'%(volt) + '.\n' + \ 'current temperature: %.3f'%(self.get_temperature()) + '.\n' + \ 'This is below minimum values (LHe2 < %.3f'%(self.get_he2_lvl_min()) + ' cm' +\ ', voltage < %.3f'%(self.get_temp_voltage_min()) + 'V ( = 6 K)). \n' + \ 'Please help me!!!\n xxx LT2' recipients = ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**'] #recipients = '*****@*****.**' print message if self.get_send_email(): if self._mailer.send_email(recipients,subject,message): print 'Warning email message sent' return True
def _update(self): if not MonitorInstrument._update(self): return False MAXLVLTRIES = 3 i = 0 self._levelmeter.write('chan 2') lev1 = self._levelmeter.ask('meas?') lev1_flt=float((lev1.split(' '))[0]) while lev1_flt < 1.0 and i < MAXLVLTRIES: self._levelmeter.write('chan 2') self._levelmeter.write('meas') # TODO make sure readout is actually finished lev1 = self._levelmeter.ask('meas?') lev1_flt=float((lev1.split(' '))[0]) i+= 1 # time.sleep(0.1) if lev1_flt < -1.0: lev1_flt = -1.0 i = 0 self._levelmeter.write('chan 1') lev2 = self._levelmeter.ask('meas?') lev2_flt=float((lev2.split(' '))[0]) while lev2_flt < 1.0 and i < MAXLVLTRIES: self._levelmeter.write('chan 1') self._levelmeter.write('meas') # TODO make sure readout is actually finished lev2 = self._levelmeter.ask('meas?') lev2_flt=float((lev2.split(' '))[0]) i+= 1 # time.sleep(0.1) if lev2_flt < -1.0: lev2_flt = -1.0 t_num = time.time() t_str = time.asctime() self._rate_times.append((t_num-self._T0)/3600.) self._rate_levels1.append(lev1_flt) self._rate_levels2.append(lev2_flt) i = 0 while self._rate_times[i] < (((t_num-self._T0)/3600.) - self._rate_update_interval): self._rate_times = self._rate_times[1:] self._rate_levels1 = self._rate_levels1[1:] self._rate_levels2 = self._rate_levels2[1:] if len(self._rate_times) > 1: rate1 = (self._rate_levels1[0] - self._rate_levels1[-1])/(self._rate_times[-1] - self._rate_times[0]) rate2 = (self._rate_levels2[0] - self._rate_levels2[-1])/(self._rate_times[-1] - self._rate_times[0]) else: rate1 = 0 rate2 = 0 print('current time: %s'%t_str) print('current cryovac levelmeter reading:') print(' LHe1 (upper tank): %s'%(lev1)) print(' LHe2 (lower tank): %s'%(lev2)) volt = 'n/a' keith_meas = self._keithley.ask(':func?') if keith_meas == '"VOLT:DC"': volt = float(self._keithley.ask(':data?')) print('current sensor voltage: %.3f'%(volt)) print('current temperature: %.3f'%(self.get_temperature())) if self.get_save_data(): try: with open('//tudelft.net/staff-groups/tnw/ns/qt/Diamond/setups/LT2/cryo.txt','a') as f: f.write('%.0f\t%s\t%s\t%s\t%.3f V\n'%(t_num,t_str,lev1,lev2,volt)) f.close() except Exception: print ' error writing on network disk' if self.get_send_email(): try: params = urllib.urlencode({'entry_312373567': lev1, 'entry_941467047': lev2, 'ss-submit': 'Submit'}) urllib.urlopen('https://docs.google.com/forms/d/1T0ZY1G08LPWRn3M_-yq--PAdrz_8LtqzQJn9AL3qZVs/formResponse', params) except Exception: print ' error publishing levels' if (lev2_flt < self.get_he2_lvl_min()) or (volt != 'n/a' and volt < self.get_temp_voltage_min()) or (-0.1 < lev1_flt < self.get_he1_lvl_min()): subject= 'Warning from Cryo LT2!' message = 'Warning from Cryo LT2: Measured levels: \n'+\ 'current cryovac levelmeter reading:\n' + \ ' LHe1 (upper tank): %s'%(lev1) + '\n' + \ ' LHe2 (lower tank): %s'%(lev2) + '\n' + \ 'current sensor voltage: %.3f'%(volt) + '.\n' + \ 'current temperature: %.3f'%(self.get_temperature()) + '.\n' + \ 'This is below minimum values (LHe2 < %.3f'%(self.get_he2_lvl_min()) + ' cm'+ ', LHe1 < %.3f'%(self.get_he1_lvl_min()) +\ ', voltage < %.3f'%(self.get_temp_voltage_min()) + 'V ( = 6 K)). \n' + \ 'Please help me!!!\n xxx LT2' recipients = ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**','*****@*****.**'] #recipients = '*****@*****.**' print message if self.get_send_email(): if self._mailer.send_email(recipients,subject,message): print 'Warning email message sent' if self._monitor_lt1: temp_A=self._temp_lt1.get_kelvinA() temp_B=self._temp_lt1.get_kelvinB() print('LT1 temperature A: %.3f K'%(temp_A)) print('LT1 temperature B: %.3f K'%(temp_B)) if self.get_save_data(): with open('//tudelft.net/staff-groups/tnw/ns/qt/Diamond/setups/LT1/cryo.txt','a') as f: f.write('%.0f\t%s\t%.3f K\t%.3f K \n'%(t_num,t_str,temp_A,temp_B)) f.close() if temp_A>self.get_lt1_temp_A_max(): subject= 'Warning from Cryo LT1!' message = 'Warning from Cryo LT1: \n'+\ 'LT1 temperature A: %.3f K'%(temp_A) + '\n'+\ 'LT1 temperature B: %.3f K'%(temp_B) + '\n'+\ 'This is below minimum value (temp_A < %.3f)' %(self.get_lt1_temp_A_max()) + ' K \n'+\ 'Please help me!!!\n xxx LT1' recipients = ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**'] if temp_A>self.get_lt1_temp_A_max()+3: subject=subject+' - LT1 WARMING UP!!!' self.warmup_lt1() #recipients = '*****@*****.**' print message if self.get_send_email(): if self._mailer.send_email(recipients,subject,message): print 'Warning email message sent' if self.get_recording(): self._data.add_data_point((t_num-self._T0)/3600., lev1_flt, lev2_flt, self.get_temperature(), rate1, rate2, temp_A, temp_B) else: if self.get_recording(): self._data.add_data_point((t_num-self._T0)/3600., lev1_flt, lev2_flt, self.get_temperature(), rate1, rate2) return True
def _update(self): if not MonitorInstrument._update(self): return False MAXLVLTRIES = 3 i = 0 self._levelmeter.write('chan 2') lev1 = self._levelmeter.ask('meas?') lev1_flt = float((lev1.split(' '))[0]) while lev1_flt < 1.0 and i < MAXLVLTRIES: self._levelmeter.write('chan 2') self._levelmeter.write('meas') # TODO make sure readout is actually finished lev1 = self._levelmeter.ask('meas?') lev1_flt = float((lev1.split(' '))[0]) i += 1 # time.sleep(0.1) if lev1_flt < -1.0: lev1_flt = -1.0 i = 0 self._levelmeter.write('chan 1') lev2 = self._levelmeter.ask('meas?') lev2_flt = float((lev2.split(' '))[0]) while lev2_flt < 1.0 and i < MAXLVLTRIES: self._levelmeter.write('chan 1') self._levelmeter.write('meas') # TODO make sure readout is actually finished lev2 = self._levelmeter.ask('meas?') lev2_flt = float((lev2.split(' '))[0]) i += 1 # time.sleep(0.1) if lev2_flt < -1.0: lev2_flt = -1.0 t_num = time.time() t_str = time.asctime() self._rate_times.append((t_num - self._T0) / 3600.) self._rate_levels1.append(lev1_flt) self._rate_levels2.append(lev2_flt) i = 0 while self._rate_times[i] < (( (t_num - self._T0) / 3600.) - self._rate_update_interval): self._rate_times = self._rate_times[1:] self._rate_levels1 = self._rate_levels1[1:] self._rate_levels2 = self._rate_levels2[1:] if len(self._rate_times) > 1: rate1 = (self._rate_levels1[0] - self._rate_levels1[-1]) / ( self._rate_times[-1] - self._rate_times[0]) rate2 = (self._rate_levels2[0] - self._rate_levels2[-1]) / ( self._rate_times[-1] - self._rate_times[0]) else: rate1 = 0 rate2 = 0 print('current time: %s' % t_str) print('current cryovac levelmeter reading:') print(' LHe1 (upper tank): %s' % (lev1)) print(' LHe2 (lower tank): %s' % (lev2)) volt = 'n/a' keith_meas = self._keithley.ask(':func?') if keith_meas == '"VOLT:DC"': volt = float(self._keithley.ask(':data?')) print('current sensor voltage: %.3f' % (volt)) print('current temperature: %.3f' % (self.get_temperature())) if self.get_save_data(): try: with open( '//tudelft.net/staff-groups/tnw/ns/qt/Diamond/setups/LT2/cryo.txt', 'a') as f: f.write('%.0f\t%s\t%s\t%s\t%.3f V\n' % (t_num, t_str, lev1, lev2, volt)) f.close() except Exception: print ' error writing on network disk' if self.get_send_email(): try: params = urllib.urlencode({ 'entry_312373567': lev1, 'entry_941467047': lev2, 'ss-submit': 'Submit' }) urllib.urlopen( 'https://docs.google.com/forms/d/1T0ZY1G08LPWRn3M_-yq--PAdrz_8LtqzQJn9AL3qZVs/formResponse', params) except Exception: print ' error publishing levels' if (lev2_flt < self.get_he2_lvl_min()) or ( volt != 'n/a' and volt < self.get_temp_voltage_min()) or ( -0.1 < lev1_flt < self.get_he1_lvl_min()): subject = 'Warning from Cryo LT2!' message = 'Warning from Cryo LT2: Measured levels: \n'+\ 'current cryovac levelmeter reading:\n' + \ ' LHe1 (upper tank): %s'%(lev1) + '\n' + \ ' LHe2 (lower tank): %s'%(lev2) + '\n' + \ 'current sensor voltage: %.3f'%(volt) + '.\n' + \ 'current temperature: %.3f'%(self.get_temperature()) + '.\n' + \ 'This is below minimum values (LHe2 < %.3f'%(self.get_he2_lvl_min()) + ' cm'+ ', LHe1 < %.3f'%(self.get_he1_lvl_min()) +\ ', voltage < %.3f'%(self.get_temp_voltage_min()) + 'V ( = 6 K)). \n' + \ 'Please help me!!!\n xxx LT2' recipients = [ '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**' ] #recipients = '*****@*****.**' print message if self.get_send_email(): if self._mailer.send_email(recipients, subject, message): print 'Warning email message sent' if self._monitor_lt1: temp_A = self._temp_lt1.get_kelvinA() temp_B = self._temp_lt1.get_kelvinB() print('LT1 temperature A: %.3f K' % (temp_A)) print('LT1 temperature B: %.3f K' % (temp_B)) if self.get_save_data(): with open( '//tudelft.net/staff-groups/tnw/ns/qt/Diamond/setups/LT1/cryo.txt', 'a') as f: f.write('%.0f\t%s\t%.3f K\t%.3f K \n' % (t_num, t_str, temp_A, temp_B)) f.close() if temp_A > self.get_lt1_temp_A_max(): subject = 'Warning from Cryo LT1!' message = 'Warning from Cryo LT1: \n'+\ 'LT1 temperature A: %.3f K'%(temp_A) + '\n'+\ 'LT1 temperature B: %.3f K'%(temp_B) + '\n'+\ 'This is below minimum value (temp_A < %.3f)' %(self.get_lt1_temp_A_max()) + ' K \n'+\ 'Please help me!!!\n xxx LT1' recipients = [ '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**' ] if temp_A > self.get_lt1_temp_A_max() + 3: subject = subject + ' - LT1 WARMING UP!!!' self.warmup_lt1() #recipients = '*****@*****.**' print message if self.get_send_email(): if self._mailer.send_email(recipients, subject, message): print 'Warning email message sent' if self.get_recording(): self._data.add_data_point( (t_num - self._T0) / 3600., lev1_flt, lev2_flt, self.get_temperature(), rate1, rate2, temp_A, temp_B) else: if self.get_recording(): self._data.add_data_point((t_num - self._T0) / 3600., lev1_flt, lev2_flt, self.get_temperature(), rate1, rate2) return True