def __init__(self, logger=None, plotFig=True, prefix='', debug=True): """ Class to readSerial port from PID control Arduino and store temperatures from inside WVR enclosure to file """ host = socket.gethostname() if host == 'wvr2': self.method = 2 self.loc = 'summit' elif host == 'wvr1': self.method = 2 self.loc = 'pole' else: self.method = 2 self.port = '/dev/arduinoPidTemp' self.baudrate = 9600 self.plotFig = plotFig self.setPoint = 19 self.replotTime = 5 self.fileNameRead = '' self.debug = debug self.home = os.getenv('HOME') self.dataDir = self.home + '/wvr_data/' #symlink to where the data is if prefix == '': self.prefix = self.getPrefixTimeStamp() else: self.prefix = prefix if logger == None: self.lw = logWriter.logWriter(self.prefix, verbose=False) else: self.lw = logger
def __init__(self, logger=None, plotFig=True, prefix='', debug=True): """ Class to read ethernet socket port from PID control Arduino and store temperatures from inside WVR enclosure to file v3 (Nov 2017) is updated from v2 to use ethernet communication, instead of serial. Used homemade Socket.py socket interface. """ hostname = S.socket.gethostname() self.ip = '192.168.168.234' # IP address of PidTemp Arduino self.port = 4321 self.debug=debug self.plotFig=plotFig self.setPoint = 19 self.replotTime = 5 self.fileNameRead = '' self.home = os.getenv('HOME') self.dataDir = self.home+'/wvr_data/' #symlink to where the data is if hostname == 'wvr2': self.loc = 'summit' elif hostname == 'wvr1': self.loc = 'pole' if prefix == '': self.prefix = self.getPrefixTimeStamp() else: self.prefix = prefix if logger== None: self.lw = logWriter.logWriter(self.prefix, verbose=False) else: self.lw = logger self.initPort()
def InitUI(self): self.Bind(wx.EVT_CLOSE, self.OnExitApp) vbox = wx.BoxSizer(wx.VERTICAL) hbox = wx.BoxSizer(wx.HORIZONTAL) for inst in self.instList: panel = inst.panelClass(self, inst); if inst.isMotor: motorVbox = wx.BoxSizer(wx.VERTICAL) motorVbox.Add(panel, proportion=0, border=0, flag=wx.EXPAND) else: hbox.Add(panel, proportion=1, border=0, flag=wx.EXPAND) if self.laserFound() and self.motorFound(): self.fineAlign = fineAlign(self.getLasers()[0], self.getMotors()[0]) try: self.fineAlignPanel = fineAlignPanel(self, self.fineAlign) except Exception as e: dial = wx.MessageDialog(None, 'Could not initiate instrument control. '+traceback.format_exc(), 'Error', wx.ICON_ERROR) dial.ShowModal() motorVbox.Add(self.fineAlignPanel, proportion=0, flag=wx.EXPAND) self.autoMeasure = autoMeasure(self.getLasers()[0], self.getMotors()[0], self.fineAlign) self.autoMeasurePanel = autoMeasurePanel(self, self.autoMeasure) motorVbox.Add(self.autoMeasurePanel, proportion=0, flag=wx.EXPAND) if self.motorFound(): hbox.Add(motorVbox) vbox.Add(hbox, 3, wx.EXPAND) self.log = outputlogPanel(self) vbox.Add(self.log, 1, wx.EXPAND) self.SetSizer(vbox) sys.stdout = logWriter(self.log) sys.stderr = logWriterError(self.log)
def InitUI(self): self.Bind(wx.EVT_CLOSE, self.OnExitApp) vbox = wx.BoxSizer(wx.VERTICAL) hbox = wx.BoxSizer(wx.HORIZONTAL) for inst in self.instList: panel = inst.panelClass(self, inst) if inst.isMotor: motorVbox = wx.BoxSizer(wx.VERTICAL) motorVbox.Add(panel, proportion=0, border=0, flag=wx.EXPAND) else: hbox.Add(panel, proportion=1, border=0, flag=wx.EXPAND) if self.laserFound() and self.motorFound(): self.fineAlign = fineAlign(self.getLasers()[0], self.getMotors()[0]) try: self.fineAlignPanel = fineAlignPanel(self, self.fineAlign) except Exception as e: dial = wx.MessageDialog( None, 'Could not initiate instrument control. ' + traceback.format_exc(), 'Error', wx.ICON_ERROR) dial.ShowModal() motorVbox.Add(self.fineAlignPanel, proportion=0, flag=wx.EXPAND) self.autoMeasure = autoMeasure(self.getLasers()[0], self.getMotors()[0], self.fineAlign) self.autoMeasurePanel = autoMeasurePanel(self, self.autoMeasure) motorVbox.Add(self.autoMeasurePanel, proportion=0, flag=wx.EXPAND) if self.motorFound(): hbox.Add(motorVbox) vbox.Add(hbox, 3, wx.EXPAND) self.log = outputlogPanel(self) vbox.Add(self.log, 1, wx.EXPAND) self.SetSizer(vbox) sys.stdout = logWriter(self.log) sys.stderr = logWriterError(self.log)
def setLogger(self, logger=None): prefix = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') if logger == None: self.lw = logWriter.logWriter(prefix, verbose=False) else: self.lw = logger
dest="verbose", action="store_true", default=False, help="-v option will print to Logging to screen in addition to file. Default = False") parser.add_option("-d", dest="duration", default=3500, type=int, help="-d Duration in seconds of the observations. Default=3500s") (options, args) = parser.parse_args() if options.fileNameRead != '': options.plotFig = True if options.verbose == True: debug=True else: debug=False ts = time.strftime('%Y%m%d_%H%M%S') prefix=ts lw = logWriter.logWriter(prefix, options.verbose) rsp = sr.SerialPIDTempsReader(logger=lw,plotFig=options.plotFig,debug=debug) if options.fileNameRead == '': rsp.loopNtimes(options.duration) else: rsp.plotTempsFromFile(options.fileNameRead)
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36' } res = requests.get('http://bj.xiaozhu.com/', headers=headers) print(res) soup = BeautifulSoup(res.text, 'html.parser') # 四种解释器 #1 "html.parser" python内置的标准库,执行速度中,容错能力强 python2.7.3 or 3.2.2 之前的版本中容错能力差 #2 "lxml" 速度快, 容错能力强 需要安装C语言库 #3 ["lxml", "xml"] -> "xml" 速度快,唯一支持XML的解析器 需要安装C语言库 #4 html5lib 最好的容错性,以浏览器的方式解析文档生成HTML5的格式文档 速度慢,不依赖外部扩展库 lf = lw.logWriter() try: lf.write(soup.prettify()) except ConnectionError: print('connect Default') # 解析到的Soup文档可以使用find()和find_all()方法及selector()方法定位需要的元素 # find_all(tag, attibutes, recursive, text, limit, keywords) # find(tag, attibutes, recursive, text, keywords) # F12 Element中找到价格标签位置 右键copy -> copy Selector #page_list > ul > li:nth-child(1) > div.result_btm_con.lodgeunitname > div:nth-child(1) > span > i price = soup.select( '#page_list > ul > li:nth-of-type(1) > div.result_btm_con.lodgeunitname > div:nth-child(1) > span > i' ) #定位元素位置并通过selector方法提取
if __name__ == '__main__': usage = ''' ''' #options .... parser = OptionParser(usage=usage) (options, args) = parser.parse_args() #### VARIABLES ##### script = "wvrTest.py" ###################### ts = time.strftime('%Y%m%d_%H%M%S') prefix = ts + '_Test' lw = logWriter.logWriter(prefix, False) lw.write("Running %s" % script) # Also print to standard output file in case we get messages going to it print "Starting %s at %s" % (script, ts) sys.stdout.flush() mypid = os.getpid() print "PID:", mypid pri = os.popen('ps -p %s -o pri' % mypid).read().split()[1] print "NICE:", pri sys.stdout.flush() time.sleep(2) pri = os.popen('ps -p %s -o pri' % mypid).read().split()[1]
# -*- coding: utf-8 -*- import time import logWriter log = logWriter.logWriter() log.init() while True: log.makeLog() log.post() time.sleep(10)
from authentification import userVerified from CSV_Functions import get_row_count, get_remote_info from SSH_Subprocess import run_ssh_command import sys import time from lcd_driver import lcdInit, lcdMessage, lcdClear from configReader import configReader from logWriter import logWriter config = configReader('config.ini') #Get information from config file log = logWriter() #Initialize logWriter #Function to run program def runShutdown(file_name): #Start with the row after the header info. row_number = 1 #Determine the number of rows in the csv file. row_count = get_row_count(file_name) #Loop through and run the ssh command for every row in the csv file. while (row_number < row_count): machine_name, ip, rmt_user, sht_dwn_cmd = get_remote_info( file_name, row_number) run_ssh_command(machine_name, ip, rmt_user, sht_dwn_cmd) row_number += 1 #Check for user verification
default=False, help= "-v option will print to Logging to screen in addition to file. Default = False" ) (options, args) = parser.parse_args() #### VARIABLES ##### loadList = ['twoLoads_Ambient', 'twoLoads_Cold'] loadDuration = 20 # seconds script = "wvrTwoLoads.py" ###################### ts = time.strftime('%Y%m%d_%H%M%S') prefix = ts + '_' + loadList[0] lw = logWriter.logWriter(ts, options.verbose) lw.write("Running %s" % script) lw.write("create wvrComm object") wvrC = wvrComm.wvrComm(debug=False) lw.write('Set WVR to operational') if (wvrC.setWvrToOperation()): lw.write("WVR Operational!") else: lw.write("ERROR: WVR failed to go to Operational. Check low level errors") sys.exit() lw.write("Create wvrDaq object") daq = wvrDaq.wvrDaq(logger=lw, reg_fast=reg_fast,
from keypad import keypadMsge import time from lcd_driver import lcdMessage, lcdClear from configReader import configReader from logWriter import logWriter log = logWriter() def userVerified(): config = configReader('config.ini') #Get information from config file #Pin needed from user to authorize access pin = config.getAuthConfig('pin') maxAttempts = config.getAuthConfig('maxAttempts') lockoutTime = config.getAuthConfig('lockoutTime') exitAuth = config.getAuthConfig('exitAuthenticatorCode') attempt = 1 #Tell user to input pin on keypad print('User Authentification Required!') print('Please input your pin on the keypad') while (True): global log try: #record that authenticator is being used to log log.write(f'Authenticator Initialized: Asking user for pin') #Tell user to input password on lcd
def setLogger(self,logger=None): if logger == None: self.lw = logWriter.logWriter(prefix=self.prefix, verbose=False) else: self.lw = logger