2012/07/01

[snep]nfcpy v.s. 自作SNEP (PUT/Target)

勝負!

   1: $ python snep-test-server.py -d nfc.llcp --mode=initiator
   2: enable debug output for module 'nfc.llcp'
   3: searching for a usable reader
   4: searching for a usb bus reader
   5: path match for 'usb' (or no path given)
   6: trying usb:bus-0:\\.\libusb0-0001--0x054c-0x02e1
   7: import nfc.dev.rcs956_usb
   8: chipset is a PN533 version 1.48
   9: using Sony RC-S370/P at usb:bus-0:\\.\libusb0-0001--0x054c-0x02e1
  10: activated a p2p target in 424 kbps active mode
  11: llc cfg {'recv-lto': 2000, 'send-miu': 128, 'send-agf': True, 'send-lto': 1000, 'send-lsc': 2, 'recv-miu': 1024, 'send-wks': 17, 'rcvd-ver': (1, 0)}
  12: LLCP Link established, I'm the DEP Initiator
  13: Local LLCP Settings
  14:   LLCP Version: 1.1
  15:   Link Timeout: 1000 ms
  16:   Max Inf Unit: 1024 octet
  17:   Service List: 0000000000010011
  18: Remote LLCP Settings
  19:   LLCP Version: 1.0
  20:   Link Timeout: 2000 ms
  21:   Max Inf Unit: 128 octet
  22:   Service List: 0000000000010001
  23: snep server bound to port 4
  24: snep server bound to port 16
  25: SEND  0 ->  0 SYMM
  26: RECV  4 ->  1 CONN MIU=128 RW=1 SN=urn:nfc:sn:snep
  27: DLC (4,None) LISTEN enqueue CONNECT PDU
  28: accepting CONNECT from SAP 4
  29: DLC (4,None) LISTEN dequeue CC PDU
  30: SEND  4 ->  4 CC   MIU=128 RW=2
  31: new data link connection (4 <=== 4)
  32: serving snep client on remote sap 4
  33: RECV  4 ->  4 I    N(S)=0 N(R)=0 LEN=21 SDU=10020000000fd101085402656e6869726f39396d61
  34: DLC (4,4) ESTABLISHED enqueue I PDU
  35: default snep server got put request
  36: ndef message length is 15 octets
  37: type is 'urn:nfc:wkt:T', id is ''
  38: DLC (4,4) ESTABLISHED voluntary ack DLC  4 <->  4 ESTABLISHED RW(R)=1 V(S)=0 V(SA)=0 RW(L)=2 V(R)=1 V(RA)=0
  39: DLC (4,4) ESTABLISHED send() DLC  4 <->  4 ESTABLISHED RW(R)=1 V(S)=0 V(SA)=0 RW(L)=2 V(R)=1 V(RA)=1
  40: SEND  4 ->  4 RR   N(R)=1
  41: RECV  4 ->  4 RR   N(R)=0
  42: DLC (4,4) ESTABLISHED enqueue RR PDU
  43: DLC (4,4) ESTABLISHED dequeue I PDU
  44: SEND  4 ->  4 I    N(S)=0 N(R)=1 LEN=6 SDU=108100000000
  45: RECV  4 ->  4 DISC
  46: DLC (4,4) ESTABLISHED enqueue DISC PDU
  47: DLC (4,4) CLOSE_WAIT dequeue DM PDU
  48: DLC (4,4) CLOSE_WAIT close()
  49: SEND  4 ->  4 DM   REASON=0
  50: DLC (4,4) SHUTDOWN close()
  51: in exchange => IOError [Errno 10] rf field not activated in time by active mode peer
  52: shutdown on link disruption
  53: closing service access point 16
  54: shutdown socket DLC 16 <-> None LISTEN RW(R)=None V(S)=0 V(SA)=0 RW(L)=2 V(R)=0 V(RA)=0
  55: DLC (None,None) LISTEN close()
  56: closing service access point 4
  57: nfc.llcp.Error: [EPIPE] Broken pipe
  58: shutdown socket DLC  4 <-> None LISTEN RW(R)=None V(S)=0 V(SA)=0 RW(L)=2 V(R)=0 V(RA)=0
  59: DLC (None,None) SHUTDOWN close()
  60: DLC (None,None) LISTEN close()
  61: closing service access point 1
  62: nfc.llcp.Error: [EPIPE] Broken pipe
  63: closing service access point 0
  64: DLC (None,None) SHUTDOWN close()
  65: llc run thread terminated
  66: shutdown requested
  67: I was the Initiator

というわけで、受け取ってくれたようだ。
よかったよかった。

 

こちらから送ったのは、L.33のSDU。
「hiro99ma」という文字列だ。

L.40でnfcpyがRRを送っているので、こっちもL.41でRRを送っている。
じゃあもう送りたいデータはないんだね、とL.44でnfcpyがSNEP応答を送っている。0x81はSUCCESS。
私たちもう終わりね、とL.45でDISCを送っている。
終わりましょう、とnfcpyがL.49でDMを送って、おしまい。

nstだと、SNEP応答で0x81をもらったあとも、1回だけRRを投げて確認するようになっているみたいだ。
SNEPの仕様としては、LLCPの動作にまで言及はしていないので、これはこれでいいのかもしれん。

 

Initiatorとしての動作確認や、GETなどが残っているけど、一段落ですわ。

0 件のコメント:

コメントを投稿

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