Getting started with Open NFC emulator

混江龙づ霸主 提交于 2019-11-27 00:44:59

@nikhil: Thanks for the link to TCP Echo Server. I got my OpenNFC stack to work after running the echo server. So that other users can benefit from this exercise, here's a summary of what to do to set up the OpenNFC stack with the NFC controller (NFCC) simulator.

--The stack (with NFCC simulator) is supported on Windows host only, since both the Connection Center and the NFCC simulator are Windows apps.

--Need to download all 3 packages:

  1. OpenNFC Android SDK addon
  2. OpenNFC core Edition, which has the Connection Center and the NFCC simulator apps.
  3. The echo server: EchoTool

--Install the SDK addon, and create an AVD using the SDK Addon.

--start Connection Center (run "Connection Center.exe") and config it to accept client connections from other machines.

--start NFCC simulator (run "NfcSimulator.exe").

--start echo server (on port 7), using the cmd: echotool /p tcp /s 7

--start Android emulator using the AVD just created.

--from the emulator, select Settings->Wireless & networks->NFC settings

--enter 10.0.2.2 in IP Connection Center

--select Simulator for NFC HAL implementation

--now click the NFC toggle (check box) to start the NFC stack!

I've experienced similar issues. Turns out that the Connection Center mentioned in the doc is a Windows app. This is from the developer at Inside: "The Connection Center is a tool released in binary form for Windows. You can find it, as well as the NFC simulator, in the Core Edition of Open NFC". I have my build environment (Eclipse) running on a Ubuntu host. So I am out of luck with this one. Are you also on a Linux host?

The Connection Center needs to be running for the NFC controller simulator to work, as indicated in the doc: "Prior launching the AVD, the Connection center must be launched and configured to accept client connections from other machines".

Anyways, after firing off logcat and it is clear from the debug messages that the Simulator cannot connect to the connection center. The following logcat output are collected after the NFC toggle button is clicked:

root@android:/ # logcat
D/NfcEnabler(  170): Setting NFC enabled state to: true
D/OpenNFCService(  273): Enabling NFC.  previous =false
D/OpenNFCService(  273): mIsNfcEnabled NFC =false
D/OpenNFCService(  273): _enable =true
D/OpenNFCService(  273): IOpenNFCService:setNFCEnabled(true)
D/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart
D/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart : Simulator has been selected
D/Microread(  273): static_nfcc_device_open
D/Microread(  273): static_nfcc_device_get_binding
E/SIMULATOR(  273): 00071 ERROR HAL   : GetNALBinding
E/CCCLIENT(  273): static_CCClientCreateSocket / connect() failed 111 
E/SIMULATOR(  273): 00072 WARN  HAL   : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00073 WARN  HAL   : CANNOT CONNECT TO THE CONNECTION CENTER.
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00074 WARN  HAL   : SYMPTOM: Impossible to connect to the Connection Center
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00075 WARN  HAL   : DIAGNOSTIC: Connection Center not started, firewall, ...
E/SIMULATOR(  273):            Check Connection Center and your network configuration.
E/SIMULATOR(  273): 
D/SIMULATOR(  273): 00076 TRACE HAL   : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
D/SIMULATOR(  273): 
E/SIMULATOR(  273): 00077 ERROR SIM   : static_NALBindingCreateFunction: Cannot create the com port
E/OPENNFC_SERVER(  273): 00031 ERROR NFC_HAL PNALServiceCreate: Error returned by the initialization of the NFC HAL
E/OPENNFC_SERVER(  273): 00032 ERROR EVENT : static_PContextCreate: Cannot create the NFC HAL Service
E/OPENNFC_SERVER(  273): 00033 ERROR STARTUP  BootNFCC : PDriverCreate() failed
E/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart: StartNFCC failed
E/OpenNFCService(  273): OpenNFCServerStart failed
D/OpenNFCService(  273): updateNfcOnSetting: false
D/OpenNFCService(  273): NFC success of _enabletrue) is false
D/OpenNFCService(  273): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler(  170): Error setting NFC enabled state to true

The developer said that for this to work on a Linux host "you might have to set up a TCP echo server in parallel to the Connection Center on the machine to answer on port 7". I am not sure how it is done and what is required.

I suggest that you try the same set up on a Windows host, which is what I am going to do.

with the new versions of NFC Core, SDK, Connection Center, NFC Emulator and new image of Android Add-on is possible. I have tested and it works... Just chek out the page of the Open NFC Project and download the new versions of these things.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!