Pleora Technologies Inc. eBUS SDK v7.0.1.7536 API



PvVirtualDeviceGEVInterfaces.h
1 //* ****************************************************************************
2 //
3 // Copyright (c) 2025, Pleora Technologies Inc., All rights reserved.
4 //
5 //* ****************************************************************************
6 
7 #ifndef __PVVIRTUALDEVICEGEVINTERFACES_H__
8 #define __PVVIRTUALDEVICEGEVINTERFACES_H__
9 
10 #include <PvVirtualDeviceLib.h>
11 #include <PvDeviceEnums.h>
12 #include <PvGenTypes.h>
13 #include <PvPixelType.h>
14 #include <PvPayloadType.h>
15 
16 
19 class IPvGenApiFactory;
20 class IPvRegisterFactory;
21 class IPvRegisterMap;
22 class IPvUserSetNotify;
23 
24 
25 namespace PvVirtualDeviceLib
26 {
27  class IActionHandler;
28 }
29 
30 
32 enum PvScanType
33 {
35  PvScanTypeInvalid = -1,
37  PvScanTypeArea = 0,
39  PvScanTypeLine = 1,
41  PvScanTypeArea3D = 2,
43  PvScanTypeLine3D = 3
44 };
45 
46 
72 class PV_VIRTUAL_DEVICE_API IPvVirtualDeviceGEVInfo
73 {
74 public:
75 
80 
88  virtual const PvString& GetManufacturerName() = 0;
89 
97  virtual const PvString& GetModelName() = 0;
98 
106  virtual const PvString& GetDeviceVersion() = 0;
107 
115  virtual const PvString& GetDeviceFirmwareVersion() = 0;
116 
124  virtual const PvString& GetManufacturerInformation() = 0;
125 
133  virtual const PvString& GetSerialNumber() = 0;
134 
147  virtual PvResult SetManufacturerName( const PvString& aValue ) = 0;
148 
161  virtual PvResult SetModelName( const PvString& aValue ) = 0;
162 
175  virtual PvResult SetDeviceVersion( const PvString& aValue ) = 0;
176 
189  virtual PvResult SetDeviceFirmwareVersion( const PvString& aValue ) = 0;
190 
206  virtual PvResult SetManufacturerInformation( const PvString& aValue ) = 0;
207 
220  virtual PvResult SetSerialNumber( const PvString& aValue ) = 0;
221 
229  virtual uint16_t GetGenICamXMLVersionMajor() const = 0;
230 
238  virtual uint16_t GetGenICamXMLVersionMinor() const = 0;
239 
247  virtual uint16_t GetGenICamXMLVersionSubMinor() const = 0;
248 
256  virtual const PvString& GetGenICamXMLProductGUID() = 0;
257 
265  virtual const PvString& GetGenICamXMLVersionGUID() = 0;
266 
274  virtual const PvString& GetGenICamXMLRegDescModelName() { return GetModelName(); }
275 
283  virtual const PvString& GetGenICamXMLRegDescVendorName() { return GetManufacturerName(); }
284 
299  virtual PvResult SetGenICamXMLVersion( uint16_t aMajor, uint16_t aMinor, uint16_t aSubMinor ) = 0;
300 
323  virtual PvResult SetGenICamXMLGUIDs( const PvString& aProduct, const PvString& aVersion ) = 0;
324 
338  virtual PvResult SetGenICamXMLRegDescModelName( const PvString& aModelName )
339  {
340  PVUNREFPARAM( aModelName);
341  return PvResult::Code::OK;
342  }
343 
357  virtual PvResult SetGenICamXMLRegDescVendorName( const PvString& aVendorName )
358  {
359  PVUNREFPARAM( aVendorName );
360  return PvResult::Code::OK;
361  }
362 
363 };
364 
365 
376 class PV_VIRTUAL_DEVICE_API IPvVirtualDeviceGEVStatistics
377 {
378 public:
379 
384 
388  virtual void Reset() = 0;
389 
395  virtual uint64_t GetReadMemsReceived() const = 0;
396 
402  virtual uint64_t GetWriteMemsReceived() const = 0;
403 
409  virtual uint64_t GetReadRegsReceived() const = 0;
410 
416  virtual uint64_t GetWriteRegsReceived() const = 0;
417 
423  virtual uint64_t GetDiscoveriesReceived() const = 0;
424 
430  virtual uint64_t GetActionCommandsReceived() const = 0;
431 
437  virtual uint64_t GetForceIpsReceived() const = 0;
438 
444  virtual uint64_t GetPacketResendRequestsReceived() const = 0;
445 
451  virtual uint64_t GetPendingAcksIssued() const = 0;
452 
458  virtual uint64_t GetRetriesReceived() const = 0;
459 
465  virtual uint64_t GetRetriesReceivedMax() const = 0;
466 
472  virtual uint64_t GetEventsIssued() const = 0;
473 
479  virtual uint64_t GetEventDatasIssued() const = 0;
480 
486  virtual uint64_t GetEventRetriesIssued() const = 0;
487 
494  virtual uint64_t GetEventRetriesIssuedMax() const = 0;
495 
501  virtual uint64_t GetSessionsOpened() const = 0;
502 
508  virtual uint64_t GetSessionsClosed() const = 0;
509 
515  virtual uint64_t GetHeartbeatFailedCount() const = 0;
516 
522  virtual uint64_t GetGVSPTestPacketsIssued() const = 0;
523 
524 };
525 
526 
537 class PV_VIRTUAL_DEVICE_API IPvMessageChannel
538 {
539 public:
540 
544  virtual ~IPvMessageChannel() {}
545 
567  virtual PvResult FireEvent( uint16_t aEventID, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0xFFFF ) = 0;
568 
595  virtual PvResult FireEvent( uint16_t aEventID, uint8_t* aData, uint32_t aDataLength, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0xFFFF ) = 0;
596 
606  virtual bool IsOpened() = 0;
607 
608 };
609 
610 
630 class PV_VIRTUAL_DEVICE_API IPvVirtualDeviceGEVEventSink
631 {
632 public:
633 
638 
647  virtual void OnApplicationConnect( IPvVirtualDeviceGEV* aDevice, const PvString& aIPAddress, uint16_t aPort, PvAccessType aAccessType )
648  {
649  PVUNREFPARAM( aDevice );
650  PVUNREFPARAM( aIPAddress );
651  PVUNREFPARAM( aPort );
652  PVUNREFPARAM( aAccessType );
653  }
654 
667  virtual void OnControlChannelStart( IPvVirtualDeviceGEV* aDevice, const PvString& aMACAddress, const PvString& aIPAddress,
668  const PvString& aMask, const PvString& aGateway, uint16_t aPort )
669  {
670  PVUNREFPARAM( aDevice );
671  PVUNREFPARAM( aMACAddress );
672  PVUNREFPARAM( aIPAddress );
673  PVUNREFPARAM( aMask );
674  PVUNREFPARAM( aGateway );
675  PVUNREFPARAM( aPort );
676  }
677 
686  virtual void OnApplicationDisconnect( IPvVirtualDeviceGEV* aDevice ) { PVUNREFPARAM( aDevice ); }
687 
695  virtual void OnControlChannelStop( IPvVirtualDeviceGEV* aDevice ) { PVUNREFPARAM( aDevice ); }
696 
704  virtual void OnDeviceResetFull( IPvVirtualDeviceGEV* aDevice ) { PVUNREFPARAM( aDevice ); }
705 
714  virtual void OnDeviceResetNetwork( IPvVirtualDeviceGEV* aDevice ) { PVUNREFPARAM( aDevice ); }
715 
731  {
732  PVUNREFPARAM( aDevice );
733  PVUNREFPARAM( aFactory );
734  }
735 
750  virtual void OnCreateCustomGenApiFeatures( IPvVirtualDeviceGEV* aDevice, IPvGenApiFactory* aFactory ) { PVUNREFPARAM( aDevice ); PVUNREFPARAM( aFactory ); }
751 };
752 
753 
803 class PV_VIRTUAL_DEVICE_API IPvStreamingChannelSource
804 {
805 public:
806 
811 
819  virtual uint32_t GetWidth() const = 0;
820 
828  virtual uint32_t GetHeight() const = 0;
829 
837  virtual uint32_t GetOffsetX() const = 0;
838 
846  virtual uint32_t GetOffsetY() const = 0;
847 
855  virtual PvPixelType GetPixelType() const = 0;
856 
867  virtual void GetWidthInfo( uint32_t& aMin, uint32_t& aMax, uint32_t& aInc ) const = 0;
868 
879  virtual void GetHeightInfo( uint32_t& aMin, uint32_t& aMax, uint32_t& aInc ) const = 0;
880 
897  virtual uint32_t GetChunksSize() const = 0;
898 
913  virtual uint32_t GetPayloadSize() const = 0;
914 
923  virtual PvScanType GetScanType() const = 0;
924 
933  virtual bool GetChunkModeActive() const = 0;
934 
949  virtual bool GetChunkEnable( uint32_t aChunkID ) const = 0;
950 
976  virtual PvResult GetSupportedPixelType( int aIndex, PvPixelType& aPixelType ) const = 0;
977 
1006  virtual PvResult GetSupportedChunk( int aIndex, uint32_t& aID, PvString& aName ) const = 0;
1007 
1028  virtual PvResult GetGevSCPSPacketSizeInfo( uint32_t& aMax ) const
1029  {
1030  PVUNREFPARAM( aMax );
1032  }
1033 
1051  virtual PvResult SetWidth( uint32_t aWidth ) = 0;
1052 
1070  virtual PvResult SetHeight( uint32_t aHeight ) = 0;
1071 
1085  virtual PvResult SetOffsetX( uint32_t aOffsetX ) = 0;
1086 
1100  virtual PvResult SetOffsetY( uint32_t aOffsetY ) = 0;
1101 
1119  virtual PvResult SetPixelType( PvPixelType aPixelType ) = 0;
1120 
1135  virtual PvResult SetChunkModeActive( bool aEnabled ) = 0;
1136 
1152  virtual PvResult SetChunkEnable( uint32_t aChunkID, bool aEnabled ) = 0;
1153 
1160  virtual void OnOpen( const PvString& aDestIP, uint16_t aDestPort ) = 0;
1161 
1165  virtual void OnClose() = 0;
1166 
1170  virtual void OnStreamingStart() = 0;
1171 
1175  virtual void OnStreamingStop() = 0;
1176 
1193  virtual void CreateRegisters( IPvRegisterMap* aRegisterMap, IPvRegisterFactory* aFactory )
1194  {
1195  PVUNREFPARAM( aRegisterMap );
1196  PVUNREFPARAM( aFactory );
1197  }
1198 
1259  virtual void CreateGenApiFeatures( IPvRegisterMap* aRegisterMap, IPvGenApiFactory* aFactory )
1260  {
1261  PVUNREFPARAM( aRegisterMap );
1262  PVUNREFPARAM( aFactory );
1263  }
1264 
1280  virtual bool IsPayloadTypeSupported( PvPayloadType aPayloadType )
1281  {
1282  PVUNREFPARAM( aPayloadType );
1283  return false;
1284  }
1285 
1302  virtual void SetMultiPartAllowed( bool aAllowed ) { PVUNREFPARAM( aAllowed ); }
1303 
1319  virtual void SetLargeLeaderTrailerEnabled( bool aEnabled, uint32_t aMaxMultiPartCount )
1320  {
1321  PVUNREFPARAM( aEnabled );
1322  PVUNREFPARAM( aMaxMultiPartCount );
1323  }
1324 
1361  {
1362  PVUNREFPARAM( aPayloadType );
1364  }
1365 };
1366 
1367 
1377 class PV_VIRTUAL_DEVICE_API IPvRegisterInfo
1378 {
1379 public:
1380 
1384  virtual ~IPvRegisterInfo() {}
1385 
1398  virtual const PvString& GetName() = 0;
1399 
1405  virtual uint32_t GetAddress() const = 0;
1406 
1412  virtual size_t GetLength() const = 0;
1413 
1419  virtual const void* GetContext() const = 0;
1420 
1426  virtual void* GetContext() = 0;
1427 
1441  virtual bool IsWritable() const = 0;
1442 
1448  virtual bool IsReadable() const = 0;
1449 
1455  virtual bool IsArrayOfBytes() const = 0;
1456 };
1457 
1458 
1470 class PV_VIRTUAL_DEVICE_API IPvRegister
1471  : public IPvRegisterInfo
1472 {
1473 public:
1474 
1478  virtual ~IPvRegister() {}
1479 
1491  virtual PvResult Read( uint8_t* aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
1492 
1504  virtual PvResult Write( const uint8_t* aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
1505 
1519  virtual PvResult Read( uint32_t& aValue, uint32_t aOffset = 0 ) = 0;
1520 
1534  virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
1535 
1548  virtual PvResult Read( PvString& aValue ) = 0;
1549 
1562  virtual PvResult Write( const PvString& aValue ) = 0;
1563 
1576  virtual PvResult ReadFloat( float& aValue ) = 0;
1577 
1590  virtual PvResult WriteFloat( float aValue ) = 0;
1591 
1604  virtual PvResult ReadDouble( double& aValue ) = 0;
1605 
1618  virtual PvResult WriteDouble( double aValue ) = 0;
1619 
1632  virtual PvResult AddEventSink( IPvRegisterEventSink* aEventSink ) = 0;
1633 
1644  virtual PvResult RemoveEventSink( IPvRegisterEventSink* aEventSink ) = 0;
1645 };
1646 
1647 
1659 class PV_VIRTUAL_DEVICE_API IPvRegisterStore
1660 {
1661 public:
1662 
1663  virtual ~IPvRegisterStore() {}
1664 
1683  virtual PvResult Persist( IPvRegister* aRegister, const PvString& aNameSuffix ) = 0;
1684 };
1685 
1686 
1701 class PV_VIRTUAL_DEVICE_API IPvRegisterEventSink
1702 {
1703 public:
1704 
1709 
1731  virtual PvResult PreRead( IPvRegister* aRegister )
1732  {
1733  PVUNREFPARAM( aRegister );
1734  return PvResult::Code::OK;
1735  }
1736 
1744  virtual void PostRead( IPvRegister* aRegister ) { PVUNREFPARAM( aRegister ); }
1745 
1772  virtual PvResult PreWrite( IPvRegister* aRegister )
1773  {
1774  PVUNREFPARAM( aRegister );
1775  return PvResult::Code::OK;
1776  }
1777 
1789  virtual void PostWrite( IPvRegister* aRegister ) { PVUNREFPARAM( aRegister ); }
1790 
1817  virtual PvResult Persist( IPvRegister* aRegister, IPvRegisterStore* aStore )
1818  {
1819  PVUNREFPARAM( aRegister );
1820  PVUNREFPARAM( aStore );
1822  }
1823 };
1824 
1825 
1835 class PV_VIRTUAL_DEVICE_API IPvRegisterFactory
1836 {
1837 public:
1838 
1842  virtual ~IPvRegisterFactory() {}
1843 
1859  virtual PvResult AddRegister( const PvString& aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
1860  IPvRegisterEventSink* aRegisterEventSink = nullptr, void* aContext = nullptr ) = 0;
1861 
1876  virtual PvResult AddRegisterAuto( const PvString &aName, uint32_t &aAssignedAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
1877  IPvRegisterEventSink *aRegisterEventSink, void *aContext = nullptr) = 0;
1878 
1893  virtual PvResult AddByteArray( const PvString& aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
1894  IPvRegisterEventSink* aRegisterEventSink = nullptr, void* aContext = nullptr ) = 0;
1895 };
1896 
1897 
1909 class PV_VIRTUAL_DEVICE_API IPvRegisterMap
1910 {
1911 public:
1912 
1916  virtual ~IPvRegisterMap() {}
1917 
1926  virtual size_t GetRegisterCount() = 0;
1927 
1935  virtual IPvRegister* GetRegisterByIndex( size_t aIndex ) = 0;
1936 
1944  virtual IPvRegister* GetRegisterByAddress( uint32_t aAddress ) = 0;
1945 
1969  virtual PvResult Lock() = 0;
1970 
1984  virtual PvResult Lock( uint32_t aTimeout ) = 0;
1985 
1992  virtual void Release() = 0;
1993 };
1994 
1995 
2024 class PV_VIRTUAL_DEVICE_API IPvGenApiFactory
2025 {
2026 public:
2027 
2031  virtual ~IPvGenApiFactory() {}
2032 
2041  virtual void SetName( const PvString& aName ) = 0;
2042 
2066  virtual void SetDisplayName( const PvString& aDisplayName ) = 0;
2067 
2082  virtual void SetCategory( const PvString& aCategory ) = 0;
2083 
2099  virtual void SetCategory( const PvString& aCategory, const PvString& aCategoryDisplayName ) = 0;
2100 
2106  virtual void SetDescription( const PvString& aDescription ) = 0;
2107 
2113  virtual void SetToolTip( const PvString& aToolTip ) = 0;
2114 
2124  virtual void SetAccessMode( PvGenAccessMode aAccessMode ) = 0;
2125 
2131  virtual void SetRepresentation( PvGenRepresentation aRepresentation ) = 0;
2132 
2138  virtual void SetVisibility( PvGenVisibility aVisibility ) = 0;
2139 
2150  virtual void SetCachable( PvGenCache aCache ) = 0;
2151 
2160  virtual void SetPollingTime( uint32_t aPollingTime ) = 0;
2161 
2171  virtual void SetNameSpace( PvGenNameSpace aNameSpace ) = 0;
2172 
2184  virtual void SetTLLocked( bool aLocked ) = 0;
2185 
2194  virtual void SetStreamable( bool aStreamable ) = 0;
2195 
2205  virtual void SetUnit( const PvString& aUnit ) = 0;
2206 
2220  virtual void SetPValue( const PvString& aFeatureName ) = 0;
2221 
2243  virtual void SetPIsAvailable( const PvString& aFeatureName ) = 0;
2244 
2253  virtual void SetPIsLocked( const PvString& aFeatureName ) = 0;
2254 
2269  virtual void MapChunk( uint32_t aChunkID, uint32_t aAddress, size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle ) = 0;
2270 
2286  virtual void MapEvent( uint32_t aEventID, uint32_t aAddress, size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle, bool aAdjustAddress = true ) = 0;
2287 
2312  virtual void AddSelected( const PvString& aFeatureName ) = 0;
2313 
2322  virtual void AddInvalidator( const PvString& aFeatureName ) = 0;
2323 
2336  virtual void AddEnumEntry( const PvString& aName, uint32_t aValue ) = 0;
2337 
2352  virtual void AddEnumEntry( const PvString& aName, uint32_t aValue, const PvString& aDisplayName, PvGenNameSpace aNameSpace = PvGenNameSpaceCustom ) = 0;
2353 
2375  virtual void AddVariable( const PvString& aFeatureName ) = 0;
2376 
2395  virtual PvResult CreateInteger( IPvRegister* aRegister, int64_t aMin, int64_t aMax, int64_t aInc = 1 ) = 0;
2396 
2410  virtual PvResult CreateInteger( IPvRegister* aRegister = nullptr ) = 0;
2411 
2429  virtual PvResult CreateFloat( IPvRegister* aRegister, double aMin, double aMax ) = 0;
2430 
2443  virtual PvResult CreateFloat( IPvRegister* aRegister = nullptr ) = 0;
2444 
2459  virtual PvResult CreateString( IPvRegister* aRegister = nullptr ) = 0;
2460 
2473  virtual PvResult CreateRegister( IPvRegister* aRegister = nullptr ) = 0;
2474 
2489  virtual PvResult CreateBoolean( IPvRegister* aRegister = nullptr ) = 0;
2490 
2505  virtual PvResult CreateCommand( IPvRegister* aRegister = nullptr ) = 0;
2506 
2522  virtual PvResult CreateEnum( IPvRegister* aRegister = nullptr ) = 0;
2523 
2568  virtual PvResult CreateIntSwissKnife( const PvString& aFormula ) = 0;
2569 
2615  virtual PvResult CreateFloatSwissKnife( const PvString& aFormula ) = 0;
2616 
2676  virtual PvResult CreateIntConverter( const PvString& aValueFeatureName, const PvString& aFromFormula, const PvString& aToFormula ) = 0;
2677 
2737  virtual PvResult CreateFloatConverter( const PvString& aValueFeatureName, const PvString& aFromFormula, const PvString& aToFormula ) = 0;
2738 
2756  virtual PvResult AddInvalidatorTo( const PvString& aStandardFeatureName, const PvString& aInvalidatorFeatureName ) = 0;
2757 
2775  virtual PvResult AddSelectedTo( const PvString& aSelectorFeatureName, const PvString& aSelectedFeatureName ) = 0;
2776 
2796  virtual PvResult SetPIsAvailableFor( const PvString& aStandardFeatureName, const PvString& aPIsAvailableFeatureName ) = 0;
2797 
2818  virtual PvResult SetPIsAvailableForEnumEntry( const PvString& aStandardFeatureName, const PvString& aEnumEntryName, const PvString& aPIsAvailableFeatureName ) = 0;
2819 
2830  virtual PvResult SetPIsLockedFor( const PvString& aStandardFeatureName, const PvString& aPIsLockedFeatureName ) = 0;
2831 
2844  virtual PvResult SetPValueFor( const PvString& aStandardFeatureName, const PvString& aPValueFeatureName ) = 0;
2845 
2858  virtual PvResult SetPMinFor( const PvString& aStandardFeatureName, const PvString& aPMinFeatureName ) = 0;
2859 
2872  virtual PvResult SetPMaxFor( const PvString& aStandardFeatureName, const PvString& aPMaxFeatureName ) = 0;
2873 
2886  virtual PvResult SetPIncFor( const PvString& aStandardFeatureName, const PvString& aPIncFeatureName ) = 0;
2887 
2897  virtual void SetPMin( const PvString& aFeatureName ) = 0;
2898 
2908  virtual void SetPMax( const PvString& aFeatureName ) = 0;
2909 
2919  virtual void SetPInc( const PvString& aFeatureName ) = 0;
2920 };
2921 
2922 
2923 
2928 class PV_VIRTUAL_DEVICE_API IPvVirtualDeviceGEV
2929 {
2930 public:
2931 
2936 
3007  virtual PvResult SetUserSetCount( uint32_t aCount ) = 0;
3008 
3019  virtual PvResult SetUserSetNotify ( IPvUserSetNotify* aUserSetNotify ) = 0;
3020 
3028  virtual PvResult SetActionHandler( PvVirtualDeviceLib::IActionHandler* aActionHandler ) = 0;
3029 
3044  virtual PvResult RegisterEventSink( IPvVirtualDeviceGEVEventSink* aEventSink ) = 0;
3045 
3058  virtual PvResult UnregisterEventSink( IPvVirtualDeviceGEVEventSink* aEventSink ) = 0;
3059 
3075  virtual PvResult Start( const PvString& aMACAddress ) = 0;
3076 
3085  virtual PvResult Stop() = 0;
3086 
3097  virtual IPvVirtualDeviceGEVInfo* GetInfo() = 0;
3098 
3113  virtual IPvRegisterMap* GetRegisterMap() = 0;
3114 
3122  virtual IPvVirtualDeviceGEVStatistics* GetStatistics() = 0;
3123 
3137  virtual IPvMessageChannel* GetMessagingChannel() = 0;
3138 
3152  virtual PvResult GetGenICamXMLFile( PvString& aString ) const = 0;
3153 };
3154 
3155 #endif // __PVVIRTUALDEVICEGEVINTERFACES_H__
IPvVirtualDeviceGEVEventSink::OnControlChannelStart
virtual void OnControlChannelStart(IPvVirtualDeviceGEV *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: PvVirtualDeviceGEVInterfaces.h:667
IPvVirtualDeviceGEV
Interface to the main class of the software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:2928
PvResult
Result information.
Definition: PvResult.h:29
IPvVirtualDeviceGEVEventSink::OnCreateCustomGenApiFeatures
virtual void OnCreateCustomGenApiFeatures(IPvVirtualDeviceGEV *aDevice, IPvGenApiFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom GenApi parameters, if they are needed.
Definition: PvVirtualDeviceGEVInterfaces.h:750
IPvRegisterEventSink::~IPvRegisterEventSink
virtual ~IPvRegisterEventSink()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:1708
PvResult::Code::OK
@ OK
Success! (Immediate.)
Definition: PvResult.h:252
IPvRegisterEventSink::PreWrite
virtual PvResult PreWrite(IPvRegister *aRegister)
Pre-write register notification.
Definition: PvVirtualDeviceGEVInterfaces.h:1772
IPvRegisterMap
Register map interface for a software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:1909
IPvStreamingChannelSource::SetTestPayloadFormatMode
virtual PvResult SetTestPayloadFormatMode(PvPayloadType aPayloadType)
When called, the streaming source has to ensure it can stream buffers of the specified payload type.
Definition: PvVirtualDeviceGEVInterfaces.h:1360
IPvRegisterMap::~IPvRegisterMap
virtual ~IPvRegisterMap()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:1916
IPvVirtualDeviceGEVStatistics
Interface that is used to retrieve control channel statistics from a software-based GigE Vision Devic...
Definition: PvVirtualDeviceGEVInterfaces.h:376
IPvGenApiFactory
GenApi factory used to add custom GenApi parameters to a software-based GigE Vision Device GenICam XM...
Definition: PvVirtualDeviceGEVInterfaces.h:2024
PvGenAccessMode
PvGenAccessMode
Definition: PvGenTypes.h:158
IPvMessageChannel
Messaging channel interface of the software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:537
PvAccessType
PvAccessType
GigE Vision device access type.
Definition: PvDeviceEnums.h:28
IPvUserSetNotify
An interface to register a state change callback for UserSets.
Definition: IPvUserSetNotify.h:32
PvPayloadType.h
GVSP payload type constants.
IPvRegister::~IPvRegister
virtual ~IPvRegister()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:1478
IPvVirtualDeviceGEVStatistics::~IPvVirtualDeviceGEVStatistics
virtual ~IPvVirtualDeviceGEVStatistics()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:383
IPvVirtualDeviceGEVEventSink::OnDeviceResetNetwork
virtual void OnDeviceResetNetwork(IPvVirtualDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has reset its network stack.
Definition: PvVirtualDeviceGEVInterfaces.h:714
IPvStreamingChannelSource::SetLargeLeaderTrailerEnabled
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: PvVirtualDeviceGEVInterfaces.h:1319
PvString
String class.
Definition: PvString.h:25
IPvVirtualDeviceGEV::~IPvVirtualDeviceGEV
virtual ~IPvVirtualDeviceGEV()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:2935
PvGenRepresentation
PvGenRepresentation
Definition: PvGenTypes.h:120
IPvRegisterFactory
Class used for register creation.
Definition: PvVirtualDeviceGEVInterfaces.h:1835
IPvRegister
Interface that is used to access the registers of the software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:1470
IPvStreamingChannelSource::CreateRegisters
virtual void CreateRegisters(IPvRegisterMap *aRegisterMap, IPvRegisterFactory *aFactory)
When called, the streaming channel source should create its custom registers if they are needed.
Definition: PvVirtualDeviceGEVInterfaces.h:1193
IPvRegisterEventSink::PreRead
virtual PvResult PreRead(IPvRegister *aRegister)
Pre-read register notification.
Definition: PvVirtualDeviceGEVInterfaces.h:1731
PvGenNameSpace
PvGenNameSpace
Definition: PvGenTypes.h:146
IPvVirtualDeviceGEVInfo::SetGenICamXMLRegDescVendorName
virtual PvResult SetGenICamXMLRegDescVendorName(const PvString &aVendorName)
Set the GenICam XML register description vendor name.
Definition: PvVirtualDeviceGEVInterfaces.h:357
PvResult::Code::NOT_IMPLEMENTED
@ NOT_IMPLEMENTED
The requested feature or functionality is not implemented.
Definition: PvResult.h:340
PvDeviceEnums.h
PvDevice library enumerations.
PvPayloadType
PvPayloadType
GVSP payload type.
Definition: PvPayloadType.h:19
IPvStreamingChannelSource::CreateGenApiFeatures
virtual void CreateGenApiFeatures(IPvRegisterMap *aRegisterMap, IPvGenApiFactory *aFactory)
When called, the streaming channel source should create its custom GenApi parameters if they are need...
Definition: PvVirtualDeviceGEVInterfaces.h:1259
IPvGenApiFactory::~IPvGenApiFactory
virtual ~IPvGenApiFactory()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:2031
IPvRegisterEventSink::PostWrite
virtual void PostWrite(IPvRegister *aRegister)
Post-write register notification.
Definition: PvVirtualDeviceGEVInterfaces.h:1789
IPvVirtualDeviceGEVEventSink
Interface that is used by PvSoftDeviceGEV to report internal events.
Definition: PvVirtualDeviceGEVInterfaces.h:630
IPvStreamingChannelSource::IsPayloadTypeSupported
virtual bool IsPayloadTypeSupported(PvPayloadType aPayloadType)
When called, the streaming source has to return whether the specificed payload type is supported or n...
Definition: PvVirtualDeviceGEVInterfaces.h:1280
IPvVirtualDeviceGEVEventSink::OnCreateCustomRegisters
virtual void OnCreateCustomRegisters(IPvVirtualDeviceGEV *aDevice, IPvRegisterFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom registers, if they are needed.
Definition: PvVirtualDeviceGEVInterfaces.h:730
PvGenTypes.h
GenICam feature-related constants.
IPvVirtualDeviceGEVEventSink::~IPvVirtualDeviceGEVEventSink
virtual ~IPvVirtualDeviceGEVEventSink()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:637
IPvRegisterFactory::~IPvRegisterFactory
virtual ~IPvRegisterFactory()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:1842
IPvVirtualDeviceGEVInfo::GetGenICamXMLRegDescVendorName
virtual const PvString & GetGenICamXMLRegDescVendorName()
Returns the GenICam XML Register Description vendor name.
Definition: PvVirtualDeviceGEVInterfaces.h:283
IPvRegisterEventSink::PostRead
virtual void PostRead(IPvRegister *aRegister)
Post-read register notification.
Definition: PvVirtualDeviceGEVInterfaces.h:1744
IPvVirtualDeviceGEVInfo::GetGenICamXMLRegDescModelName
virtual const PvString & GetGenICamXMLRegDescModelName()
Returns the GenICam XML Register Description model name.
Definition: PvVirtualDeviceGEVInterfaces.h:274
IPvVirtualDeviceGEVEventSink::OnDeviceResetFull
virtual void OnDeviceResetFull(IPvVirtualDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has performed a full reset.
Definition: PvVirtualDeviceGEVInterfaces.h:704
IPvStreamingChannelSource::~IPvStreamingChannelSource
virtual ~IPvStreamingChannelSource()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:810
IPvRegisterStore
Class used with register persistence in the context of user-sets.
Definition: PvVirtualDeviceGEVInterfaces.h:1659
PvPixelType.h
PvGenNameSpaceCustom
@ PvGenNameSpaceCustom
Custom PvGenNamespace.
Definition: PvGenTypes.h:151
PvPixelType
PvPixelType
Definition: PvPixelType.h:50
IPvVirtualDeviceGEVEventSink::OnApplicationConnect
virtual void OnApplicationConnect(IPvVirtualDeviceGEV *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: PvVirtualDeviceGEVInterfaces.h:647
IPvVirtualDeviceGEVInfo
Interface that is used to customize the identity of a software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:72
IPvStreamingChannelSource::SetMultiPartAllowed
virtual void SetMultiPartAllowed(bool aAllowed)
Sets whether the streaming source is allowed or not, but not forced, to transmit multi-part data.
Definition: PvVirtualDeviceGEVInterfaces.h:1302
PvGenCache
PvGenCache
Definition: PvGenTypes.h:176
IPvStreamingChannelSource::GetGevSCPSPacketSizeInfo
virtual PvResult GetGevSCPSPacketSizeInfo(uint32_t &aMax) const
Get the customized max value for GevSCPSPacketSize. Used at PvSoftDeviceGEV::Start time to create the...
Definition: PvVirtualDeviceGEVInterfaces.h:1028
PvResult::Code::NOT_SUPPORTED
@ NOT_SUPPORTED
The requested feature or functionality is not supported.
Definition: PvResult.h:342
IPvRegisterEventSink
Interface that is used to report the register activity of the software-based GigE Vision Device.
Definition: PvVirtualDeviceGEVInterfaces.h:1701
IPvMessageChannel::~IPvMessageChannel
virtual ~IPvMessageChannel()
Destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:544
IPvVirtualDeviceGEVInfo::SetGenICamXMLRegDescModelName
virtual PvResult SetGenICamXMLRegDescModelName(const PvString &aModelName)
Set the GenICam XML register description model name.
Definition: PvVirtualDeviceGEVInterfaces.h:338
IPvVirtualDeviceGEVEventSink::OnControlChannelStop
virtual void OnControlChannelStop(IPvVirtualDeviceGEV *aDevice)
Notification that the control channel of the PvSoftDeviceGEV has been stopped.
Definition: PvVirtualDeviceGEVInterfaces.h:695
IPvVirtualDeviceGEVEventSink::OnApplicationDisconnect
virtual void OnApplicationDisconnect(IPvVirtualDeviceGEV *aDevice)
Notification that the GigE Vision controller has released the control channel of the PvSoftDeviceGEV.
Definition: PvVirtualDeviceGEVInterfaces.h:686
IPvRegisterInfo
Interface to access basic information about a PvSoftDeviceGEV register.
Definition: PvVirtualDeviceGEVInterfaces.h:1377
IPvStreamingChannelSource
Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source imp...
Definition: PvVirtualDeviceGEVInterfaces.h:803
PvGenEndianness
PvGenEndianness
Definition: PvGenTypes.h:212
PvGenEndiannessLittle
@ PvGenEndiannessLittle
Litte endianness.
Definition: PvGenTypes.h:217
IPvRegisterInfo::~IPvRegisterInfo
virtual ~IPvRegisterInfo()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:1384
PvGenVisibility
PvGenVisibility
Feature (PvGenParameter object) visibility.
Definition: PvGenTypes.h:42
IPvRegisterEventSink::Persist
virtual PvResult Persist(IPvRegister *aRegister, IPvRegisterStore *aStore)
Peristence request for selected registers for user-sets.
Definition: PvVirtualDeviceGEVInterfaces.h:1817
IPvVirtualDeviceGEVInfo::~IPvVirtualDeviceGEVInfo
virtual ~IPvVirtualDeviceGEVInfo()
Virtual destructor.
Definition: PvVirtualDeviceGEVInterfaces.h:79

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