Search code examples
pythonrfid

RFID reading using python via usb SyntaxError: invalid token


I have two rfid card the values are 0004518403 and 000452738 after reading their value in python terminal. I want to give them name like 0004518403 is "javed" and 000452738 as "aquib". So when next time when I use the card it must not show me the value but it must show me the name which I've defined to them.

import serial
import time
serial = serial.Serial('/dev/ttyUSB0', baudrate = 9600)
while True:
if serial.inWaiting() > 0:
    read_result =serial.read(15)
    print("Sleeping 2 seconds")

    if(read_result==0004520738):
        print "aquib"
    elif(read_result==0004518403):
        print "javed"

    time.sleep(2)
    serial.flushInput() # ignore errors, no data

I am trying this code but it show me an error :

SyntaxError: invalid token

In the first if condition. I am not getting where is the problem.


Solution

  • You should compare read results with strings, not numbers, like

    read_result=='0004520738'
    

    0004520738 without quotes is a number. As it starts with a 0 sign, it is interpreted as number of base 8. Numbers of base 8 cannot contain digits 8 and 9 apparently.

    >>> 01234567
    342391
    >>> 012345678
      File "<stdin>", line 1
        012345678
                ^
    SyntaxError: invalid token
    >>> 
    

    Also I don't get why you read 15 bytes, but compare results with 10 bytes string, that's smth wrong there