Beispiel #1
0
    def calculate_orientation_of_fingers(self, print_finger_info):
        for finger in Finger:
            point_index_at = 0
            if finger == Finger.Thumb:
                point_index_at = 1
            angle_at = self.slopes_xy[finger][point_index_at]

            finger_points_at = Finger.get_array_of_points(finger)
            start_point_at = self.coords_xyz[finger_points_at[point_index_at]
                                             [0]]
            mid_point_at = self.coords_xyz[finger_points_at[point_index_at +
                                                            1][1]]
            end_point_at = self.coords_xyz[finger_points_at[3][1]]

            finger_curled = self.is_finger_curled(start_point_at, mid_point_at,
                                                  end_point_at)
            #print('Finger: {} = {}'.format(Finger.get_finger_name(finger), FingerCurled.get_finger_curled_name(finger_curled)))
            finger_position = self.calculate_direction_of_finger(
                start_point_at, mid_point_at, end_point_at,
                self.slopes_xy[finger][point_index_at:])
            #print('Finger: {} = {}'.format(Finger.get_finger_name(finger),
            #                              FingerPosition.get_finger_position_name(finger_position)))

            self.finger_curled[finger] = finger_curled
            self.finger_position[finger] = finger_position

        if print_finger_info:
            for finger_index, curl, pos in zip(Finger, self.finger_curled,
                                               self.finger_position):
                print('Finger: {}, Curl: {}, Orientation: {}'.format(
                    Finger.get_finger_name(finger_index),
                    FingerCurled.get_finger_curled_name(curl),
                    FingerPosition.get_finger_position_name(pos)))
Beispiel #2
0
    def on_click(self):

        # print("MainWindow")
        f = Finger()

        self.errors.clear

        if (str(f.match) != "-1"):

            self.errors.setText("Finger Found at:" + str(f.match()))
Beispiel #3
0
    def __init__(self):
        """
        Build all of Inmoov's parts.
        """

        #open the file json file
        with open(INMOOV_FILE) as json_file:
            json.load(json_file, object_hook=parse)

        self.head = Head(
            filter(lambda x: x.name == "head_x", servos)[0],
            filter(lambda x: x.name == "head_y", servos)[0])

        #Right side
        self.right_wrist = Wrist(
            filter(lambda x: x.name == "left_wrist", servos)[0])
        self.right_hand = Hand(
            Finger(filter(lambda x: x.name == "right_pinky", servos)[0]),
            Finger(filter(lambda x: x.name == "right_ring", servos)[0]),
            Finger(filter(lambda x: x.name == "right_mid", servos)[0]),
            Finger(filter(lambda x: x.name == "right_index", servos)[0]),
            Finger(filter(lambda x: x.name == "right_thumb", servos)[0]))
        self.right_forearm = Forearm(self.right_hand, self.right_wrist)
        self.right_shoulder = Shoulder(
            filter(lambda x: x.name == "right_shoulder_flexion", servos)[0],
            filter(lambda x: x.name == "right_shoulder_abduction", servos)[0],
            filter(lambda x: x.name == "right_shoulder_rotation_x", servos)[0],
            filter(lambda x: x.name == "right_shoulder_rotation_y", servos)[0])

        self.right_arm = Arm(self.right_forearm, self.right_shoulder)

        #Left side
        self.left_wrist = Wrist(
            filter(lambda x: x.name == "left_wrist", servos)[0])
        self.left_hand = Hand(
            Finger(filter(lambda x: x.name == "left_pinky", servos)[0]),
            Finger(filter(lambda x: x.name == "left_ring", servos)[0]),
            Finger(filter(lambda x: x.name == "left_middle", servos)[0]),
            Finger(filter(lambda x: x.name == "left_index", servos)[0]),
            Finger(filter(lambda x: x.name == "left_thumb", servos)[0]))
        self.left_forearm = Forearm(self.left_hand, self.left_wrist)
        self.left_shoulder = Shoulder(
            filter(lambda x: x.name == "left_shoulder_flexion", servos)[0],
            filter(lambda x: x.name == "left_shoulder_abduction", servos)[0],
            filter(lambda x: x.name == "left_shoulder_rotation_x", servos)[0],
            filter(lambda x: x.name == "left_shoulder_rotation_y", servos)[0])

        self.left_arm = Arm(self.left_forearm, self.left_shoulder)

        self.initialize()
Beispiel #4
0
    def delete(self):
        port = str(self.lineport.currentText())
        ttl = str(self.lineport.currentText())
        
        try :
            f=Finger(port,ttl,0,0,0,0)  
            if self.linefrom.text() != "" and self.lineto.text() != "" :
                fid=self.linefrom.text()
                n=self.lineto.text()
                f.delete(fid,n)
                self.txtmessage.setText(" Fingerprint(s) Successfully Deleted ")
            else :
                self.txtmessage.setText("fill in from and to sections to clear")

        except Exception as err:
                self.txtmessage.setText("Error Encountered \n"+str(err))
    def on_click(self):
        self.txtmessage.clear

        port = self.lineport.text()
        ttl = self.linebrate.text()

        if(port != "" and ttl != ""):
            try :
                f=Finger(port,ttl,self.linelocation.text() ,self.linepoid.text(),self.lineamount.text())  

                self.txtmessage.clear
                self.txtmessage.setText("Scan finger print")
                time.sleep(2)
                
                # print("MainWindow")
                
                
                

                
                if (str(f.match) != "-1"):
                  

                    self.txtmessage.setText("Finger value:"+str(f.match()))
                    # msg = QtWidgets.QMessageBox()
                    # msg.setIcon(QtWidgets.QMessageBox.Information)
                    # msg.setText("Success")
                    # msg.setInformativeText('Fingerprint verified')
                    # msg.setWindowTitle("Finger Found at:"+str(f.match()))
                    # msg.exec_()
            except Exception as err:
                self.txtmessage.setText("Error Encountered \n"+str(err))
        elif (self.linelocation.text() ==  ""):
            self.txtmessage.setText("Enter Location")
        elif (self.linepoid.text() ==  ""):
            self.txtmessage.setText("Enter Pos ID")
        elif (self.lineamount.text() ==  ""):
            self.txtmessage.setText("Enter Amount")

        else:
            self.txtmessage.setText("fill in com port and baud rate clear\n eg /dev/ttyUSB0 ")
Beispiel #6
0
    def calculate_slope_of_fingers(self):
        for finger in Finger:
            #print('Angle Finger is {}'.format(Finger.get_finger_name(finger)))
            points = Finger.get_array_of_points(finger)
            slope_at_xy, slope_at_yz = [], []
            for point in points:
                point1 = self.coords_xyz[point[0]]
                point2 = self.coords_xyz[point[1]]
                slope_xy, slope_yz = self.get_slope(point1, point2)
                slope_at_xy.append(slope_xy)
                slope_at_yz.append(slope_yz)

            self.slopes_xy.append(slope_at_xy)
            self.slopes_yz.append(slope_at_yz)
 def register(self):
     from PyQt5.QtCore import pyqtRemoveInputHook
     pyqtRemoveInputHook()
     f = Finger("/dev/ttyUSB0", 57600, 'harare', 'posid', 100)
     f.enroll()
Beispiel #8
0
    def on_click(self):
        self.txtmessage.clear

        port = str(self.lineport.currentText())
        ttl = str(self.linebrate.currentText())

        if(self.lineaccno.text() == "" or self.linelocation.text() == "" or self.lineamount.text() == "" or self.linepoid.text() == ""):
            msg = QtWidgets.QMessageBox()
            msg.setIcon(QtWidgets.QMessageBox.Information)
            msg.setText("Error")
            msg.setInformativeText('Fill in all Pos Information fields')
            msg.setWindowTitle("Error")
            msg.exec_()
        else :
            #before fingerprint is scanned authenticate details
            payload = {'username': self.lineaccno.text() ,'password':self.lineamount_2.text()}
            # r = requests.post("http://localhost/fingerprint/public/reports/pyapi", data=payload)
            r = requests.post("http://localhost/fingerprint/public/clients/loginapi", data=payload)
            result = r.json()
            if(result["save"]== 'true'):


                if(port != "" and ttl != ""):
                    # try :
                    f=Finger(port,ttl,self.linelocation.text() ,self.linepoid.text(),self.lineamount.text(),self.lineaccno.text())  

                    self.txtmessage.clear
                    self.txtmessage.setText("Scan finger print")
                    time.sleep(2)
                    
                    # print("MainWindow")
                    
                    
                    

                    
                    if (str(f.match) != "-1"):
                      

                        self.txtmessage.setText("Finger value:"+str(f.match()))
                        # msg = QtWidgets.QMessageBox()
                        # msg.setIcon(QtWidgets.QMessageBox.Information)
                        # msg.setText("Success")
                        # msg.setInformativeText('Fingerprint verified')
                        # msg.setWindowTitle("Finger Found at:"+str(f.match()))
                        # msg.exec_()
                    # except Exception as err:
                    #     self.txtmessage.setText("Error Encountered \n"+str(err))
                elif (self.linelocation.text() ==  ""):
                    self.txtmessage.setText("Enter Location")
                elif (self.linepoid.text() ==  ""):
                    self.txtmessage.setText("Enter Pos ID")
                elif (self.lineamount.text() ==  ""):
                    self.txtmessage.setText("Enter Amount")

                else:
                    self.txtmessage.setText("fill in com port and baud rate clear\n eg /dev/ttyUSB0 ")

            elif (result["save"]== 'false'):
                msg = QtWidgets.QMessageBox()
                msg.setIcon(QtWidgets.QMessageBox.Information)
                msg.setText("Error")
                msg.setInformativeText('Invalid pin or account number')
                msg.setWindowTitle("Login error")
                msg.exec_()
Beispiel #9
0
from Finger import Finger
f=Finger("/dev/ttyUSB0" ,57600 , 0,0 ,0)
f.enroll()
Beispiel #10
0
from Finger import Finger

f = Finger("/dev/ttyUSB0", 57600, 'harare', 'posid', 100)
f.enroll()