This product was developed for a technology company dealing in security systems hardware. They developed RFID readers and cards in-house and needed help to develop SDK to .Net platform as well as software for tracking assets through RFID cards.
The RFID readers connect to server over LAN (TCP/IP) and sent data received from cards. The devices gathered data and sent to server when requested or automatically as per configuration. Readers can be configured to set their internal polling frequency, the frequency at which it will send data to server and whether it will send data automatically or when requested as well as to set signal strength. They also had options to check memory status, to reset the device, turn it off, sleep/standby mode and get/set ID
The project started with these objectives:
Though the objectives were pretty straight forward, the project had many challenges
Before development began, all communication between reader and SDK/server were clarified and charted out and necessary RFID readers and cards received from customer.
Initial development was done to create a simple win forms application to communicate with readers, receive data and send control commands through socket programming of which .Net framework provides excellent support.
SDK for the readers was designed using abstract factory patter to provide easy reuse of code and bring uniformity thereby making it more maintainable. The SDK provided all necessary functions needed to communicate with readers and provided necessary callbacks, delegates and events.
Development of the asset tracking software was done staggered to SDK so the latter can be tested thoroughly through the software.
A very high level of multithreading was used to process received data quickly. A total of 4 threads were created for each reader with each thread performing some specific operations and data.
The system was built on these technologies: