2012/06/30

[llcp]nfcpy v.s. 自作LLCP (2)

2回戦。
nfcpyサンプルのllcp-test-clientは、引数でテスト番号を指定して実施できるようだ。
やってみよう。

 

Usage: llcp-test-client.py [options]

Options:
  -h, --help       show this help message and exit
  -t N, --test=N   run test number <N>
  -q               be quiet, only print errors
  -d MODULE        print debug messages for MODULE
  -f LOGFILE       write log messages to LOGFILE
  --device=SPEC    use only device(s) according to SPEC:
                   usb[:vendor[:product]] (vendor and product in hex)
                   usb[:bus[:dev]] (bus and device number in decimal)
                   tty[:(usb|com)[:port]] (usb virtual or com port)
  --mode=MODE      restrict mode to 'target' or 'initiator'
  --cl-echo=SAP    connection-less echo server address
  --co-echo=SAP    connection-oriented echo server address
  --link-miu=MIU   set maximum information unit size to MIU
  --quirks=choice  quirks mode, choices are 'android'


$ python llcp-test-client.py -t1
searching for a usable reader
searching for a usb bus reader
chipset is a PN533 version 1.48
using Sony RC-S370/P at usb:bus-0:\\.\libusb0-0002--0x054c-0x02e1
libusb0-dll:err [_usb_reap_async] timeout error

activated a p2p target in 424 kbps active mode
LLCP Link established, I'm the DEP Initiator
Local LLCP Settings
  LLCP Version: 1.1
  Link Timeout: 500 ms
  Max Inf Unit: 1024 octet
  Service List: 0000000000000011
Remote LLCP Settings
  LLCP Version: 1.0
  Link Timeout: 2000 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000010001
Test 1: link activation, symmetry and deactivation
PASS
shutdown on local request
libusb0-dll:err [_usb_reap_async] timeout error

I was the Initiator

 

PASSっていってるから、OKなのかな?

自作側は、SYMMをしばらくやりとりしたあと、Link Deactivationで切断してる。


$ python llcp-test-client.py -t2
searching for a usable reader
searching for a usb bus reader
chipset is a PN533 version 1.48
using Sony RC-S370/P at usb:bus-0:\\.\libusb0-0002--0x054c-0x02e1
libusb0-dll:err [_usb_reap_async] timeout error

activated a p2p target in 424 kbps active mode
LLCP Link established, I'm the DEP Initiator
Local LLCP Settings
  LLCP Version: 1.1
  Link Timeout: 500 ms
  Max Inf Unit: 1024 octet
  Service List: 0000000000000011
Remote LLCP Settings
  LLCP Version: 1.0
  Link Timeout: 2000 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000010001
Test 2: connection-less information transfer
   socket recv buffer set to 10
libusb0-dll:err [_usb_reap_async] timeout error

shutdown on link disruption
FAIL: no connection-less echo server on peer device
I was the Initiator

Connectionlessのテストみたいだが、うちはClass 2のつもりなんだよ。

あ、GeneralBytesにOPT書いてないや。。。
書いてみたけど、あんまり関係なかった。


$ python llcp-test-client.py -t3
searching for a usable reader
searching for a usb bus reader
chipset is a PN533 version 1.48
using Sony RC-S370/P at usb:bus-0:\\.\libusb0-0002--0x054c-0x02e1
libusb0-dll:err [_usb_reap_async] timeout error

activated a p2p target in 424 kbps active mode
LLCP Link established, I'm the DEP Initiator
Local LLCP Settings
  LLCP Version: 1.1
  Link Timeout: 500 ms
  Max Inf Unit: 1024 octet
  Service List: 0000000000000011
Remote LLCP Settings
  LLCP Version: 1.0
  Link Timeout: 2000 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000010001
Test 3: connection-oriented information transfer
   socket recv window set 2
libusb0-dll:err [_usb_reap_async] timeout error

shutdown on link disruption
aborted by user
I was the Initiator

これは、自作側を途中で切断させた。
というのも、nfcpyが私の知らないPDUを送信したあと、ずっとSYMMをやりとりするだけになったからだ。

投げてきたPDUの番号は、0x09。
LLCP v1.0ではreservedなのだが、LLCP v1.1ではSNLになっている。
そう、Service Name Lookup、SDP関係のPDUだ。

いや、だからうちはv1.0だっていってるじゃないの!と思うけれども、どうしようもない。
そういえば、知らないPDUを受け取ったときはどうするんだろうね?

書いてあった。ignored by the receiverだと。
では、無視するようにしているから、まあ間違ってはいないのだな。

[D]06
[D]41
[D]08
[D]13
[D]fe
[D]75
[D]72
[D]6e
[D]3a
[D]6e
[D]66
[D]63
[D]3a
[D]73
[D]6e
[D]3a
[D]63
[D]6f
[D]2d
[D]65
[D]63
[D]68
[D]6f

urn:nfc.sn:co-echo

エコーするサービスってことなのかな。
検索すると、nfc-toolsに引っかかったので、そういうのがあるのかも。
NFC Forumのページにはなかった。

うーむ、この調子だとテストにならないなあ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。