Page 579 - 3-2
P. 579

if command == self.PCD_TRANSCEIVE:
                  self.SetBitMask(self.BitFramingReg, 0x80)


                i = 2000
                while True:
                  n = self.Read_MFRC522(self.CommIrqReg)
                  i = i - 1
                  if ~((i!=0) and ~(n&0x01) and ~(n&waitIRq)):
                    break


                self.ClearBitMask(self.BitFramingReg, 0x80)


                if i != 0:
                  if (self.Read_MFRC522(self.ErrorReg) & 0x1B)==0x00:
                    status = self.MI_OK
                    if n & irqEn & 0x01:
                      status = self.MI_NOTAGERR


                    if command == self.PCD_TRANSCEIVE:
                      n = self.Read_MFRC522(self.FIFOLevelReg)
                      lastBits = self.Read_MFRC522(self.ControlReg) & 0x07
                      if lastBits != 0:
                        backLen = (n-1)*8 + lastBits
                      else:
                        backLen = n*8


                      if n == 0:
                        n = 1
                      if n > self.MAX_LEN:
                        n = self.MAX_LEN


                      i = 0
                      while i<n:
                        backData.append(self.Read_MFRC522(self.FIFODataReg))
                        i = i + 1;
                  else:
                    status = self.MI_ERR
                return (status,backData,backLen)




              def MFRC522_Request(self, reqMode):
                status = None
                backBits = None
                TagType = []


                                                         - 579 -
   574   575   576   577   578   579   580   581   582   583   584