7 #ifndef __PVSOFTDEVICEGEVINTERFACES_H__ 8 #define __PVSOFTDEVICEGEVINTERFACES_H__ 11 #define EBUS_ENUM(x) typedef enum 14 #include <PvVirtualDeviceLib.h> 35 PvScanTypeInvalid = -1,
85 virtual const PvString &GetManufacturerName() = 0;
94 virtual const PvString &GetModelName() = 0;
103 virtual const PvString &GetDeviceVersion() = 0;
112 virtual const PvString &GetDeviceFirmwareVersion() = 0;
121 virtual const PvString &GetManufacturerInformation() = 0;
130 virtual const PvString &GetSerialNumber() = 0;
226 virtual uint16_t GetGenICamXMLVersionMajor()
const = 0;
235 virtual uint16_t GetGenICamXMLVersionMinor()
const = 0;
244 virtual uint16_t GetGenICamXMLVersionSubMinor()
const = 0;
253 virtual const PvString &GetGenICamXMLProductGUID() = 0;
262 virtual const PvString &GetGenICamXMLVersionGUID() = 0;
296 virtual PvResult SetGenICamXMLVersion( uint16_t aMajor, uint16_t aMinor, uint16_t aSubMinor ) = 0;
377 virtual void Reset() = 0;
384 virtual uint64_t GetReadMemsReceived()
const = 0;
391 virtual uint64_t GetWriteMemsReceived()
const = 0;
398 virtual uint64_t GetReadRegsReceived()
const = 0;
405 virtual uint64_t GetWriteRegsReceived()
const = 0;
412 virtual uint64_t GetDiscoveriesReceived()
const = 0;
419 virtual uint64_t GetActionCommandsReceived()
const = 0;
426 virtual uint64_t GetForceIpsReceived()
const = 0;
433 virtual uint64_t GetPacketResendRequestsReceived()
const = 0;
440 virtual uint64_t GetPendingAcksIssued()
const = 0;
447 virtual uint64_t GetRetriesReceived()
const = 0;
454 virtual uint64_t GetRetriesReceivedMax()
const = 0;
461 virtual uint64_t GetEventsIssued()
const = 0;
468 virtual uint64_t GetEventDatasIssued()
const = 0;
475 virtual uint64_t GetEventRetriesIssued()
const = 0;
483 virtual uint64_t GetEventRetriesIssuedMax()
const = 0;
490 virtual uint64_t GetSessionsOpened()
const = 0;
497 virtual uint64_t GetSessionsClosed()
const = 0;
504 virtual uint64_t GetHeartbeatFailedCount()
const = 0;
511 virtual uint64_t GetGVSPTestPacketsIssued()
const = 0;
556 virtual PvResult FireEvent( uint16_t aEventID, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0xFFFF ) = 0;
584 virtual PvResult FireEvent( uint16_t aEventID, uint8_t *aData, uint32_t aDataLength, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0xFFFF ) = 0;
595 virtual bool IsOpened() = 0;
638 PVUNREFPARAM( aDevice );
639 PVUNREFPARAM( aIPAddress );
640 PVUNREFPARAM( aPort );
641 PVUNREFPARAM( aAccessType );
658 PVUNREFPARAM( aDevice );
659 PVUNREFPARAM( aMACAddress );
660 PVUNREFPARAM( aIPAddress );
661 PVUNREFPARAM( aMask );
662 PVUNREFPARAM( aGateway );
663 PVUNREFPARAM( aPort );
803 virtual uint32_t GetWidth()
const = 0;
812 virtual uint32_t GetHeight()
const = 0;
821 virtual uint32_t GetOffsetX()
const = 0;
830 virtual uint32_t GetOffsetY()
const = 0;
851 virtual void GetWidthInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
863 virtual void GetHeightInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
881 virtual uint32_t GetChunksSize()
const = 0;
897 virtual uint32_t GetPayloadSize()
const = 0;
907 virtual PvScanType GetScanType()
const = 0;
917 virtual bool GetChunkModeActive()
const = 0;
933 virtual bool GetChunkEnable( uint32_t aChunkID )
const = 0;
990 virtual PvResult GetSupportedChunk(
int aIndex, uint32_t &aID,
PvString &aName )
const = 0;
1014 PVUNREFPARAM( aMax );
1035 virtual PvResult SetWidth( uint32_t aWidth ) = 0;
1054 virtual PvResult SetHeight( uint32_t aHeight ) = 0;
1069 virtual PvResult SetOffsetX( uint32_t aOffsetX ) = 0;
1084 virtual PvResult SetOffsetY( uint32_t aOffsetY ) = 0;
1119 virtual PvResult SetChunkModeActive(
bool aEnabled ) = 0;
1136 virtual PvResult SetChunkEnable( uint32_t aChunkID,
bool aEnabled ) = 0;
1144 virtual void OnOpen(
const PvString &aDestIP, uint16_t aDestPort ) = 0;
1149 virtual void OnClose() = 0;
1154 virtual void OnStreamingStart() = 0;
1159 virtual void OnStreamingStop() = 0;
1181 virtual PvBuffer *AllocBuffer() = 0;
1191 virtual void FreeBuffer(
PvBuffer *aBuffer ) = 0;
1256 virtual void AbortQueuedBuffers() = 0;
1276 PVUNREFPARAM( aRegisterMap );
1277 PVUNREFPARAM( aFactory );
1342 PVUNREFPARAM( aRegisterMap );
1343 PVUNREFPARAM( aFactory );
1398 PVUNREFPARAM( aEnabled );
1399 PVUNREFPARAM( aMaxMultiPartCount );
1471 virtual const PvString &GetName() = 0;
1478 virtual uint32_t GetAddress()
const = 0;
1485 virtual size_t GetLength()
const = 0;
1492 virtual const void *GetContext()
const = 0;
1499 virtual void *GetContext() = 0;
1514 virtual bool IsWritable()
const = 0;
1521 virtual bool IsReadable()
const = 0;
1528 virtual bool IsArrayOfBytes()
const = 0;
1564 virtual PvResult Read( uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
1577 virtual PvResult Write(
const uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
1592 virtual PvResult Read( uint32_t &aValue, uint32_t aOffset = 0 ) = 0;
1607 virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
1649 virtual PvResult ReadFloat(
float &aValue ) = 0;
1663 virtual PvResult WriteFloat(
float aValue ) = 0;
1677 virtual PvResult ReadDouble(
double &aValue ) = 0;
1691 virtual PvResult WriteDouble(
double aValue ) = 0;
1918 virtual PvResult AddRegister(
const PvString &aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
1935 virtual PvResult AddByteArray(
const PvString &aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
1968 virtual size_t GetRegisterCount() = 0;
1977 virtual IPvRegister *GetRegisterByIndex(
size_t aIndex ) = 0;
1986 virtual IPvRegister *GetRegisterByAddress( uint32_t aAddress ) = 0;
2026 virtual PvResult Lock( uint32_t aTimeout ) = 0;
2034 virtual void Release() = 0;
2083 virtual void SetName(
const PvString &aName ) = 0;
2108 virtual void SetDisplayName(
const PvString &aDisplayName ) = 0;
2124 virtual void SetCategory(
const PvString &aCategory ) = 0;
2127 virtual void SetCategory(
const PvString &aCategory,
const PvString &aCategoryDisplayName ) = 0;
2134 virtual void SetDescription(
const PvString &aDescription ) = 0;
2141 virtual void SetToolTip(
const PvString &aToolTip ) = 0;
2152 virtual void SetAccessMode( PvGenAccessMode aAccessMode ) = 0;
2178 virtual void SetCachable( PvGenCache aCache ) = 0;
2188 virtual void SetPollingTime( uint32_t aPollingTime ) = 0;
2199 virtual void SetNameSpace( PvGenNameSpace aNameSpace ) = 0;
2212 virtual void SetTLLocked(
bool aLocked ) = 0;
2222 virtual void SetStreamable(
bool aStreamable ) = 0;
2233 virtual void SetUnit(
const PvString &aUnit ) = 0;
2248 virtual void SetPValue(
const PvString &aFeatureName ) = 0;
2271 virtual void SetPIsAvailable(
const PvString &aFeatureName ) = 0;
2272 virtual void SetPIsLocked(
const PvString &aFeatureName ) = 0;
2288 virtual void MapChunk( uint32_t aChunkID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle ) = 0;
2305 virtual void MapEvent( uint32_t aEventID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle,
bool aAdjustAddress =
true ) = 0;
2331 virtual void AddSelected(
const PvString &aFeatureName ) = 0;
2341 virtual void AddInvalidator(
const PvString &aFeatureName ) = 0;
2355 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue ) = 0;
2371 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue,
const PvString &aDisplayName, PvGenNameSpace aNameSpace = PvGenNameSpaceCustom ) = 0;
2394 virtual void AddVariable(
const PvString &aFeatureName ) = 0;
2414 virtual PvResult CreateInteger(
IPvRegister *aRegister, int64_t aMin, int64_t aMax, int64_t aInc = 1 ) = 0;
2735 virtual PvResult AddInvalidatorTo(
const PvString &aStandardFeatureName,
const PvString &aInvalidatorFeatureName ) = 0;
2756 virtual PvResult SetPIsAvailableFor(
const PvString &aStandardFeatureName,
const PvString &aPIsAvailableFeatureName ) = 0;
2778 virtual PvResult SetPIsAvailableForEnumEntry(
const PvString &aStandardFeatureName,
const PvString &aEnumEntryName,
const PvString &aPIsAvailableFeatureName ) = 0;
2779 virtual PvResult SetPIsLockedFor(
const PvString &aStandardFeatureName,
const PvString &aPIsLockedFeatureName ) = 0;
2846 virtual void SetPMin(
const PvString &aFeatureName ) = 0;
2857 virtual void SetPMax(
const PvString &aFeatureName ) = 0;
2868 virtual void SetPInc(
const PvString &aFeatureName ) = 0;
2972 virtual PvResult SetUserSetCount( uint32_t aCount ) = 0;
3002 virtual PvResult SetTCPTransportEnabled(
bool aEnabled ) = 0;
3026 virtual PvResult SetRTPProtocolEnabled(
bool aEnabled ) = 0;
3033 virtual PvResult SetActionHandler( PvVirtualDeviceLib::IActionHandler *aActionHandler ) = 0;
Interface that is used to access the registers of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:1543
virtual void OnControlChannelStop(IPvSoftDeviceGEV *aDevice)
Notification that the control channel of the PvSoftDeviceGEV has been stopped.
Definition: PvSoftDeviceGEVInterfaces.h:683
Definition: PvResult.h:527
virtual void OnApplicationConnect(IPvSoftDeviceGEV *aDevice, const PvString &aIPAddress, uint16_t aPort, PvAccessType aAccessType)
Notification that a GigE Vision controller has taken ownership of the control channel of your PvSoftD...
Definition: PvSoftDeviceGEVInterfaces.h:636
PvAccessType
GigE Vision device access type.
Definition: PvDeviceEnums.h:53
PvGenVisibility
Feature (PvGenParameter object) visibility.
Definition: PvGenTypes.h:60
GenApi factory used to add custom GenApi parameters to a software-based GigE Vision Device GenICam XM...
Definition: PvSoftDeviceGEVInterfaces.h:2066
virtual PvResult PreWrite(IPvRegister *aRegister)
Pre-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:1841
virtual const PvString & GetGenICamXMLRegDescModelName()
Returns the GenICam XML Register Description model name.
Definition: PvSoftDeviceGEVInterfaces.h:271
String class.
Definition: PvString.h:25
Result information.
Definition: PvResult.h:29
Interface to access basic information about a PvSoftDeviceGEV register.
Definition: PvSoftDeviceGEVInterfaces.h:1450
virtual PvResult SetGenICamXMLRegDescVendorName(const PvString &aVendorName)
Set the GenICam XML register description vendor name.
Definition: PvSoftDeviceGEVInterfaces.h:350
virtual bool PreQueueBufferProc()
Definition: PvSoftDeviceGEVInterfaces.h:1216
Interface to the main class of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:2877
virtual PvResult Persist(IPvRegister *aRegister, IPvRegisterStore *aStore)
Peristence request for selected registers for user-sets.
Definition: PvSoftDeviceGEVInterfaces.h:1882
virtual ~IPvMessageChannel()
Destructor.
Definition: PvSoftDeviceGEVInterfaces.h:533
Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source imp...
Definition: PvSoftDeviceGEVInterfaces.h:787
PvPixelType
Definition: PvPixelType.h:57
virtual ~IPvRegisterMap()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:1958
virtual ~IPvRegisterEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:1781
Class used with register persistence in the context of user-sets.
Definition: PvSoftDeviceGEVInterfaces.h:1732
virtual void OnControlChannelStart(IPvSoftDeviceGEV *aDevice, const PvString &aMACAddress, const PvString &aIPAddress, const PvString &aMask, const PvString &aGateway, uint16_t aPort)
Notification that the control channel of the PvSoftDeviceGEV has been started.
Definition: PvSoftDeviceGEVInterfaces.h:656
Definition: PvBuffer.h:29
Messaging channel interface of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:526
PvGenRepresentation
Definition: PvGenTypes.h:158
Definition: PvResult.h:528
An interface to register a state change callback for UserSets.
Definition: IPvUserSetNotify.h:45
virtual void SetLargeLeaderTrailerEnabled(bool aEnabled, uint32_t aMaxMultiPartCount)
Sets whether the streaming source which transmit multi-part data uses large data leader and trailer p...
Definition: PvSoftDeviceGEVInterfaces.h:1396
virtual ~IPvSoftDeviceGEVEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:626
virtual ~IPvGenApiFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:2073
Interface that is used to customize the identity of a software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:69
GenICam feature-related constants.
virtual ~IPvSoftDeviceGEVInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:76
virtual ~IPvRegisterFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:1902
virtual PvResult SetGenICamXMLRegDescModelName(const PvString &aModelName)
Set the GenICam XML register description model name.
Definition: PvSoftDeviceGEVInterfaces.h:335
virtual void PostRead(IPvRegister *aRegister)
Post-read register notification.
Definition: PvSoftDeviceGEVInterfaces.h:1813
virtual bool IsPayloadTypeSupported(PvPayloadType aPayloadType)
When called, the streaming source has to return whether the specificed payload type is supported or n...
Definition: PvSoftDeviceGEVInterfaces.h:1361
virtual void PostWrite(IPvRegister *aRegister)
Post-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:1854
virtual void SetMultiPartAllowed(bool aAllowed)
Sets whether the streaming source is allowed or not, but not forced, to transmit multi-part data...
Definition: PvSoftDeviceGEVInterfaces.h:1379
virtual void OnDeviceResetFull(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has performed a full reset.
Definition: PvSoftDeviceGEVInterfaces.h:692
virtual void CreateGenApiFeatures(IPvRegisterMap *aRegisterMap, IPvGenApiFactory *aFactory)
When called, the streaming channel source should create its custom GenApi parameters if they are need...
Definition: PvSoftDeviceGEVInterfaces.h:1340
virtual ~IPvSoftDeviceGEVStatistics()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:372
virtual PvResult GetGevSCPSPacketSizeInfo(uint32_t &aMax) const
Get the customized max value for GevSCPSPacketSize. Used at PvSoftDeviceGEV::Start time to create the...
Definition: PvSoftDeviceGEVInterfaces.h:1012
virtual ~IPvSoftDeviceGEV()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:2884
virtual void OnDeviceResetNetwork(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has reset its network stack.
Definition: PvSoftDeviceGEVInterfaces.h:702
PvPayloadType
GVSP payload type.
Definition: PvPayloadType.h:66
virtual void OnCreateCustomRegisters(IPvSoftDeviceGEV *aDevice, IPvRegisterFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom registers, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:718
virtual const PvString & GetGenICamXMLRegDescVendorName()
Returns the GenICam XML Register Description vendor name.
Definition: PvSoftDeviceGEVInterfaces.h:280
virtual void CreateRegisters(IPvRegisterMap *aRegisterMap, IPvRegisterFactory *aFactory)
When called, the streaming channel source should create its custom registers if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:1274
virtual ~IPvRegisterInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:1457
Interface that is used to retrieve control channel statistics from a software-based GigE Vision Devic...
Definition: PvSoftDeviceGEVInterfaces.h:365
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:95
virtual ~IPvStreamingChannelSource()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:794
Definition: PvResult.h:508
Interface that is used by PvSoftDeviceGEV to report internal events.
Definition: PvSoftDeviceGEVInterfaces.h:619
virtual void OnApplicationDisconnect(IPvSoftDeviceGEV *aDevice)
Notification that the GigE Vision controller has released the control channel of the PvSoftDeviceGEV...
Definition: PvSoftDeviceGEVInterfaces.h:674
virtual void PostRetrieveBufferProc()
Definition: PvSoftDeviceGEVInterfaces.h:1223
Register map interface for a software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:1951
virtual void OnCreateCustomGenApiFeatures(IPvSoftDeviceGEV *aDevice, IPvGenApiFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom GenApi parameters, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:734
Class used for register creation.
Definition: PvSoftDeviceGEVInterfaces.h:1895
PvDevice library enumerations.
virtual ~IPvRegister()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:1551
virtual PvResult SetTestPayloadFormatMode(PvPayloadType aPayloadType)
When called, the streaming source has to ensure it can stream buffers of the specified payload type...
Definition: PvSoftDeviceGEVInterfaces.h:1437
Interface that is used to report the register activity of the software-based GigE Vision Device...
Definition: PvSoftDeviceGEVInterfaces.h:1774
virtual PvResult PreRead(IPvRegister *aRegister)
Pre-read register notification.
Definition: PvSoftDeviceGEVInterfaces.h:1804