2012/06/30

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

目先を変えて、nfcpyをtargetにしてやってみよう。

 

$ python llcp-test-server.py --mode=target
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

libusb0-dll:err [_usb_reap_async] timeout error

・・・

activated as p2p target in 424 kbps passive mode
LLCP Link established, I'm the DEP Target
Local LLCP Settings
  LLCP Version: 1.1
  Link Timeout: 500 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000000011
Remote LLCP Settings
  LLCP Version: 1.0
  Link Timeout: 2000 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000010001
connectionless server bound to port 16
connectionless server recv queue size is 2
connectionmode server bound to port 17
connectionmode server recv window is 2
shutdown on link disruption
nfc.llcp.Error: [EPIPE] Broken pipe
remote side closed logical data link
close connless echo server socket
I was the Target

 

むむ、切断されてしまった。
自作側からCONNECTを送信したのだけど、CCが返ってこなかった。


デバッグログを付けて見てみよう。

$ python llcp-test-server.py --mode=target -d nfc.llcp
enable debug output for module 'nfc.llcp'
searching for a usable reader
searching for a usb bus reader
path match for 'usb' (or no path given)
trying usb:bus-0:\\.\libusb0-0002--0x054c-0x02e1
import nfc.dev.rcs956_usb
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

libusb0-dll:err [_usb_reap_async] timeout error

・・・

activated as p2p target in 424 kbps passive mode
llc cfg {'recv-lto': 2000, 'send-miu': 128, 'send-agf': True, 'send-lto': 500, 'send-lsc': 2, 'recv-miu': 128, 'send-wks': 17, 'rcvd-ver': (1, 0)}
LLCP Link established, I'm the DEP Target
Local LLCP Settings
  LLCP Version: 1.1
  Link Timeout: 500 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000000011
Remote LLCP Settings
  LLCP Version: 1.0
  Link Timeout: 2000 ms
  Max Inf Unit: 128 octet
  Service List: 0000000000010001
connectionless server bound to port 16
connectionless server recv queue size is 2
connectionmode server bound to port 17
connectionmode server recv window is 2
RECV  4 ->  4 CONN MIU=128 RW=1
discard PDU  4 ->  4 CONN MIU=128 RW=1
SEND  0 ->  0 SYMM
libusb0-dll:err [_usb_reap_async] timeout error

send_response: IOError no response from pn53x
shutdown on link disruption
closing service access point 17
shutdown socket DLC 17 <-> None LISTEN RW(R)=None V(S)=0 V(SA)=0 RW(L)=2 V(R)=0 V(RA)=0
DLC (None,None) LISTEN close()
nfc.llcp.Error: [EPIPE] Broken pipe
closing service access point 16
DLC (None,None) SHUTDOWN close()
shutdown socket LDL 16 -> None
closing service access point 1
remote side closed logical data link
close connless echo server socket
closing service access point 0
llc run thread terminated
shutdown requested
shutdown requested
I was the Target

 

4ってのは、CONNECTのPTYPEが0x04だからだろう。。。いや、DMを受信したときも4っていってるので違うのか。
でもCONNって書いてるから、わかってるはず。
で、なんで「discard」なんだ?
破棄したってことよねぇ。
まさかそんなこととは思ってない自作の方は、CCが返ってこないので困っているのだ。

 

nfcpyのllcpで「discard」とログを出すのは、_dispatch()だけだ。
SYMMか、AGFか、CONNECTだったらさばいて、そうじゃなかったら「discard」なのだ。

あ、CONNECTの条件に「dsap==1」ってのがあるな。
私はSNEP想定でDSAPを4にしてるのだ。

 

うーん、うーん・・・・

0 件のコメント:

コメントを投稿

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

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