Register map interface for a software-based GigE Vision Device. More...
Public Member Functions | |
virtual | ~IPvRegisterMap () |
Virtual destructor. | |
virtual size_t | GetRegisterCount ()=0 |
Obtains a count of how many registers are in the PvSoftDeviceGEV register map. More... | |
virtual IPvRegister * | GetRegisterByIndex (size_t aIndex)=0 |
Obtains a register from the register map based on the register's index. More... | |
virtual IPvRegister * | GetRegisterByAddress (uint32_t aAddress)=0 |
Obtains a register from the register map based on the register's address. More... | |
virtual PvResult | Lock ()=0 |
Locks the register map for safe register access. More... | |
virtual PvResult | Lock (uint32_t aTimeout)=0 |
Locks the register map for safe register access but fails on timeout. More... | |
virtual void | Release ()=0 |
Releases a lock acquired with Lock. More... | |
Register map interface for a software-based GigE Vision Device.
The interface to the PvSoftDeviceGEV register map can be retrieved using IPvSoftDeviceGEV::GetRegisterMap any time after the device has been started.
This interface can be used to browse the register map using the GetRegisterCount and GetRegisterByIndex methods. If you know the address of the register that you are looking for, you can access it directly with GetRegisterByAddress.
|
pure virtual |
Obtains a register from the register map based on the register's address.
[in] | aAddress | Register address. |
|
pure virtual |
Obtains a register from the register map based on the register's index.
[in] | aIndex | 0-based index. |
|
pure virtual |
Obtains a count of how many registers are in the PvSoftDeviceGEV register map.
Typically used to enumerate all registers. Call GetRegisterByIndex with aIndex iterating from 0 to GetRegisterCount - 1, inclusively.
|
pure virtual |
Locks the register map for safe register access.
We recommend that you lock the register map before accessing the registers using the IPvRegisterMap interface. The lock should not be held for longer than necessary and should be released as soon as possible.
Failure to lock the register map before accessing its content could mean that an IPvRegister obtained through GetRegisterByIndex or GetRegisterByAddress could be deleted while using it in parallel with a PvSoftDeviceGEV reset.
Locking the register map prevents register map additions or removals while it is being accessed. However, it does not prevent register access, which can safely occur in parallel, because each individual register is thread-safe on read/write operations.
It is very important that you call Release after a Lock() success. Failure to do so will likely result in a PvSoftDeviceGEV deadlock on reset or shutdown.
|
pure virtual |
Locks the register map for safe register access but fails on timeout.
See Lock() for more information.
[in] | aTimeout | Timeout, in ms, to wait for the lock. |
|
pure virtual |
Releases a lock acquired with Lock.
Not calling this method after calling Lock will most likely result in a PvSoftDeviceGEV deadlock on reset or shutdown.
Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com