Ejemplo n.º 1
0
    def connectionCall(self):
        """Function to connect to pump, motor and arduino"""
        try:
            Arduino.connect()
        except:
            print("arduino connection problem")
        if Arduino.isconnected():
            self.label_ard.setPixmap(self.pixmap_1)
        else:
            self.label_ard.setPixmap(self.pixmap_0)

        try:
            Pump_seringe.connect()
        except:
            print("pump connection problem")
        if Pump_seringe.isconnected():
            self.label_pum.setPixmap(self.pixmap_1)
        else:
            self.label_pum.setPixmap(self.pixmap_0)

        try:
            MotorPI.connect()
        except:
            print("motor connection problem")

        if MotorPI.isconnected():
            self.label_mot.setPixmap(self.pixmap_1)
        else:
            self.label_mot.setPixmap(self.pixmap_0)
Ejemplo n.º 2
0
    def TestConnectionCall(self):
        #######################################################
        ## CONNECTION WITH ARDUINO/PUMP/MOTOR

        msg = ""
        try:
            Arduino.connect()
        except:
            print("Can't connect to arduino")
        if Arduino.isconnected():
            msg += "Arduino: Connected\n"
        else:
            msg += "Arduino: Not connected\n"

        try:
            Pump_seringe.connect()
        except:
            print("Can't connect to pump")
        if Pump_seringe.isconnected():
            msg += "Pump: Connected\n"
        else:
            msg += "Pump: Not connected\n"

        try:
            MotorPI.connect()
            #MotorPI.ref()
        except:
            print("Can't connect to motor")
        if MotorPI.isconnected():
            msg += "Motor: Connected\n"
        else:
            msg += "Motor: Not connected\n"

        QMessageBox.about(self, "Connections", msg)
Ejemplo n.º 3
0
    def update_window(self):
        """Method called each time the timer clocks"""

        self.connectionCall(
        )  #Method to check the connection of the devices (method in "Left_panel")

        try:
            #[self.secu,self.ori,self.F,self.P] = read()    #Method to save current value of load and pressure
            self.ReadThread.start()
        except:
            print("ReadThread pb")
        self.vol = 0

        #
        try:
            self.d = MotorPI.motor_pos()

            if self.d < -50.1:
                self.clickMethodStop()
                MotorPI.move_rel(1)
                QMessageBox.about(self, "Warning",
                                  "The end course was reached")

            self.label_disp_abs_display.setText(
                "Abs: " + str(round(self.d, 2)) + " mm")  #Display the value
            self.label_disp_rel_display.setText(
                str(round(
                    (self.d - self.tare_disp), 2)) + " mm")  #Display the value
        except:
            print("Problem MotorPI.motor_pos() in update()")

        self.label_pressure_display.setText(
            f"{self.P:.3f} mmHg")  #Display the value
        #self.label_volume_display.setText(str(round(self.vol,4)) + " ml")   #Display the value
        self.label_load_display.setText(f"{self.F:.3f} N")  #Display the value

        if self.secu == 1:

            self.clickMethodStop()

            msg = QMessageBox.question(
                self, "Arret d'urgence ou Fin de course !",
                "Did you push the emergency stop button ?",
                QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
            if msg == QMessageBox.No:
                QMessageBox.about(
                    self, "Warning",
                    "The end course was activated, you have to move the motor manually and restart the initialisation"
                )
                self.timer.stop()
                self.return_window.emit()
            else:

                try:
                    [self.secu, self.ori, self.F, self.P] = read(
                    )  #Method to save current value of load and pressure
                except:
                    print("Read problem")
                while self.secu == 1:
                    QMessageBox.about(self, "Warning",
                                      "Un-push the emergency stop button")
                    try:
                        [self.secu, self.ori, self.F, self.P] = read(
                        )  #Method to save current value of load and pressure
                    except:
                        pass
                MotorPI.connect()
                return

        #------------------------------------------------------------------
        ## This part is activate when the user start the machanical test
        #------------------------------------------------------------------

        if not self.running:
            return

        self.time_now = time.time(
        ) - self.time_ini_graph  #Save the timepassed since the starting time
        #####################
        #Graphic update

        if not self.time_now or self.F or self.P:  #If value are null don't show on graph (because at the beginning values null)
            #xv = np.array([self.time_now])

            self.array_F.append(float(self.F))
            self.array_P.append(float(self.P))
            self.array_d.append(float(self.d - self.tare_disp))
            self.array_t.append(float(self.time_now))

            if self.Lxaxis == "Displacement (mm)":
                Lx = self.array_d
            elif self.Lxaxis == "Force (N)":
                Lx = self.array_F
            elif self.Lxaxis == "Pressure (mmHg)":
                Lx = self.array_P
            elif self.Lxaxis == "Time (s)":
                Lx = self.array_t

            if self.Lyaxis == "Displacement (mm)":
                Ly = self.array_d
            elif self.Lyaxis == "Force (N)":
                Ly = self.array_F
            elif self.Lyaxis == "Pressure (mmHg)":
                Ly = self.array_P
            elif self.Lyaxis == "Time (s)":
                Ly = self.array_t

            if self.Rxaxis == "Displacement (mm)":
                Rx = self.array_d
            elif self.Rxaxis == "Force (N)":
                Rx = self.array_F
            elif self.Rxaxis == "Pressure (mmHg)":
                Rx = self.array_P
            elif self.Rxaxis == "Time (s)":
                Rx = self.array_t

            if self.Ryaxis == "Displacement (mm)":
                Ry = self.array_d
            elif self.Ryaxis == "Force (N)":
                Ry = self.array_F
            elif self.Ryaxis == "Pressure (mmHg)":
                Ry = self.array_P
            elif self.Ryaxis == "Time (s)":
                Ry = self.array_t

            self.graphL.setData(Lx, Ly)  #Show on the graph

            self.graphR.setData(Rx, Ry)  #Show on the graph

            #####################
        # Result file update

        with open(self.path + '/' + self.file_save + '.txt',
                  'a') as mon_fichier:
            mon_fichier.write(
                str(round(time.time() - self.time_ini, 2)) + " , " +
                str(round(self.d - self.tare_disp, 3)) + " , " + str(self.F) +
                " , " + str(self.P) + " , " + str(self.vol) + "\n")