def LoadControl(self):
        self.update_thread.emit()

        while self.F == False:
            time.sleep(0.1)
        while self.F < self.dF_target * 0.9 or self.F > self.dF_target * 1.1:
            self.update_thread.emit()
            if self.F < self.dF_target * 0.9:
                MotorPI.move_rel(0.2)
                while MotorPI.ismoving():
                    time.sleep(0.1)

            if self.F > self.dF_target * 1.1:
                MotorPI.move_rel(-0.2)

                while MotorPI.ismoving():
                    time.sleep(0.1)

            self.update_thread.emit()
            time.sleep(0.5)
    def DisplacementControl(self):
        #Cycles first
        if self.NcycleF != 0:
            cycle = 0
            while cycle < self.NcycleF:

                MotorPI.move_rel(self.dF_target)
                while MotorPI.ismoving():
                    #print("motor running")
                    time.sleep(0.1)
                if self.pause == True:
                    return
                MotorPI.move_rel(-self.dF_target)
                while MotorPI.ismoving():
                    time.sleep(0.1)
                cycle = cycle + 1

        if self.pause:
            return

        MotorPI.move_rel(self.dF_target)
        while MotorPI.ismoving():
            time.sleep(0.1)
示例#3
0
    def ini_processCall(self):
        """Function that initialise: start the motor to find upper and lower boundaries"""

        #Button check not more than one time
        if self.ini_start:
            return
        self.ini_start = True

        #Define the progress bar
        self.completed = 0

        #######################################################
        # Define the connections with devices

        self.label.setText("Connecting...")
        self.repaint()
        time.sleep(1)
        #######################################################
        ## CONNECTION WITH ARDUINO/PUMP/MOTOR

        self.connectionCall()

        msg = ""
        if Arduino.isconnected():
            msg += "Arduino: Connected\n"
        else:
            msg += "Arduino: Not connected\n"

        if Pump_seringe.isconnected():
            msg += "Pump: Connected\n"
        else:
            msg += "Pump: Not connected\n"

        if MotorPI.isconnected():
            msg += "Motor: Connected\n"
        else:
            msg += "Motor: Not connected\n"

        QMessageBox.about(self, "Connections", msg)
        if Arduino.isconnected() == False or MotorPI.isconnected(
        ) == False or Pump_seringe.isconnected() == False:
            print('Connection problem')
            self.ini_start = False
            self.label.setText("Waiting")
            return

        secu = 0
        test = 0
        while test == 0:
            try:
                [secu, ori, F, P] = read_arduino()
                test = 1
            except:
                print("read step1 problem")

        if secu == 1:
            QMessageBox.about(self, "Problem", "Security button activated !")
            self.completed = 0
            self.ini_start = False
            self.timer_ini.stop()
            return

        msg = QMessageBox.question(
            self, "Continue ?", "Do you want to start the initialisation ?",
            QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
        if msg == QMessageBox.No:
            self.ini_start = False
            return

        #######################################################
        ## SEARCH FOR BOUNDARIES

        self.completed = 0
        self.progress.setValue(self.completed)
        self.label.setText("Searching for origin")
        self.repaint()
        #First boundary

        try:
            MotorPI.vel(55)
        except:
            QMessageBox.about(self, "Problem", "Retry please")
            self.ini_start = False
            self.timer_ini.stop()
            MotorPI.disconnect()
            return

        MotorPI.ref()
        try:
            MotorPI.move_rel(50)
        except:
            QMessageBox.about(self, "Problem", "Retry please")
            self.ini_start = False
            self.timer_ini.stop()
            return

        while ori == 0:
            if self.completed >= 100:
                self.completed = 0
                self.progress.setValue(self.completed)
                time.sleep(0.1)
                try:
                    [secu, ori, F, P] = read_arduino()
                except:
                    print("read step1 problem")
            self.completed = self.completed + 20
            self.progress.setValue(self.completed)
            time.sleep(0.5)
            try:
                [secu, ori, F, P] = read_arduino()
            except:
                print("read step1 problem")
            if secu == 1:
                QMessageBox.about(self, "Problem",
                                  "Security button activated !")
                self.completed = 0
                self.ini_start = False
                self.timer_ini.stop()
                return

        try:
            MotorPI.stop()
        except:
            print("motor stop")

        MotorPI.ref()

        self.completed = 100
        self.progress.setValue(self.completed)
        #        QMessageBox.about(self, "Origin", "The origin was found successfully")

        time.sleep(1)

        self.completed = 0
        self.progress.setValue(self.completed)
        self.label.setText("Returning mid")
        self.repaint()

        #Return
        L_return = -50

        MotorPI.move_rel(L_return)

        deg = 360 * abs(L_return) / MotorPI.p
        t = deg / MotorPI.vel_value()

        debut = time.time()
        limit = t / 99
        while MotorPI.ismoving():
            if time.time() - debut > limit:
                self.completed = self.completed + 1
                self.progress.setValue(self.completed)
                limit = limit + t / 99
            try:
                [secu, ori, F, P] = read_arduino()
            except:
                print("read step1 problem")
            if secu == 1:
                QMessageBox.about(self, "Problem",
                                  "Security button activated !")
                self.ini_start = False
                self.timer_ini.stop()
                return

        self.completed = 100
        self.progress.setValue(self.completed)
        self.label.setText("Finish")

        MotorPI.vel(20)

        self.timer_ini.stop()

        QMessageBox.about(
            self, "Acquisition",
            "Initialisation finished\n\nStart of the acquisition")

        self.switch_window.emit(self.path)

        self.close()