Back to Projects | Next sample

Software for access control


The Objective was to implement the access control system as one of the core parts of the security system in the Archive of Macedonia. The security issue is the top priority in the Archive of Macedonia, because of the seriousness of its mission. It is a national archive that holds and protects millions of documents of highest importance for the national history including a number of documents rated as top secret. The access to various types of documents is restricted by clearance levels, and the building is divided into zones with access rights that correspond to these levels. The software that is presented here briefly describes the solution for the above described system. The system is based on the proprietary hardware solution from Zo&Co.

Brief description of the software solution

The access control on a hardware level is implemented by a combination of proximity card sensors and specially designed microcontrollers connected in a network (visit Zo&Co for more information regarding the hardware). The system enables the security administrators to define gates, access zones, user and user groups, access restrictions for each gate or zone, etc. Each gate can be controlled separately by a microcontroller which is configurable and can be networked with other microcontrollers. The opening and closing of the gate is performed by the microcontrollers strictly according to the logic embedded by the administrator.

The software communicates with the microcontrollers through the serial port. Via the user interface, the user can configure the access zones, the access rights, add or remove users or user groups from the system, etc... The software then communicates with the hardware on a low level and issues commands that correspond to the user actions through the interface. There is an infinite loop running and an event is triggered after each passed time interval, which is configurable and can be set down to a milliseconds range. This event is represented by a code that queries the status of all the microcontroller devices in the network or sends appropriate commands to them. The command system is very complex and is encapsulated in the object model of the software.

The data collected from the devices are recorded in one InterBase database server. If anything happens and the database server goes down, a back plan is activated and the data are recorded in local Paradox tables. The next time the server is up again, the data are automatically transferred to the central database. And additionally, the information about the events is temporarily preserved in the microcontroller's temporary memory as well, which ensures that no data will be missed.

Of course, detailed reports are available to the administrator, including: various general reports for the system; detailes for each user, user group or zone; overview of the record history, etc..

Above you can see a snapshot of the simplified model for the device object. Click here to see a code sample and get the feeling about the programming style (note: comments are stripped from the code).

Back to Projects | Next sample