Beispiel #1
0
    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
Beispiel #4
0
    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()
 def __init__(self):
     Accelerator.__init__(self)
     self.sections = list()
     self.width = 7770.0
     LinacSection.id = 1
Beispiel #6
0
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)
Beispiel #7
0
 def __init__(self):
     Accelerator.__init__(self)
     self.radius = 2645.4143