def __init__(self): super().__init__() self.config = Config("config.ini") # INIT Controls self.wheels = Wheels(self.config.steeringMid, self.config.steeringLeft, self.config.steeringRight) self.accelerator = Accelerator(self.config, self) self.__initUI() self.statusBar().showMessage("Board not connected") # Init uds listener self._log("Init udp at {}:{}".format( get_ip(), self.config.getOption('udp_port'))) self.udpSocket = QUdpSocket() self.udpSocket.setLocalAddress(QHostAddress(get_ip())) self.udpSocket.bind(self.config.getOption('udp_port')) self.udpSocket.readyRead.connect(self.udpHandler) # Init tcp server self.tcpServer = QTcpServer(self) self._log("Starting TCP at {}:{} ".format( get_ip(), str(self.config.getOption('tcp_port')))) self.tcpServer.listen(QHostAddress(get_ip()), self.config.getOption('tcp_port')) self.tcpServer.newConnection.connect(self.establishBoardConnection) self.show()
def __init__(self): Accelerator.__init__(self) self.sections = list() self.width = 7770.0 LinacSection.id = 1
def runLoop(self): n = self.loopLimit # Run a single Accelerator model, through N loops while n > 0: acc = Accelerator(self.screenLimit, self.screenAssumptions, self.evaluateAssumptions, self.incubateAssumptions, self.accelerateAssumptions, self.developAssumptions) # Run Accelerator for 16 years c = 15 while c > 0: acc.runAccelerator() c = c - 1 # Update loop running totals (to calculate averages later) self.totalSuccesses = self.totalSuccesses + acc.getTotalSuccess() self.totalScreen = self.totalScreen + acc.getTotalScreen() self.totalEvaluate = self.totalEvaluate + acc.getTotalEvaluate() self.totalIncubate = self.totalIncubate + acc.getTotalIncubate() self.totalAccelerate = self.totalAccelerate + acc.getTotalAccelerate() self.totalDevelop = self.totalDevelop + acc.getTotalDevelop() self.totalBudget = self.totalBudget + acc.getTotalBudget() self.totalPeakBudget = self.totalPeakBudget + acc.getPeakBudget() self.totalPeakHeadcount = self.totalPeakHeadcount + acc.getPeakHeadcount() if acc.getTotalSuccess() > self.goal2030: self.goal = self.goal + 1 # Print a model accelerator out to CSV if acc.getTotalSuccess() == 2 and not self.written and acc.getFinalBudget() > 0: acc.writeModel() self.written = True n = n - 1
if tpfilePath: touchpanel = TouchPanel(tpfilePath) context.setContextProperty("_TouchPanel", touchpanel) touchpanel.start() else: logging.debug("touch panel device file path is wrong!") if LedsKeyPath: ledkey = LedsKey(LedsKeyPath) context.setContextProperty("_LedsKey", ledkey) ledkey.start() else: logging.debug("gpio_keys device file path is wrong!") if AcceleratorPath: axis = Accelerator(AcceleratorPath) context.setContextProperty("_Accelerator", axis) axis.start() else: logging.debug("Accelerator device file path is wrong!") # context = view.rootContext() context.setContextProperty("_CpuUsage", cpu) context.setContextProperty("_Cputemperature", cputem) context.setContextProperty("_RamUsage", arm) context.setContextProperty("_StorageUsage", Storage) context.setContextProperty("_Systeminfo", sysinfo) context.setContextProperty("_Settting", seting) context.setContextProperty("_LightSensor", light) cpu.start()
class MainWindow(QMainWindow): config = None udpSocket = None tcpServer = None tcpBoard = None board_connection = None wheels = None accelerator = None def __init__(self): super().__init__() self.config = Config("config.ini") # INIT Controls self.wheels = Wheels(self.config.steeringMid, self.config.steeringLeft, self.config.steeringRight) self.accelerator = Accelerator(self.config, self) self.__initUI() self.statusBar().showMessage("Board not connected") # Init uds listener self._log("Init udp at {}:{}".format( get_ip(), self.config.getOption('udp_port'))) self.udpSocket = QUdpSocket() self.udpSocket.setLocalAddress(QHostAddress(get_ip())) self.udpSocket.bind(self.config.getOption('udp_port')) self.udpSocket.readyRead.connect(self.udpHandler) # Init tcp server self.tcpServer = QTcpServer(self) self._log("Starting TCP at {}:{} ".format( get_ip(), str(self.config.getOption('tcp_port')))) self.tcpServer.listen(QHostAddress(get_ip()), self.config.getOption('tcp_port')) self.tcpServer.newConnection.connect(self.establishBoardConnection) self.show() def __initUI(self): # Set up the user interface from Designer. uic.loadUi("main.ui", self) self.updateWheelsImage() # Connect up the buttons. # self.connectButton.clicked.connect(self.onConnect) self.query.returnPressed.connect(self.onSend) self.sendButton.clicked.connect(self.onSend) self.clearLogButton.clicked.connect(self.onClearLog) self.debugButton.clicked.connect(self.onDebug) self.timer = QBasicTimer() self.timer.start(100, self) def updateWheelsImage(self): pos = self.wheels.getPos() image = 'res/flat_wheel.png' if pos == self.wheels.POS_LEFT: image = 'res/left_wheel.png' if pos == self.wheels.POS_RIGHT: image = 'res/right_wheel.png' # Create widget pixmap = QPixmap(image) self.wheelsImage.setPixmap(pixmap) self.wheelsImage.setFixedWidth(pixmap.width()) self.wheelsImage.setFixedHeight(pixmap.height()) self.show() def udpHandler(self): udp_handler = UdpBoardHandler(self.udpSocket, self.console, self.handleBoard, self.config) udp_handler.handle_board() def handleBoard(self, host: QHostAddress, port): message = "Board found at {}:{}".format(host.toIPv4Address(), port) self._log(message) def establishBoardConnection(self): self.board_connection = self.tcpServer.nextPendingConnection() self.board_connection.readyRead.connect(self.messageFromBoard) self._log("board here") def messageFromBoard(self): instr = QDataStream(self.board_connection) instr.setVersion(QDataStream.Qt_5_0) if self.board_connection.bytesAvailable() > 0: self._log(str(self.board_connection.readAll())) def sendCommand(self, cmd): cmd = cmd.strip() self._log("Send: {}".format(cmd)) if self.board_connection.__class__.__name__ != 'NoneType': self.board_connection.write(cmd.encode()) else: self._log("Unable send command. No connection") def keyPressEvent(self, event): ''' A - left D - right S - wheel mid Up - speed up Down - speed down Space - break :param event: :return: ''' if event.key() == Qt.Key_A: self.wheels.turnLeft() self.sendCommand(self.wheels.getCommand()) if event.key() == Qt.Key_D: self.wheels.turnRight() self.sendCommand(self.wheels.getCommand()) if event.key() == Qt.Key_S: self.wheels.resetPos() self.sendCommand(self.wheels.getCommand()) if event.key() == Qt.Key_Space: self.accelerator.brake() if event.key() == Qt.Key_E: self.accelerator.speedUp() if event.key() == Qt.Key_Q: self.accelerator.speedDown() if event.key() == Qt.Key_Up: self.accelerator.forward() if event.key() == Qt.Key_Down: self.accelerator.backward() self.updateWheelsImage() def onButtonUp(self): print("up") pass def onButtonDown(self): print("down") pass def onSend(self): command = self.query.text() if not command: return None self.sendCommand(command) self.query.setText("") def onClearLog(self): self.console.setText('') def onDebug(self): options = self.config.getOptions() self._log("*********** DEBUG ************") self._log("Wheels:{}".format(self.wheels.getRawPos())) if self.board_connection.__class__.__name__ != 'NoneType': self._log("Rc car IP:{}:{}".format( self.board_connection.localAddress(), self.board_connection.localPort())) # for key in options: # self._log(key + "=" + str(options[key])) self._log("******************************") def timerEvent(self, event): pass def __exit__(self, exc_type, exc_val, exc_tb): self.config.write() def _log(self, message): print(message) self.console.append(message)
def __init__(self): Accelerator.__init__(self) self.radius = 2645.4143