Example #1
0
    def Send(configPath, content, attPath):
        f = ConfigHelper.Get(
            configPath, 'email', 'from')
        pwd = ConfigHelper.Get(
            configPath, 'email', 'pwd')
        t = ConfigHelper.Get(
            configPath, 'email', 'to')
        message = MIMEMultipart()
# 出现554 是因为from  to没有设置
        message['From'] = f
        message['To'] = t
        message['Subject'] = '爬虫邮件通知'

        # 构造附件
        if os.path.exists(attPath):
            for parent, dirnames, filenames in os.walk(attPath):
                if(len(filenames) == 0):
                    content += "  日志文件夹内日志文件不存在:%s" % attPath
                    break
                for file in filenames:
                    att1 = MIMEText(
                        open(os.path.join(parent, file), 'rb').read(), 'base64', 'utf-8')
                    att1["Content-Type"] = 'application/octet-stream'
                    att1[
                        "Content-Disposition"] = 'attachment; filename="%s"' % file
                    message.attach(att1)
        else:
            content += "  日志文件夹不存在:%s" % attPath
        message.attach(MIMEText(content, 'plain', 'utf-8'))
        server = smtplib.SMTP('smtp.163.com', 25)
        server.login(f, pwd)
        server.sendmail(f, t, message.as_string())
        server.quit()
    def __init__(self, parent=None):
        QMainWindow.__init__(self)

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.portManager = PortManager(self.ui, startmonitor=True)
        self.configHelper = ConfigHelper(self.ui)
        self.initSignal()
        self.setupUi_Ex()
Example #3
0
    def __init__(self, configPath, table):
        self.server = ConfigHelper.Get(configPath, 'db', 'server')
        self.uid = ConfigHelper.Get(configPath, 'db', 'uid')
        self.pwd = ConfigHelper.Get(configPath, 'db', 'pwd')
        self.database = ConfigHelper.Get(configPath, 'db', 'database')
        self.params = urllib.quote_plus(
            "DRIVER={SQL Server Native Client 10.0};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s"
            % (self.server, self.database, self.uid, self.pwd))
        self.engine = sqlalchemy.create_engine(
            "mssql+pyodbc:///?odbc_connect=%s" % self.params)

        self.metaData = sqlalchemy.MetaData(bind=self.engine)
        self.table = sqlalchemy.Table(table, self.metaData, autoload=True)
 def __init__(self, parent=None):
     QMainWindow.__init__(self)
     
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.portManager = PortManager(self.ui, startmonitor=True)
     self.configHelper = ConfigHelper(self.ui)
     self.initSignal()
     self.setupUi_Ex()        
Example #5
0
def getSettings(filename=f'{PROGRAM_NAME}-settings.ini'):
    return ConfigHelper(SETTINGS_GROUP, filename).getSettings()
Example #6
0
import os
from ConfigHelper import ConfigHelper
import xlrd
import json
import time
import re

configData = ConfigHelper.load()
DMS_data_path = configData["path"]
OutPath = configData["OutPath"]

filelist = os.listdir(DMS_data_path)
names = []
col_data = []
returnData = {}
for file in filelist:
    workbook = xlrd.open_workbook(DMS_data_path + '/' + file)
    names = workbook.sheet_names()
    for name in names:
        if name == '330_340':
            worksheet = workbook.sheet_by_name(name)
            nrows = worksheet.nrows
            ncols = worksheet.ncols
            for i in range(16):
                col_values = worksheet.col_values(i)
                col_value = col_values[2:]
                # print(col_value)
                col_data.append(col_value)

newdatas = []
for data in col_data[8:16]:
class ArduloaderWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self)
        
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.portManager = PortManager(self.ui, startmonitor=True)
        self.configHelper = ConfigHelper(self.ui)
        self.initSignal()
        self.setupUi_Ex()        
               
    def setupUi_Ex(self):
        self.setWindowTitle(const.windowtitle)
        self.ui.textEdit.append(const.aboutinfo)
        self.ui.headLabel.setPixmap(QPixmap(":/main/icons/main/arduloader.png"))
        self.setWindowIcon(QtGui.QIcon(":/main/icons/main/logo.png"))
        self.setBoards()
        
        self.configHelper.updateUiByConfig()
    
    def setBoards(self):
        ret, self.__boardsinfodict = BoardHelper.getBoardsInfo()
        if not ret:
            self.__boardsinfodict = {}
            return
            
        for boardname in self.__boardsinfodict.keys():
            self.ui.mcuCombox.addItem(boardname)

    def onUploadFinish(self, ret, text):
        self.timer.stop()
        try:
            res = ret == 0 and "Upload SUCCESS:)" or ("%s\nUpload FAILED:(" % text)
        except IOError:
            res = "Read tmp file error"
        except:
            res = "Unknown error"
            
        self.ui.textEdit.append(res)
    
    def onUploading(self):
        prev_cursor = self.ui.textEdit.textCursor()
        self.ui.textEdit.moveCursor(QtGui.QTextCursor.End)
        self.ui.textEdit.insertPlainText (".")
        self.ui.textEdit.setTextCursor(prev_cursor)
    
    def getUploadArgs(self):
        infodict = self.__boardsinfodict.get(tostr(self.ui.mcuCombox.currentText()))
        if not infodict:
            return
            
        mcu = infodict["mcu"]
        speed = infodict["speed"]
        protocol = infodict["protocol"]
        maximum_size = infodict["maximum_size"]
        comport = tostr(self.ui.portCombox.currentText())
        flash_bin = togbk(self.ui.hexfileCombox.currentText())
        
        return {"mcu": mcu,
                "speed": speed,
                "protocol": protocol,
                "maximum_size": maximum_size,
                "comport": comport, 
                "flash_bin": flash_bin
                }
    
    def checkUploadArgs(self, argsdict):
        if not argsdict:
            self.ui.textEdit.append("Get chip data error")
            return False
            
        if not OSPath.exists(argsdict.get("flash_bin", "")):
            self.ui.textEdit.append("Hex file not exists")
            return False
            
        # TODO: 检查文件大小是否超多当前芯片允许的最大值
        return True
        
    def startUpload(self):
        argsdict = self.getUploadArgs()
        if not self.checkUploadArgs(argsdict):
            return
            
        self.uploader = Uploader()
        self.connect(self.uploader.qobj, QtCore.SIGNAL(const.finish_sig), self.onUploadFinish)
        self.uploader.resetUploadArgs(argsdict)
        
        self.ui.textEdit.clear()
        self.ui.textEdit.append("Start uploading\n")
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.onUploading)
        self.uploader.start()
        self.timer.start(const.process_interval)
    
    def onOpenHexFile(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, "Choose a HEX file", ".", "HEX (*.hex)")
        if filename == "":
            return
        index = self.ui.hexfileCombox.findText(filename)
        if index < 0:
            self.ui.hexfileCombox.insertItem(0, filename)
            index = 0
        self.ui.hexfileCombox.setCurrentIndex(index)
    
    def closeEvent(self, e):
        hex = tostr(self.ui.hexfileCombox.currentText())
        com = tostr(self.ui.portCombox.currentText())
        board = tostr(self.ui.mcuCombox.currentText())
        self.configHelper.updateConfig(hex, com, board)
        e.accept()
        
    def initSignal(self):
        self.ui.exitButton.clicked.connect(self.close)
        self.ui.uploadButton.clicked.connect(self.startUpload)
        self.ui.openHexButton.clicked.connect(self.onOpenHexFile)
class ArduloaderWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self)

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.portManager = PortManager(self.ui, startmonitor=True)
        self.configHelper = ConfigHelper(self.ui)
        self.initSignal()
        self.setupUi_Ex()

    def setupUi_Ex(self):
        self.setWindowTitle(const.windowtitle)
        self.ui.textEdit.append(const.aboutinfo)
        self.ui.headLabel.setPixmap(
            QPixmap(":/main/icons/main/arduloader.png"))
        self.setWindowIcon(QtGui.QIcon(":/main/icons/main/logo.png"))
        self.setBoards()

        self.configHelper.updateUiByConfig()

    def setBoards(self):
        ret, self.__boardsinfodict = BoardHelper.getBoardsInfo()
        if not ret:
            self.__boardsinfodict = {}
            return

        for boardname in self.__boardsinfodict.keys():
            self.ui.mcuCombox.addItem(boardname)

    def onUploadFinish(self, ret, text):
        self.timer.stop()
        try:
            res = ret == 0 and "Upload SUCCESS:)" or ("%s\nUpload FAILED:(" %
                                                      text)
        except IOError:
            res = "Read tmp file error"
        except:
            res = "Unknown error"

        self.ui.textEdit.append(res)

    def onUploading(self):
        prev_cursor = self.ui.textEdit.textCursor()
        self.ui.textEdit.moveCursor(QtGui.QTextCursor.End)
        self.ui.textEdit.insertPlainText(".")
        self.ui.textEdit.setTextCursor(prev_cursor)

    def getUploadArgs(self):
        infodict = self.__boardsinfodict.get(
            tostr(self.ui.mcuCombox.currentText()))
        if not infodict:
            return

        mcu = infodict["mcu"]
        speed = infodict["speed"]
        protocol = infodict["protocol"]
        maximum_size = infodict["maximum_size"]
        comport = tostr(self.ui.portCombox.currentText())
        flash_bin = togbk(self.ui.hexfileCombox.currentText())

        return {
            "mcu": mcu,
            "speed": speed,
            "protocol": protocol,
            "maximum_size": maximum_size,
            "comport": comport,
            "flash_bin": flash_bin
        }

    def checkUploadArgs(self, argsdict):
        if not argsdict:
            self.ui.textEdit.append("Get chip data error")
            return False

        if not OSPath.exists(argsdict.get("flash_bin", "")):
            self.ui.textEdit.append("Hex file not exists")
            return False

        # TODO: 检查文件大小是否超多当前芯片允许的最大值
        return True

    def startUpload(self):
        argsdict = self.getUploadArgs()
        if not self.checkUploadArgs(argsdict):
            return

        self.uploader = Uploader()
        self.connect(self.uploader.qobj, QtCore.SIGNAL(const.finish_sig),
                     self.onUploadFinish)
        self.uploader.resetUploadArgs(argsdict)

        self.ui.textEdit.clear()
        self.ui.textEdit.append("Start uploading\n")
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.onUploading)
        self.uploader.start()
        self.timer.start(const.process_interval)

    def onOpenHexFile(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, "Choose a HEX file",
                                                     ".", "HEX (*.hex)")
        if filename == "":
            return
        index = self.ui.hexfileCombox.findText(filename)
        if index < 0:
            self.ui.hexfileCombox.insertItem(0, filename)
            index = 0
        self.ui.hexfileCombox.setCurrentIndex(index)

    def closeEvent(self, e):
        hex = tostr(self.ui.hexfileCombox.currentText())
        com = tostr(self.ui.portCombox.currentText())
        board = tostr(self.ui.mcuCombox.currentText())
        self.configHelper.updateConfig(hex, com, board)
        e.accept()

    def initSignal(self):
        self.ui.exitButton.clicked.connect(self.close)
        self.ui.uploadButton.clicked.connect(self.startUpload)
        self.ui.openHexButton.clicked.connect(self.onOpenHexFile)