Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



IPvRegisterMap Class Referenceabstract

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 IPvRegisterGetRegisterByIndex (size_t aIndex)=0
 Obtains a register from the register map based on the register's index. More...
 
virtual IPvRegisterGetRegisterByAddress (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...
 

Detailed Description

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.

Member Function Documentation

IPvRegister * IPvRegisterMap::GetRegisterByAddress ( uint32_t  aAddress)
pure virtual

Obtains a register from the register map based on the register's address.

Parameters
[in]aAddressRegister address.
Returns
Register interface or NULL on failure.
IPvRegister * IPvRegisterMap::GetRegisterByIndex ( size_t  aIndex)
pure virtual

Obtains a register from the register map based on the register's index.

Parameters
[in]aIndex0-based index.
Returns
Register interface or NULL on failure.
size_t IPvRegisterMap::GetRegisterCount ( )
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.

Returns
Register count.
PvResult IPvRegisterMap::Lock ( )
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.

Returns
Includes:
PvResult IPvRegisterMap::Lock ( uint32_t  aTimeout)
pure virtual

Locks the register map for safe register access but fails on timeout.

See Lock() for more information.

Parameters
[in]aTimeoutTimeout, in ms, to wait for the lock.
Returns
Includes:
void IPvRegisterMap::Release ( )
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.


The documentation for this class was generated from the following files:

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com