7 #ifndef __PVSOFTDEVICEGEVINTERFACES_H__
8 #define __PVSOFTDEVICEGEVINTERFACES_H__
10 #include <PvVirtualDeviceLib.h>
23 namespace PvVirtualDeviceLib
30 PvScanTypeInvalid = -1,
45 virtual const PvString &GetManufacturerName() = 0;
46 virtual const PvString &GetModelName() = 0;
47 virtual const PvString &GetDeviceVersion() = 0;
48 virtual const PvString &GetManufacturerInformation() = 0;
49 virtual const PvString &GetSerialNumber() = 0;
58 virtual uint16_t GetGenICamXMLVersionMajor()
const = 0;
59 virtual uint16_t GetGenICamXMLVersionMinor()
const = 0;
60 virtual uint16_t GetGenICamXMLVersionSubMinor()
const = 0;
61 virtual const PvString &GetGenICamXMLProductGUID() = 0;
62 virtual const PvString &GetGenICamXMLVersionGUID() = 0;
64 virtual PvResult SetGenICamXMLVersion( uint16_t aMajor, uint16_t aMinor, uint16_t aSubMinor ) = 0;
74 virtual void Reset() = 0;
76 virtual uint64_t GetReadMemsReceived()
const = 0;
77 virtual uint64_t GetWriteMemsReceived()
const = 0;
78 virtual uint64_t GetReadRegsReceived()
const = 0;
79 virtual uint64_t GetWriteRegsReceived()
const = 0;
80 virtual uint64_t GetDiscoveriesReceived()
const = 0;
81 virtual uint64_t GetActionCommandsReceived()
const = 0;
82 virtual uint64_t GetForceIpsReceived()
const = 0;
83 virtual uint64_t GetPacketResendRequestsReceived()
const = 0;
84 virtual uint64_t GetPendingAcksIssued()
const = 0;
85 virtual uint64_t GetRetriesReceived()
const = 0;
86 virtual uint64_t GetRetriesReceivedMax()
const = 0;
88 virtual uint64_t GetEventsIssued()
const = 0;
89 virtual uint64_t GetEventDatasIssued()
const = 0;
90 virtual uint64_t GetEventRetriesIssued()
const = 0;
91 virtual uint64_t GetEventRetriesIssuedMax()
const = 0;
93 virtual uint64_t GetSessionsOpened()
const = 0;
94 virtual uint64_t GetSessionsClosed()
const = 0;
95 virtual uint64_t GetHeartbeatFailedCount()
const = 0;
97 virtual uint64_t GetGVSPTestPacketsIssued()
const = 0;
107 #ifdef EBUS_PYTHON_DOXYGEN
108 virtual PvResult FireEvent( uint16_t aEventID, bytes *aData, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
110 virtual PvResult FireEvent( uint16_t aEventID, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
111 virtual PvResult FireEvent( uint16_t aEventID, uint8_t *aData, uint32_t aDataLength, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
113 virtual bool IsOpened() = 0;
125 PVUNREFPARAM( aDevice );
126 PVUNREFPARAM( aIPAddress );
127 PVUNREFPARAM( aPort );
128 PVUNREFPARAM( aAccessType );
133 PVUNREFPARAM( aDevice );
134 PVUNREFPARAM( aMACAddress );
135 PVUNREFPARAM( aIPAddress );
136 PVUNREFPARAM( aMask );
137 PVUNREFPARAM( aGateway );
138 PVUNREFPARAM( aPort );
156 virtual uint32_t GetWidth()
const = 0;
157 virtual uint32_t GetHeight()
const = 0;
158 virtual uint32_t GetOffsetX()
const = 0;
159 virtual uint32_t GetOffsetY()
const = 0;
161 #ifdef EBUS_PYTHON_DOXYGEN
162 virtual tuple GetWidthInfo()
const = 0;
163 virtual tuple GetHeightInfo()
const = 0;
165 virtual void GetWidthInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
166 virtual void GetHeightInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
168 virtual uint32_t GetChunksSize()
const = 0;
169 virtual uint32_t GetPayloadSize()
const = 0;
170 virtual PvScanType GetScanType()
const = 0;
171 virtual bool GetChunkModeActive()
const = 0;
172 virtual bool GetChunkEnable( uint32_t aChunkID )
const = 0;
173 #ifdef EBUS_PYTHON_DOXYGEN
174 virtual tuple GetSupportedPixelType(
int aIndex )
const = 0;
175 virtual tuple GetSupportedChunk(
int aIndex )
const = 0;
178 virtual PvResult GetSupportedChunk(
int aIndex, uint32_t &aID,
PvString &aName )
const = 0;
181 virtual PvResult SetWidth( uint32_t aWidth ) = 0;
182 virtual PvResult SetHeight( uint32_t aHeight ) = 0;
183 virtual PvResult SetOffsetX( uint32_t aOffsetX ) = 0;
184 virtual PvResult SetOffsetY( uint32_t aOffsetY ) = 0;
186 virtual PvResult SetChunkModeActive(
bool aEnabled ) = 0;
187 virtual PvResult SetChunkEnable( uint32_t aChunkID,
bool aEnabled ) = 0;
189 virtual void OnOpen(
const PvString &aDestIP, uint16_t aDestPort ) = 0;
190 virtual void OnClose() = 0;
192 virtual void OnStreamingStart() = 0;
193 virtual void OnStreamingStop() = 0;
195 virtual PvBuffer *AllocBuffer() = 0;
196 virtual void FreeBuffer(
PvBuffer *aBuffer ) = 0;
199 #ifdef EBUS_PYTHON_DOXYGEN
200 virtual tuple RetrieveBuffer(
void *unused ) = 0;
204 virtual void AbortQueuedBuffers() = 0;
208 PVUNREFPARAM( aRegisterMap );
209 PVUNREFPARAM( aFactory );
214 PVUNREFPARAM( aRegisterMap );
215 PVUNREFPARAM( aFactory );
229 virtual const PvString &GetName() = 0;
230 virtual uint32_t GetAddress()
const = 0;
231 virtual size_t GetLength()
const = 0;
232 virtual const void *GetContext()
const = 0;
233 virtual void *GetContext() = 0;
235 virtual bool IsWritable()
const = 0;
236 virtual bool IsReadable()
const = 0;
247 #ifndef EBUS_PYTHON_DOXYGEN
248 virtual PvResult Read( uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
249 virtual PvResult Write(
const uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
251 virtual PvResult Read( uint32_t &aValue, uint32_t aOffset = 0 ) = 0;
252 virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
255 virtual PvResult ReadFloat(
float &aValue ) = 0;
256 virtual PvResult WriteFloat(
float aValue ) = 0;
257 virtual PvResult ReadDouble(
double &aValue ) = 0;
258 virtual PvResult WriteDouble(
double aValue ) = 0;
260 virtual bytes Read( uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
261 virtual PvResult Write( bytes aData, uint32_t aOffset = 0 ) = 0;
262 virtual uint32_t ReadInt( uint32_t aOffset = 0 ) = 0;
263 virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
264 virtual string ReadString() = 0;
266 virtual float ReadFloat() = 0;
267 virtual PvResult WriteFloat(
float aValue ) = 0;
268 virtual double ReadDouble() = 0;
269 virtual PvResult WriteDouble(
double aValue ) = 0;
305 virtual PvResult AddRegister(
const PvString &aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
315 virtual size_t GetRegisterCount() = 0;
316 virtual IPvRegister *GetRegisterByIndex(
size_t aIndex ) = 0;
317 virtual IPvRegister *GetRegisterByAddress( uint32_t aAddress ) = 0;
320 virtual PvResult Lock( uint32_t aTimeout ) = 0;
321 virtual void Release() = 0;
330 virtual void SetName(
const PvString &aName ) = 0;
331 virtual void SetDisplayName(
const PvString &aDisplayName ) = 0;
332 virtual void SetCategory(
const PvString &aCategory ) = 0;
333 virtual void SetDescription(
const PvString &aDescription ) = 0;
334 virtual void SetToolTip(
const PvString &aToolTip ) = 0;
335 virtual void SetAccessMode( PvGenAccessMode aAccessMode ) = 0;
338 virtual void SetCachable( PvGenCache aCache ) = 0;
339 virtual void SetPollingTime( uint32_t aPollingTime ) = 0;
340 virtual void SetNameSpace( PvGenNameSpace aNameSpace ) = 0;
341 virtual void SetTLLocked(
bool aLocked ) = 0;
342 virtual void SetStreamable(
bool aStreamable ) = 0;
343 virtual void SetUnit(
const PvString &aUnit ) = 0;
344 virtual void SetPValue(
const PvString &aFeatureName ) = 0;
345 virtual void SetPIsAvailable(
const PvString &aFeatureName ) = 0;
346 virtual void SetPIsLocked(
const PvString &aFeatureName ) = 0;
348 virtual void MapChunk( uint32_t aChunkID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle ) = 0;
349 virtual void MapEvent( uint32_t aEventID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle,
bool aAdjustAddress =
true ) = 0;
351 virtual void AddSelected(
const PvString &aFeatureName ) = 0;
352 virtual void AddInvalidator(
const PvString &aFeatureName ) = 0;
353 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue ) = 0;
354 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue,
const PvString &aDisplayName, PvGenNameSpace aNameSpace = PvGenNameSpaceCustom ) = 0;
355 virtual void AddVariable(
const PvString &aFeatureName ) = 0;
357 virtual PvResult CreateInteger(
IPvRegister *aRegister, int64_t aMin, int64_t aMax, int64_t aInc = 1 ) = 0;
371 virtual PvResult AddInvalidatorTo(
const PvString &aStandardFeatureName,
const PvString &aInvalidatorFeatureName ) = 0;
372 virtual PvResult SetPIsAvailableFor(
const PvString &aStandardFeatureName,
const PvString &aPIsAvailableFeatureName ) = 0;
373 virtual PvResult SetPIsAvailableForEnumEntry(
const PvString &aStandardFeatureName,
const PvString &aEnumEntryName,
const PvString &aPIsAvailableFeatureName ) = 0;
374 virtual PvResult SetPIsLockedFor(
const PvString &aStandardFeatureName,
const PvString &aPIsLockedFeatureName ) = 0;
380 virtual void SetPMin(
const PvString &aFeatureName ) = 0;
381 virtual void SetPMax(
const PvString &aFeatureName ) = 0;
382 virtual void SetPInc(
const PvString &aFeatureName ) = 0;
392 virtual PvResult SetUserSetCount( uint32_t aCount ) = 0;
393 virtual PvResult SetTCPTransportEnabled(
bool aEnabled ) = 0;
394 virtual PvResult SetRTPProtocolEnabled(
bool aEnabled ) = 0;
395 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:240
virtual void OnDeviceResetFull(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has performed a full reset.
Definition: PvSoftDeviceGEVInterfaces.h:143
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:123
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:218
Definition: PvResult.h:78
PvAccessType
GigE Vision device access type.
Definition: PvDeviceEnums.h:11
virtual PvResult PreRead(IPvRegister *aRegister)
Pre-read register notification.
Definition: PvSoftDeviceGEVInterfaces.h:290
PvGenVisibility
Feature (PvGenParameter object) visibility.
Definition: PvGenTypes.h:11
GenApi factory used to add custom GenApi parameters to a software-based GigE Vision Device GenICam XM...
Definition: PvSoftDeviceGEVInterfaces.h:324
virtual ~IPvRegisterFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:303
virtual ~IPvMessageChannel()
Destructor.
Definition: PvSoftDeviceGEVInterfaces.h:105
virtual ~IPvSoftDeviceGEVEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:121
virtual ~IPvRegisterMap()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:313
virtual ~IPvRegisterEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:288
String class.
Definition: PvString.h:21
Result information.
Definition: PvResult.h:13
Interface to access basic information about a PvSoftDeviceGEV register.
Definition: PvSoftDeviceGEVInterfaces.h:223
Interface to the main class of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:385
Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source imp...
Definition: PvSoftDeviceGEVInterfaces.h:150
PvPixelType
Definition: PvPixelType.h:53
virtual void PostRead(IPvRegister *aRegister)
Post-read register notification.
Definition: PvSoftDeviceGEVInterfaces.h:291
virtual PvResult PreWrite(IPvRegister *aRegister)
Pre-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:293
virtual ~IPvRegisterInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:227
virtual ~IPvSoftDeviceGEV()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:389
Class used with register persistence in the context of user-sets.
Definition: PvSoftDeviceGEVInterfaces.h:275
virtual void OnControlChannelStop(IPvSoftDeviceGEV *aDevice)
Notification that the control channel of the PvSoftDeviceGEV has been stopped.
Definition: PvSoftDeviceGEVInterfaces.h:142
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:206
virtual void OnDeviceResetNetwork(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has reset its network stack.
Definition: PvSoftDeviceGEVInterfaces.h:144
Messaging channel interface of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:101
PvGenRepresentation
Definition: PvGenTypes.h:36
Definition: PvResult.h:79
virtual PvResult Persist(IPvRegister *aRegister, IPvRegisterStore *aStore)
Peristence request for selected registers for user-sets.
Definition: PvSoftDeviceGEVInterfaces.h:296
Interface that is used to customize the identity of a software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:39
virtual ~IPvRegister()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:245
GenICam feature-related constants.
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:131
virtual ~IPvGenApiFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:328
virtual void PostWrite(IPvRegister *aRegister)
Post-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:294
virtual void OnApplicationDisconnect(IPvSoftDeviceGEV *aDevice)
Notification that the GigE Vision controller has released the control channel of the PvSoftDeviceGEV...
Definition: PvSoftDeviceGEVInterfaces.h:141
PvPayloadType
GVSP payload type.
Definition: PvPayloadType.h:11
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:220
virtual void OnCreateCustomRegisters(IPvSoftDeviceGEV *aDevice, IPvRegisterFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom registers, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:146
Interface that is used to retrieve control channel statistics from a software-based GigE Vision Devic...
Definition: PvSoftDeviceGEVInterfaces.h:68
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:47
Definition: PvResult.h:59
Interface that is used by PvSoftDeviceGEV to report internal events.
Definition: PvSoftDeviceGEVInterfaces.h:117
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:212
Register map interface for a software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:309
virtual ~IPvStreamingChannelSource()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:154
virtual ~IPvSoftDeviceGEVStatistics()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:72
Class used for register creation.
Definition: PvSoftDeviceGEVInterfaces.h:299
PvDevice library enumerations.
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:219
virtual void OnCreateCustomGenApiFeatures(IPvSoftDeviceGEV *aDevice, IPvGenApiFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom GenApi parameters, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:147
Interface that is used to report the register activity of the software-based GigE Vision Device...
Definition: PvSoftDeviceGEVInterfaces.h:284
virtual ~IPvSoftDeviceGEVInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:43