11import time
22import signal
33
4- import spi as SPI
4+ import spidev
55import RPi .GPIO as GPIO
66
77
8- __version__ = "1.1 .0"
8+ __version__ = "2.0 .0"
99
1010
1111class RFID (object ):
@@ -41,11 +41,14 @@ class RFID(object):
4141
4242 authed = False
4343
44- def __init__ (self , dev = '/dev/spidev0.0' , speed = 1000000 , pin_rst = 22 , pin_ce = 0 ):
44+ def __init__ (self , bus = 0 , device = 0 , speed = 1000000 , pin_rst = 22 , pin_ce = 0 ):
4545 self .pin_rst = pin_rst
4646 self .pin_ce = pin_ce
4747
48- SPI .openSPI (device = dev , speed = speed )
48+ self .spi = spidev .SpiDev ()
49+ self .spi .open (bus , device )
50+ self .spi .max_speed_hz = speed
51+
4952 GPIO .setmode (GPIO .BOARD )
5053 GPIO .setup (pin_rst , GPIO .OUT )
5154 GPIO .output (pin_rst , 1 )
@@ -64,16 +67,16 @@ def __init__(self, dev='/dev/spidev0.0', speed=1000000, pin_rst=22, pin_ce=0):
6467 def spi_transfer (self , data ):
6568 if self .pin_ce != 0 :
6669 GPIO .output (self .pin_ce , 0 )
67- r = SPI . transfer (data )
70+ r = self . spi . xfer2 (data )
6871 if self .pin_ce != 0 :
6972 GPIO .output (self .pin_ce , 1 )
7073 return r
7174
7275 def dev_write (self , address , value ):
73- self .spi_transfer ((( address << 1 ) & 0x7E , value ) )
76+ self .spi_transfer ([( address << 1 ) & 0x7E , value ] )
7477
7578 def dev_read (self , address ):
76- return self .spi_transfer (((( address << 1 ) & 0x7E ) | 0x80 , 0 ) )[1 ]
79+ return self .spi_transfer ([(( address << 1 ) & 0x7E ) | 0x80 , 0 ] )[1 ]
7780
7881 def set_bitmask (self , address , mask ):
7982 current = self .dev_read (address )
0 commit comments