11. 対応方法(0.10.0に移行する場合)
Before
After
data = tag.read ([i],service_code)
# data は str型
print "" . join(['%02x ' % ord(s) for s in data])
sc = nfc.tag.tt3.ServiceCode(service_code >> 6 ,service_code & 0x3f)
bc = nfc.tag.tt3.BlockCode(i,service=0)
data = tag.read_without_encryption([sc],[bc])
# data は bytearray型
print "" . join(['%02x ' % s for s in data])
ポイント:
・従来のサービスコードから、上位10bit,下位6bitで分離してServiceCodeを生成する
・読出し用のメソッドは read_without_encryption
・結果は bytearray 型で返る
12. 対応方法(0.10.0に移行する場合)
Before After
import nfc
service code = 0x090f
num_blocks = 20
def connected(tag):
if isinstance(tag, nfc.tag.tt3.Type3Tag):
try:
for i in range(num_blocks):
sc = nfc.tag.tt3.ServiceCode(service_code >> 6 ,service_code & 0x1f)
bc = nfc.tag.tt3.BlockCode(i,service=0)
data = tag.read_without_encryption([sc],[bc])
# data は bytearray型
print "" . join(['%02x ' % s for s in data])
except Exception as e:
print "error: %s" % e
else:
print "error: tag isn't Type3Tag"
# 接続開始
clf = nfc.ContactlessFrontend('usb')
clf.connect(rdwr={'on-connect': connected})
import nfc
service code = 0x090f
num_blocks = 20
def connected(tag):
if isinstance(tag, nfc.tag.tt3.Type3Tag):
try:
for i in range(num_blocks):
data = tag.read ([i],service_code)
# data は str型
print "" . join(['%02x ' % ord(s) for s in data])
except Exception as e:
print "error: %s" % e
else:
print "error: tag isn't Type3Tag"
# 接続開始
clf = nfc.ContactlessFrontend('usb')
clf.connect(rdwr={'on-connect': connected})
Suicaのデータを垂れ流すだけのコード