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()
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)
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)
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)
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 {}
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)
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 {}
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 {}
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)
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)