示例#1
0
文件: main.py 项目: ajelcode/tafor
def main():
    import sys
    app = QApplication(sys.argv)
    translator = QTranslator()
    locale = QLocale.system().name()
    translateFile = os.path.join(BASEDIR, 'i18n\\translations', '{}.qm'.format(locale))
    if translator.load(translateFile):
        app.installTranslator(translator)

    # QApplication.setStyle(QStyleFactory.create('Fusion'))

    if boolean(conf.value('General/LargeFont')):
        font = QFont('Courier New', 14)
        app.setFont(font)

    serverName = 'Tafor'
    socket = QLocalSocket()
    socket.connectToServer(serverName)

    # 如果连接成功,表明server已经存在,当前已有实例在运行
    if socket.waitForConnected(500):
        return(app.quit())

    # 没有实例运行,创建服务器     
    localServer = QLocalServer()
    localServer.listen(serverName)

    try:          
        window = MainWindow()
        window.show()
        sys.exit(app.exec_())
    except Exception as e:
        logger.error(e, exc_info=True)
    finally:  
        localServer.close()
示例#2
0
文件: setting.py 项目: ajelcode/tafor
    def exportConf(self):
        filename = self.exportPath.text()
        try:
            saveConf(filename)

        except Exception as e:
            logger.error(e)

        else:
            self.parent.statusBar.showMessage(QCoreApplication.translate('Settings', 'Configuration has been exported'), 5000)
示例#3
0
def callService(url):
    try:
        r = requests.get(url, timeout=5)
        return r.json()

    except requests.exceptions.ConnectionError:
        logger.info('GET {} 408 Request Timeout'.format(url))

    except Exception as e:
        logger.error(e)
示例#4
0
文件: send.py 项目: ajelcode/tafor
    def receive(self, message):
        self.message = message
        firCode = conf.value('Message/FIR')
        try:
            self.parser = SigmetParser(self.message['rpt'], firCode=firCode)
            html = '<p>{}<br/>{}</p>'.format(
                self.message['sign'], self.parser.renderer(style='html'))
            self.rpt.setHtml(html)

        except Exception as e:
            logger.error(e)
示例#5
0
def repoRelease(url):
    try:
        r = requests.get(url, timeout=30)
        return r.json()

    except requests.exceptions.ConnectionError:
        logger.info('GET {} 408 Request Timeout'.format(url))

    except Exception as e:
        logger.error(e)

    return {}
示例#6
0
    def receive(self, message):
        self.message = message
        visHas5000 = boolean(conf.value('Validator/VisHas5000'))
        cloudHeightHas450 = boolean(conf.value('Validator/CloudHeightHas450'))
        try:
            self.parser = Parser(self.message['rpt'], visHas5000=visHas5000, cloudHeightHas450=cloudHeightHas450)
            self.parser.validate()
            html = '<p>{}<br/>{}</p>'.format(self.message['sign'], self.parser.renderer(style='html'))
            if self.parser.tips:
                html += '<p style="color: grey"># {}</p>'.format('<br/># '.join(self.parser.tips))
            self.rpt.setHtml(html)
            self.message['rpt'] = self.parser.renderer()

        except Exception as e:
            logger.error(e)
示例#7
0
def remoteMessage(url):
    try:
        r = requests.get(url, timeout=30)
        if r.status_code == 200:
            return r.json()
        else:
            logger.warn('GET {} 404 Not Found'.format(url))

    except requests.exceptions.ConnectionError:
        logger.warn('GET {} 408 Request Timeout'.format(url))

    except Exception as e:
        logger.error(e)

    return {}
示例#8
0
def firInfo(url):
    try:
        r = requests.get(url, timeout=30)
        if r.status_code == 200:
            data = r.json()
            imageUrl = data['image']
            image = requests.get(imageUrl)
            data['raw'] = image.content
            return data
        else:
            logger.warn('GET {} 404 Not Found'.format(url))

    except requests.exceptions.ConnectionError:
        logger.warn('GET {} 408 Request Timeout'.format(url))

    except Exception as e:
        logger.error(e)

    return {}
示例#9
0
def callUp(url, token, mobile):
    try:
        r = requests.post(url,
                          auth=('api', token),
                          data={
                              'mobile': mobile,
                              'code': '000000'
                          },
                          timeout=30)
        if r.status_code in [200, 201]:
            logger.info('Dial {} successfully'.format(mobile))
            return r.json()
        else:
            logger.warn('Dial {} failed {}'.format(mobile, r.text))

    except requests.exceptions.ConnectionError:
        logger.warn('POST {} 408 Request Timeout'.format(url))

    except Exception as e:
        logger.error(e)
示例#10
0
    def run(self):
        port = conf.value('Communication/SerialPort')
        baudrate = int(conf.value('Communication/SerialBaudrate'))
        bytesize = conf.value('Communication/SerialBytesize')
        parity = conf.value('Communication/SerialParity')
        stopbits = conf.value('Communication/SerialStopbits')

        try:
            context.serial.lock()
            serialComm(self.message,
                       port,
                       baudrate=baudrate,
                       bytesize=bytesize,
                       parity=parity,
                       stopbits=stopbits)
            error = ''
        except Exception as e:
            error = str(e)
            logger.error(e)
        finally:
            context.serial.release()
            self.doneSignal.emit(error)