Inheritance diagram for IProximityReader:
This interface can be used to access all other reader specific interfaces and to logon to the reader.
Almost all actions require that the application is logged-on to the reader (using Logon).
The normal sequence of operations is:
Most methods send commands to the reader. These commands are send to the reader over the COM port. They can be send Asynchronously or Synchronously. Since communication is relatively fast, all normal messages are send synchronous by default. Long operations such as the searchin of events, the adding of user(s), erasing of the flash area's during uploading etc. are always performed asynchronously.
The functionality of the reader (IProximityReader) is divided in several logical groups. These groups are:
This reader object also contains advanced search facilities to search both the user database and event database at once for certain user's and/or events.
An advanced CopyFrom method allows all users and parameters to be copied from one reader to another.
A time scheme is a feature that allows a user to customize the entry times of different user groups to be customized on a weekly basis. Fully customizable times are possible. It is for instance possible to allow a group of users access every monday morning and evening, tuesday between 9:00 and 16:15 etc. When time schemes are supported by the firmware (firmware version 1.64 or higher), the TimeSchemes property can be used to retrieve all time schemes of this reader. It is further possible to create new time schemes, remove existing time schemes, or to search for a specific time scheme.
Public Member Functions | |
HRESULT | Network ([out, retval] IReaderNetwork **ppintfNetwork) |
Returns the reader-network where this reader is connected to. | |
HRESULT | Name ([out, retval] BSTR *pbstrName) |
Returns the name of this reader. | |
HRESULT | Name ([in] BSTR bstrName) |
Set the new reader name of this reader. | |
HRESULT | SerialNumber ([out, retval] long *plSerialNumber) |
Returns the serial number of the current connected reader. | |
HRESULT | Time ([out, retval] DATE *pDate) |
Returns the time of the real time clock in this reader. | |
HRESULT | Time ([in] DATE Date) |
Sets the real time clock in the reader. | |
HRESULT | NetworkAddress ([out, retval] short *psNetworkAddress) |
Return the network address of this reader. | |
HRESULT | ChangeNetworkAddress ([in] short NewNetworkAddress,[in, defaultvalue(-1)] VARIANT_BOOL ResetNow,[in, defaultvalue(0)] VARIANT_BOOL ChangeAsync) |
Change the network address of this reader. | |
HRESULT | Logon ([in] ELogonLevel LogonLevel,[in] long PinCode,[in, defaultvalue(1)] VARIANT_BOOL AutoAuthorize,[out, retval] VARIANT_BOOL *pfSucceeded) |
Logon a user with the given pincode and level to the reader. | |
HRESULT | ReLogon () |
Re-logon to the reader. | |
HRESULT | Logoff () |
Logoff from this reader. | |
HRESULT | IsLoggedOn ([out, retval] VARIANT_BOOL *pfLoggedOn) |
Checks if this reader is currently logged on. | |
HRESULT | AutoAuthorize ([out, retval] VARIANT_BOOL *pfStatus) |
Returns the current setting of the AutoAuthorized option. | |
HRESULT | LogonLevel ([out, retval] ELogonLevel *peLogonLevel) |
Returns the current logon level. | |
HRESULT | Reset ([in, defaultvalue(0)] VARIANT_BOOL ResetAsync,[in, defaultvalue(0)] VARIANT_BOOL ActivateBootloader,[in, defaultvalue(0)] VARIANT_BOOL DoNotPoll,[out, retval] VARIANT_BOOL *pfSucceeded) |
Reset the reader. | |
HRESULT | IsResetting ([out, retval] ECollectingStatus *peStatus) |
Returns the status of the current resetting process. | |
HRESULT | InterruptBooting ([out, retval] VARIANT_BOOL *pfSucceeded) |
Interrupt the booting process of this reader. | |
HRESULT | SoftwareMode ([out, retval] ESoftwareMode *peMode) |
Reports the current software mode of the reader. | |
HRESULT | ParameterDatabase ([out, retval] IParameterDatabase **ppintfParameterDatabase) |
Returns the object that can be used to set and get parameters, the parameter database. | |
HRESULT | UserDatabase ([out, retval] IUserDatabase **ppintfUserDatabase) |
Returns the object that supports user manipulation and user access methods. | |
HRESULT | EventDatabase ([out, retval] IEventDatabase **ppintfEventDatabase) |
Returns the object that supports event manipulation and event retrieval methods. | |
HRESULT | MemoryAccess ([out, retval] IMemoryAccess **ppintfMemoryAccess) |
Returns object that can be used to set and get data directly from the reader's memory. | |
HRESULT | AccessControl ([out, retval] IAccessControl **ppintfAccessControlOptions) |
Returns the object that can be used to set and get access control parameters. | |
HRESULT | HardwareControl ([out, retval] IHardwareControl **ppintfHardwareControl) |
Returns the object that can be used to set and get hardware related settings. | |
HRESULT | GetVersion ([in] EVersionType VersionType,[out, retval] short *psVersion) |
Can be used to request different version numbers of the reader. | |
HRESULT | ExtensionBoardType ([out, retval] EExtensionBoardType *peBoardType) |
Returns the type of the current extension board (if present). | |
HRESULT | EnableRFID ([out, retval] VARIANT_BOOL *pfEnabled) |
Returns the current status of the RFID interface (enabled or disabled). | |
HRESULT | EnableRFID ([in] VARIANT_BOOL Enabled) |
Enable or disable the RFID interface of this reader. | |
HRESULT | SoftwareConfiguration ([out, retval] ESoftwareConfiguration *peConfiguration) |
Returns the current embedded software configuration. | |
HRESULT | UpgradeSoftwareConfiguration ([in] ESoftwareConfiguration eConfiguration,[in] long lUpgradeKey) |
Upgrade the reader's embedded software configuration. | |
HRESULT | SetFileSystem ([in] short sFileSystem,[in, defaultvalue(0)] VARIANT_BOOL fSetAsync,[in, defaultvalue(0)] VARIANT_BOOL fRestoreUsersAndParameters) |
Set a new file system in this reader. | |
HRESULT | GetProperty ([in] BSTR bstrPropertyName,[out, retval] VARIANT *pvtPropertyValue) |
Returns a property of this reader object. | |
HRESULT | SetTurboMode ([in] EBaudrate NewBaudrate) |
Temporarily increase the baudrate of this reader. | |
HRESULT | CopyFrom ([in] IProximityReader *pintfSourceReader,[in] ECopyFlags eFlags,[in, defaultvalue(-1)] VARIANT_BOOL fCopyAsync,[out, retval] VARIANT_BOOL *pfSucceeded) |
Copy all settings from another reader to this reader. | |
HRESULT | Search ([in] ESearchFlags Flags,[in] VARIANT User,[in, defaultvalue(0)] VARIANT Range,[in, defaultvalue(0)] VARIANT StartDate,[in, defaultvalue(0)] VARIANT EndDate,[out, retval] VARIANT_BOOL *pfSucceeded) |
Perform a search operation on this reader. | |
HRESULT | CancelSearch () |
Cancel a search process that is currently in progress (only when searching asynchronous). | |
HRESULT | SearchResults ([out, retval] ICollection **ppintfResults) |
Returns the collection of all search results. | |
HRESULT | SearchStatus ([out, retval] ESearchStatus *peStatus) |
Returns the status of the search process. | |
HRESULT | ClearSearchResults ([out, retval] VARIANT_BOOL *pfSucceeded) |
Clears the last search results for this reader. | |
HRESULT | GetSerialNumber ([in, defaultvalue(0)] VARIANT_BOOL fRefresh,[out, retval] long *plSerialNumber) |
Returns the serial number of the current connected reader. | |
HRESULT | Locate ([out, retval] VARIANT_BOOL *pfEnabled) |
Returns true if the reader is in locate mode. | |
HRESULT | Locate ([in] VARIANT_BOOL fEnable) |
Turns the locate mode on or off. | |
HRESULT | Holidays ([out, retval] ICollection **ppintfHolidays) |
Returns a collection of all defined holidays. | |
HRESULT | RemoveHolidays () |
Removes all holidays from this reader. | |
HRESULT | AddHolidays ([in] ICollection *pintfHolidays) |
Add a collection of holidays to this reader. | |
HRESULT | TimeSchemes ([out, retval] ICollection **ppintfTimeSchemes) |
Returns a collection of all defined time schemes of this reader. | |
HRESULT | CreateTimeScheme ([out, retval] ITimeScheme **ppintfTimeScheme) |
Create a new time scheme object. | |
HRESULT | RemoveTimeScheme ([in] ITimeScheme *pintfTimeScheme) |
Remove a time scheme. | |
HRESULT | FindTimeScheme ([in] long lTimeSchemeID,[out, retval] ITimeScheme **ppintfTimeScheme) |
Return a particular time scheme. |
|
Returns the reader-network where this reader is connected to.
|
|
Returns the name of this reader.
|
|
Set the new reader name of this reader.
|
|
Returns the serial number of the current connected reader. The serial number of a reader is always unique. So this is a good property to identify readers (better then Name which can be changed by the user).
|
|
Returns the time of the real time clock in this reader. Note that the internal clock of the reader is reset to the time of the last entry in the event-log of the reader (if it has one, else to 1-1-2000, 00:00) every time it is reset!
|
|
Sets the real time clock in the reader. Note that the internal clock of the reader is reset to the time of the last entry in the event-log of the reader (if it has one, else to 1-1-2000, 00:00) every time it is reset!
|
|
Return the network address of this reader.
|
|
Change the network address of this reader. The address will only be set after the next reset of the reader. So to activate the changed network address, reset the reader (using the Reset method) or use the fResetNow argument. This method can be executed asynchronously by setting the fChangeAsync flag to true. This method will generate all default events of processtype ptChangingNetworkAddress. No progress message will be generated during this process. When the fResetNow flag is set, the Reset method will be executed after the network address is changed, this will cause all reset events to be fired as sub process events of this process. See the Reset method for more information about the fired events. Since this method uses the nvpNetworkAddress parameter to change the network address, a sub process type sptItemAdded or sptItemModified of processtype ptParameterdatabaseChange might be fired on the parameter database during this method. Note that the address cannot be set to an address that is already in use by another reader in the same network. This method will check if this is the case, if so it will generate and error (E_INVALIDARG).
|
|
Logon a user with the given pincode and level to the reader. Logon to this reader. This method should be called first before any other operation is done on this reader. Use the eLevel argument to specify the required logon level. Depending on this level, the user is allowed or disallowed to perform certain actions. An installer might for instance change the filesystem of a reader, a user cannot change it. Every reader has an internal inactivity timer, if there is no communication for a certain period of time with the reader, it will automatically log out. The inactivity time for a standard reader is set to 30 seconds by default. When logged-out, every message send to the reader will fail with a E_NOTAUTHORIZED return code. When a command fails due to an authorization failure and the AutoAuthorize option is turned on, an automatic logon is performed, and the command is resend automatically. If the AutoAuthorize option is turned off, the easiest way to re-establish communication is to use the ReLogon method. Turn the AutoAuthorize option on by setting the fAutoAuthorize argument of this method to true. Note that the IsLoggedOn property will always return logged-on when the Logon method is succesfully called. It is not affected by the inactivity-timer. With other words, the property can not be used to determine if the reader itself is logged-out.
|
|
Re-logon to the reader. Tries to re-logon to a reader with the password and level that were passed to the Logon method.
|
|
Logoff from this reader.
|
|
Checks if this reader is currently logged on.
|
|
Returns the current setting of the AutoAuthorized option. Can be used to check what the current setting of the AutoAuthorized option is. AutoAuthorize can be turned on using the fAutoAuthorize flag in the Logon method.
|
|
Returns the current logon level. Returns the logon-level that was passed to the Logon method.
|
|
Reset the reader. This method can be used in two different ways. When reseting asynchronously, this method will start resetting the reader and return immediately. The application is then free to perform other tasks while waiting for the reset to finish. The property IsResetting can be used to determine if the resetting process has finished. Another way is to reset synchronously, this method will then block until the reader has finished resetting. The default events of processtype ptResetting are fired by this method. Progress events are also fired. After a reset, the reader will be logged off. For executing new reader operations after the reset a new Logon is required. However, if the AutoAuthorize option is turned on, the logon will be performed automatically. When changing parameters (see IParameterDatabase), some parameters require a reset to activate the changes. To determine what parameter require a reset, refer to the IParameter::IsResetRequired property. If the fActiveBootloader flag is set, the reader will be reset and after the reset, the reader will not start its Application but remain in bootloader mode. This is a mode that is required for for instance uploading new firmware (the IMemoryAccess::UploadFirmware method however, can also perform the switching to bootloader mode automatically). The SoftwareMode property can be used to determine if the reader is in bootloader mode or normal application mode.
|
|
Returns the status of the current resetting process. When resetting, this method will return csBusy. When finished, it will return csReady.
|
|
Interrupt the booting process of this reader. If the reader is corrupt, and the reset functionality no longer works, the reader can be powered down. After power up, this method should be called immediately (within 2 seconds). This method will cause the reader to skip loading its firmware, it will thus stay in bootloader mode (in bootloader mode, the firmware can be repaired). In bootloader mode, the reader has limited functionality. Use the SoftwareMode property to determine if the reader is in bootloader mode or normal application mode.
|
|
Reports the current software mode of the reader. This method can be used to determine the current software mode of the reader. Since it is a very fast method (and no logon is required), it can also be used to determine if a reader is responds to a certain address (it is used internally in the IReaderNetwork::ScanReaders method).
|
|
Returns the object that can be used to set and get parameters, the parameter database. Note that the parameterdatabase object is cached internally in this reader object.
|
|
Returns the object that supports user manipulation and user access methods. Note that the userdatabase object is cached internally in this reader object.
|
|
Returns the object that supports event manipulation and event retrieval methods. Note that the usersdatabase object is cached internally in this reader object. When the current file-system of this reader does not support events, this property will return an empty object (file-systems 0, 1, 4 and 5 do not support events).
|
|
Returns object that can be used to set and get data directly from the reader's memory. The memory access object also contains the upload functionality to upload new firmware into the reader.
|
|
Returns the object that can be used to set and get access control parameters.
|
|
Returns the object that can be used to set and get hardware related settings.
|
|
Can be used to request different version numbers of the reader.
|
|
Returns the type of the current extension board (if present).
|
|
Returns the current status of the RFID interface (enabled or disabled).
|
|
Enable or disable the RFID interface of this reader. The RFID interface is disabled internally when saving parameters. This is done to prevent a keypad programmer from modifying a parameter while this API is also modifying the same parameter. To increase performance, the RFID interface is also disabled when collecting users, events, adding users etc. This is done because presenting a card while the API is collecting users, will slow down the collection process considerable.
|
|
Returns the current embedded software configuration. For more information about upgrading the embedded software to a new configuration, see UpgradeSoftwareConfiguration.
|
|
Upgrade the reader's embedded software configuration. The embedded software in the reader can be configured in three different ways:
|
|
Set a new file system in this reader. This method will automatically reset the reader to stabilize drivers and interfaces for the changes that may have resulted from the new file system configuration. The default events of processtype ptSettingFileSystem are fired by this method including progress events. After the filesystem has been set successful, this method will perform a reset. The reset events will be fired as sub process of this ptSettingFileSystem process. Note that using the fSetAsync argument it is possible to set the filesystem asynchronously. The application is then free to perform other tasks while waiting for this method to finish. To retrieve the current filesystem, use the GetProperty method with "FileSystem" as argument. Changing the filesystem will clear all users, events, parameters, holidays, user groups and timeschemes of the reader, so backup those settings. When the fRestoreUsersAndParameters flag is set, the backup of users, parameters and holidays will be performed automatically. Events, users groups and timeschemes however will be cleared! When the fRestoreUsersAndParameters flag is set, all users, parameters and holidays will be collected before the filesystem is set, this will fire all events of the IUserDatabase::CollectUsers, IParameterDatabase::CollectParameters and the IProximityReader::Holidays methods as sub process events of the ptSettingFileSystem process.
|
|
Returns a property of this reader object. Currently the following properties can be retrieved using this method:
|
|
Temporarily increase the baudrate of this reader.
|
|
Copy all settings from another reader to this reader. This method can be used to copy users and/or holidays and/or parameters from one reader into this reader. When the cfClearUsers flag is specified, all user in this reader will be cleared first, before the users of the source reader are copied to it (only applicable when also specifying cfUsers). If the cfClearUsers flag is not set, and users are copied, users who's cardnumbers match will be automatically overwritten. The cfFileSystem will set the filesystem of this reader to the same filesystem as the source reader, use this option with care, since it deletes ALL users, holidays, events, parameters etc. of this reader (see SetFileSystem for more information). The events fired by this method are of processtype ptCopyFrom. The following events are fired (in this order):
When for instance copying users from another reader to this reader, all users of the source-reader are automatically retrieved, if they are not already collected. The next step will be to retrieve all users of this reader's userdatabase. Next the users are copied using the IUserDatabase::Users property.
|
|
Perform a search operation on this reader. Perform a search operation on this reader. The collection containing all search results can be retrieved using the SearchResults property. If the sfUsers flag is specified, the IUserDatabase::SearchUsers method will be called to execute the search in the userdatabase. If the sfEvents flag is specified, the IEventDatabase::SearchEvents method will be called to execute the search in the eventdatabase. When both flags are specified, the search results will be combined. Note that the resulting collecting will then contain both IUser and IEvent objects! When the sfSearchAsync is set in the eFlags argument, the search is performed asynchronously (in the background). To get the status of the pending asynchronous search process, use the SearchStatus property. It will be set to ssSearched when the search operation is completed. It is then possible to get the search results using the SearchResults property. Cancel a pending search process by calling the CancelSearch method. This method fires events. The process type is ptSearching. When searching users, the sptSearchingUsers sub process is fired. When searching events, the sptSearchingEvents sub process events are fired. Note that the BaseObject parameter of those events will hold the IUserDatabase or IEventDatabase object of the specific reader. When a matching user is found, the sub process will hold sptSearchingUsers | sptItemFound. The Info parameter will hold the found user object (IUser object). For a matching event, the sub process will hold sptSearchingEvents | sptItemFound. The Info parameter will hold the found event object (IEvent object). See the documentation of IUserDatabase::SearchUsers and IEventDatabase::SearchEvents for more information. Note that the last search-results will be cached inside the databases to increase performance. To clear the search results of this reader, use the ClearSearchResults method or specify the sfClearResults flag when searching again. All arguments (except the eFlags argument) are optional, you do not have to provide them (for C++ programmers, simply set the VARIANT to VT_EMPTY). Only the arguments that are provided will influence the search results.
|
|
Cancel a search process that is currently in progress (only when searching asynchronous).
|
|
Returns the collection of all search results. When both the userdatabase and the eventdatabase have been searched, the results of both databases will be merged. The returned collection can thus contain both IUser and/or IEvent objects! Only returns valid data when this reader is finished searching. Check the search status of this reader using the SearchStatus property.
|
|
Returns the status of the search process. The status is determined by combining the search status of the userdatabase (if searched) and the status of the eventdatabase (if searched).
|
|
Clears the last search results for this reader. This method will call both the IUserDatabase::ClearSearchResults method and IEventDatabase::ClearSearchResults.
|
|
Returns the serial number of the current connected reader. The serial number of a reader is always unique. The difference between this method and the SerialNumber property is that this method can be instructed to refresh the serial number by requesting it from the reader. The SerialNumber property will return the internally cached number.
|
|
Returns true if the reader is in locate mode. This method returns true if the reader is in locate mode. When a reader is in locate mode, the LEDs are flashing and the buzzer beeps to enable a user to locate the reader within a facility.
|
|
Turns the locate mode on or off. Set this property to true to set the reader in locate mode. When in locate mode, all LEDs of the reader are flashing and the buzzer beeps enabling a user to locate this reader within the facility.
|
|
Returns a collection of all defined holidays. This method returns all the defined holidays for this reader. All default events of processtype ptCollectingHolidays are fired by this method. For every collected holiday the OnProcessInfo event is fired (sub process type sptItemFound) with the found holiday in the Info argument.
|
|
Removes all holidays from this reader. This method removes all the defined holidays from this reader. The default events of processtype ptRemovingHolidays are fired including progress events.
|
|
Add a collection of holidays to this reader. This method adds a collection of holidays to this reader. This collection must be sorted by startdate, this means that the holiday with the smallest startdate should be the first item in the collection (see the ICollection::Sort for information about sorting a collection). A holiday may not overlap another holiday. Default events of processtype ptAddingHolidays are fired including progress events.
|
|
Returns a collection of all defined time schemes of this reader. This method returns all the defined time schemes of this reader. All normal events of processtype ptCollectingTimeSchemes are fired by this method. For every collected time scheme the OnProcessInfo event is fired (sub process type sptItemFound) with the found time scheme object in the Info argument.
|
|
Create a new time scheme object. When adding a new time scheme, use this method to create a new time scheme object, then set all properties of the time scheme and finally call the ITimeScheme::Save method. See ITimeScheme::Save for more information.
|
|
Remove a time scheme. This method removes a specific time scheme.
|
|
Return a particular time scheme. This method returns a time scheme with the specific ID (or an empty object if the time scheme is not found in this reader). The return code of this method is set to 1 (S_FALSE) when a timescheme with the specified ID is not found.
|