return s[4] ,IndexError: list index out of range, python raspberry pi

-2

I was trying to create an attendance system that uses raspberry pi, that contains an rfid and a fingerprint scanner R305, my rfid codes works well with my database but when I tried to insert the fingerscanner code coming from this site https://fingerprint-module-r305-python-and-mysql.readthedocs.io/en/latest/chapter03.html#upload-to-database at first the code works well but the second time I tap the rfid card this error code shows up..

enter image description here

I'm also sorry if my post is messy and thank you in advance please help me.

'    pack = [0xef01, 0xffffffff, 0x1]        # Header, Address and Package Identifier

    def readPacket():       # Function to read the Acknowledge packet
            time.sleep(1)
            w = ser.inWaiting()
            ret = []
            if w >= 9:
                    s = ser.read(9)         # Partial read to get length
                    ret.extend(struct.unpack('!HIBH', s))
                    ln = ret[-1]

                    time.sleep(1)
                    w = ser.inWaiting()
                    if w >= ln:
                            s = ser.read(ln)
                            form = '!' + 'B' * (ln - 2) + 'H'       # Specifying byte size
                            ret.extend(struct.unpack(form, s))
            return ret

    def readPacket1():      # Function to read the Acknowledge packet
            time.sleep(1)
            w = ser.inWaiting()
            ret = []
            form = 'B' * 700
            s = ser.read(700)
            t=binascii.hexlify(s)   # convert to hex
            u=t[24:]
            cur.execute("insert into fingertb(name,finger) values('%s','%s')" %(name,u) )     # upadate database
            cnx.commit()
            v=binascii.unhexlify(u)
            form1='B'*688
            ret1=[]
            ret1.extend(struct.unpack(form1, v))
            ret.extend(struct.unpack(form, s))

    def writePacket(data):          # Function to write the Command Packet
            pack2 = pack + [(len(data) + 2)]
            a = sum(pack2[-2:] + data)
            pack_str = '!HIBH' + 'B' * len(data) + 'H'
            l = pack2 + data + [a]
            s = struct.pack(pack_str, *l)
            ser.write(s)


    def verifyFinger():     # Verify Module?s handshaking password
            data = [0x13, 0x0, 0, 0, 0]
            writePacket(data)
            s = readPacket()
            return s[4]

    def genImg():   # Detecting finger and store the detected finger image in ImageBuffer
            data = [0x1]
            writePacket(data)
            s = readPacket()
            return s[4]

    def img2Tz(buf):        # Generate character file from the original finger image in ImageBuffer and store the file in CharBuffer1 or CharBuffer2.
            data = [0x2, buf]
            writePacket(data)
            s = readPacket()
            return s[4]

    def regModel():         # Combine information of character files from CharBuffer1 and CharBuffer2 and generate a template which is stroed back in both CharBuffer1 and CharBuffer2.
            data = [0x5]
            writePacket(data)
            s = readPacket()
            return s[4]

    def UpChar(buf):        # Upload the character file or template of CharBuffer1/CharBuffer2 to upper computer
            data = [0x8,buf]
            writePacket(data)
            s = readPacket1()`
python-3.x
raspberry-pi3
fingerprint
asked on Stack Overflow Feb 18, 2019 by ken_17 • edited Feb 19, 2019 by ken_17

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0