ずっとLLCPの実装をしているが、私はVersion 1.0の実装をしてきた。
しかし、nfcpyが1.1だし、NFC Forumでも1.0はdeprecated(使われてない)になってる。
うーーーん、作ろうとしているものがdeprecatedな仕様に沿っていても、誰も嬉しくないよな。。。。。
あきらめて、1.1の実装をしようかと思う。
サービス検索関係の実装だけやれば、たぶんいいはず。
いいはずだけど、ちょっと精神的にダメージがあるねえ。
いや、待て。
Parameter ListでSN(Service Name)を渡す、という手があるんじゃないか?
・・・だめだった。
いやいや、まだ待て。
そもそも、SNEPでやりたいんなら、llcp-test-serverじゃなくて、snep-test-serverでやればいいんじゃないのか?
activated as p2p target in 424 kbps passive mode
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)}
LLCP Link established, I'm the DEP Target
Local LLCP Settings
LLCP Version: 1.1
Link Timeout: 1000 ms
Max Inf Unit: 1024 octet
Service List: 0000000000010011
Remote LLCP Settings
LLCP Version: 1.0
Link Timeout: 2000 ms
Max Inf Unit: 128 octet
Service List: 0000000000010001
snep server bound to port 4
snep server bound to port 16
RECV 1 -> 1 CONN MIU=128 RW=1 SN=urn:nfc:sn:snep
DLC (4,None) LISTEN enqueue CONNECT PDU
accepting CONNECT from SAP 1
DLC (4,None) LISTEN dequeue CC PDU
SEND 4 -> 1 CC MIU=128 RW=2
new data link connection (4 <=== 1)
serving snep client on remote sap 1
RECV 1 -> 1 I N(S)=0 N(R)=0 LEN=5 SDU=75656e6f00
enqueue
SEND 0 -> 0 SYMM
Exception in thread Thread-1:
・・・・
CCが返ってきた!
自作LLCPがI PDUでデータを送った!
しかし、SYMMを返したところでnfcpyが例外で落ちてしまった。
うーむ。
とりあえずわかったことは、
- nfcpyはSNEPをサポートするけど、SAP=4という形ではCONNECTできないみたい
- llcp-test-serverはSNEPが来るとNGだが、snep-test-serverはOK
- RRじゃなくてSYMMを返してくる
- なんか落ちた
だ。
あ、データ送信はSNEPでやったわけじゃないので、それで落ちたのかな。
まあ、もうちょっとだな。
でも、1.1への対応もやりたいですな。
もしかすると、snep-test-serverサンプルを使うと、SAP=4でもできるのでは?
と思ってやったが、うまくいかん。
うまくいかんのが、コマンド的にだめなのか、それ以外の要因なのかがわからない。
「それ以外」というのは、R/Wの位置関係だ。
うちでは、PaSoRi RC-S370とRC-S620/Sで動作させている。
nfcpyはPaSoRiで、自作LLCPはRC-S620/Sだ。
やっていてわかったのだが、両者の位置関係がかなり微妙で、通信をしていると切られてしまうのだ。
あとですな、snep-test-server実行して失敗で終わると、その次がR/Wのアプリケーションエラーになって動かせなくなるのだ。
たぶん、デバイスをリセットすれば直るんだろうけど、pn53xの上で動く前提になっているnfcpyでそれをやるのは難しそうだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。