[Project] An extensible (plugin based) windows service that performs actions for NFC events
-
I found a memory leak in the service (in the sense that I noticed it was consuming 18gb of ram after 8 days. Hopefully that is now fixed but I'll have to keep an eye on it for a while to make sure.
Maz -
@maz_net_au Good spot!
-
It doesn't leak on the polling for NFC data (I need to remember to upload that code too) but it still uses about 300k - 500k for each lock / unlock cycle. On the upside, that is probably in the C# side of things so should be much easier to find.
Next time I get a chance, I'll look at linking the service and the credential provider (I have to extend the plugin framework to add events for PluginAdded, RegisterRing (to a particular plugin), DeregisterRing. I'm hoping to (or that someone else does) make a plugin that uses the data section of the ring to perform various tasks, almost like encoding a set of preferences into a tiny data structure.
As I get closer to moving overseas, I might actually have a few days to work on my own projects (once I've packed up my house and cancelled internet and stuff I'm limited as to how much work I can do before I fly out). Maybe I'll get to those features then if no one else has.
I've also looked at making an installer package and it shouldn't be too hard when it only has to support windows. 7, 8, 8.1 and 10 should be achievable (Vista may or may not work but in theory I've not used any features introduced since then) but I'll need help testing.
-
Code updated at that same link (fixing the memory leak which was in the WinAPIWrapper.dll). It's now 5mb and includes my WinAPIWrapper c++ project that I'm using to talk to the nfc reader.
Anyone who has installed the service, I'd at least recommend that you copy the latest x64 release WinAPIWrapper.dll into your service directory. -
In the interest of supporting more devices. Could people post what USB NFC readers they have? I'm using an ACS ACR122U and i've been told about the HID-OMNIKEY 6321 having issues. If people can tell me what devices they're using then I can buy them to test with. Thanks
Maz -
Maybe try to add ACR1252U, ACR122T, SCM SCL3711 devices to the compatibility list
-
The problem w/ the 6321 is that it shows up as two smart card readers. You could replicate this problem by having 2x ACR122Us plugged in :)
-
I am temporarily unable to buy any hardware due to relocating across the world in a week and a bit. My plan is to order all of the readers listed once i get there. Until then, my involvement in this project is basically on hold although I'll do bug fixes for anything I can replicate with my current hardware.
Maz -
Just after I wrote that I went back through the code and found what might be causing the 6321 and multiple reader failure. So... expect an update tomorrow (about 12 hours from now).
Maz -
Awesome! I'm using the software now and it's working a treat w/ ACR122
-
Also working well w/OMNIKEY 5021 CL (Win10 x64)
-
I'm really excited about this software. I cannot wait until there is an installer for it. Also how is the kick starter going ? is that still happening ? @johnyma22 since it seems so close already have you considered to just sell it in the NFC ring store any bypass the kick starter ? This may save time in getting it to all the punters.
-
@jasok2
I dont think the kickstarter is going to delay it at all. You can already get the latest version now. The kickstarter is just going to add polish (RE: installers and crap) because it seems unlikely that I'll get around to that any time soon. I like the idea of using a kickstarter to add some professionalism to open source projects. So many of them could be really useful if an installer was made and a nice UI designed and used. -
Yea @jasok2 KS to us has never been about sales, it's about community, validation and exposure. You can get using this right now (it works) with some hardware / environments but we need funds to make it work with other environments and to make it accessible.
Me and @lokki are still working hard to get the campaign launched but I'm at MWC over the coming days and that is consuming my time! :)
-
Package updated.
http://maz.net.au/#/Journal/e1455064153
"Update 4: Attempted to support having multiple readers plugged in simultaneously. I only have one reader so I can't test if its fixed but it still works with a single reader."I need other people to test.
I've also added some very basic upgrade instructions. Let me know if it works any better (or worse).
Thanks
Maz -
*EDIT - belay that, it works perfectly. Even with all the readers plugged in. I just can't follow simple upgrade instructions and have lost my compute priveleges for the day.
-
Any idea why the service would be stopping after 5 minutes on lockscreen, dude?
-
The service is supposed to go into a suspend state as soon as it gets a "OnSessionChange" message from the OS. The whole time it's locked, the service should be essentially not doing anything, but still set as "Running".
In the "NFCRingServiceHost.exe.config" file is an isDebug setting near the bottom of the file. Set that to "True" and then lock the pc for 5 mins. Attach the log.txt file here if the service stopped. At the moment it just logs what events it got and startup / shutdown signals so theres no private data in it (human readable if you want to check it out). That'll be able to tell me what is going on.
Thanks
Maz -
@Lokki
Also, I just left mine locked for about 3 hours while i was out and it was still running when I came back. So we'll have to troubleshoot for cause (i cant immediately replicate it). -
I saw it happen this time - I don't use a screen saver or anything but the screen blinked black. Then no login.
16-02-17 17:49:05 Core starting
16-02-17 17:49:05 Core started
16-02-17 17:49:05 NFC Reading started
16-02-17 17:49:05 Plugins loading
16-02-17 17:49:05 Plugins loaded
16-02-17 17:49:05 Service started
16-02-17 17:49:10 Session state changed: SessionLock
16-02-17 17:49:10 Core stopping
16-02-17 17:49:10 NFC Reading stopped
16-02-17 17:49:10 Core stopped
16-02-17 17:49:10 Workstation Locked
16-02-17 17:54:51 Session state changed: SessionUnlock
16-02-17 17:54:51 Workstation unlocking or logging on
16-02-17 17:54:53 Core starting
16-02-17 17:54:53 Core started