7 #ifndef __PVSOFTDEVICEGEVINTERFACES_H__ 8 #define __PVSOFTDEVICEGEVINTERFACES_H__ 10 #include <PvVirtualDeviceLib.h> 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 &GetDeviceFirmwareVersion() = 0;
49 virtual const PvString &GetManufacturerInformation() = 0;
50 virtual const PvString &GetSerialNumber() = 0;
59 virtual uint16_t GetGenICamXMLVersionMajor()
const = 0;
60 virtual uint16_t GetGenICamXMLVersionMinor()
const = 0;
61 virtual uint16_t GetGenICamXMLVersionSubMinor()
const = 0;
62 virtual const PvString &GetGenICamXMLProductGUID() = 0;
63 virtual const PvString &GetGenICamXMLVersionGUID() = 0;
65 virtual PvResult SetGenICamXMLVersion( uint16_t aMajor, uint16_t aMinor, uint16_t aSubMinor ) = 0;
75 virtual void Reset() = 0;
77 virtual uint64_t GetReadMemsReceived()
const = 0;
78 virtual uint64_t GetWriteMemsReceived()
const = 0;
79 virtual uint64_t GetReadRegsReceived()
const = 0;
80 virtual uint64_t GetWriteRegsReceived()
const = 0;
81 virtual uint64_t GetDiscoveriesReceived()
const = 0;
82 virtual uint64_t GetActionCommandsReceived()
const = 0;
83 virtual uint64_t GetForceIpsReceived()
const = 0;
84 virtual uint64_t GetPacketResendRequestsReceived()
const = 0;
85 virtual uint64_t GetPendingAcksIssued()
const = 0;
86 virtual uint64_t GetRetriesReceived()
const = 0;
87 virtual uint64_t GetRetriesReceivedMax()
const = 0;
89 virtual uint64_t GetEventsIssued()
const = 0;
90 virtual uint64_t GetEventDatasIssued()
const = 0;
91 virtual uint64_t GetEventRetriesIssued()
const = 0;
92 virtual uint64_t GetEventRetriesIssuedMax()
const = 0;
94 virtual uint64_t GetSessionsOpened()
const = 0;
95 virtual uint64_t GetSessionsClosed()
const = 0;
96 virtual uint64_t GetHeartbeatFailedCount()
const = 0;
98 virtual uint64_t GetGVSPTestPacketsIssued()
const = 0;
108 #ifdef EBUS_PYTHON_DOXYGEN 109 virtual PvResult FireEvent( uint16_t aEventID, bytes *aData, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
111 virtual PvResult FireEvent( uint16_t aEventID, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
112 virtual PvResult FireEvent( uint16_t aEventID, uint8_t *aData, uint32_t aDataLength, uint64_t aBlockID = 0, uint16_t aChannelIndex = 0 ) = 0;
114 virtual bool IsOpened() = 0;
126 PVUNREFPARAM( aDevice );
127 PVUNREFPARAM( aIPAddress );
128 PVUNREFPARAM( aPort );
129 PVUNREFPARAM( aAccessType );
134 PVUNREFPARAM( aDevice );
135 PVUNREFPARAM( aMACAddress );
136 PVUNREFPARAM( aIPAddress );
137 PVUNREFPARAM( aMask );
138 PVUNREFPARAM( aGateway );
139 PVUNREFPARAM( aPort );
157 virtual uint32_t GetWidth()
const = 0;
158 virtual uint32_t GetHeight()
const = 0;
159 virtual uint32_t GetOffsetX()
const = 0;
160 virtual uint32_t GetOffsetY()
const = 0;
162 #ifdef EBUS_PYTHON_DOXYGEN 163 virtual tuple GetWidthInfo()
const = 0;
164 virtual tuple GetHeightInfo()
const = 0;
166 virtual void GetWidthInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
167 virtual void GetHeightInfo( uint32_t &aMin, uint32_t &aMax, uint32_t &aInc )
const = 0;
169 virtual uint32_t GetChunksSize()
const = 0;
170 virtual uint32_t GetPayloadSize()
const = 0;
171 virtual PvScanType GetScanType()
const = 0;
172 virtual bool GetChunkModeActive()
const = 0;
173 virtual bool GetChunkEnable( uint32_t aChunkID )
const = 0;
174 #ifdef EBUS_PYTHON_DOXYGEN 175 virtual tuple GetSupportedPixelType(
int aIndex )
const = 0;
176 virtual tuple GetSupportedChunk(
int aIndex )
const = 0;
179 virtual PvResult GetSupportedChunk(
int aIndex, uint32_t &aID,
PvString &aName )
const = 0;
182 virtual PvResult SetWidth( uint32_t aWidth ) = 0;
183 virtual PvResult SetHeight( uint32_t aHeight ) = 0;
184 virtual PvResult SetOffsetX( uint32_t aOffsetX ) = 0;
185 virtual PvResult SetOffsetY( uint32_t aOffsetY ) = 0;
187 virtual PvResult SetChunkModeActive(
bool aEnabled ) = 0;
188 virtual PvResult SetChunkEnable( uint32_t aChunkID,
bool aEnabled ) = 0;
190 virtual void OnOpen(
const PvString &aDestIP, uint16_t aDestPort ) = 0;
191 virtual void OnClose() = 0;
193 virtual void OnStreamingStart() = 0;
194 virtual void OnStreamingStop() = 0;
196 virtual PvBuffer *AllocBuffer() = 0;
197 virtual void FreeBuffer(
PvBuffer *aBuffer ) = 0;
200 #ifdef EBUS_PYTHON_DOXYGEN 201 virtual tuple RetrieveBuffer(
void *unused ) = 0;
205 virtual void AbortQueuedBuffers() = 0;
209 PVUNREFPARAM( aRegisterMap );
210 PVUNREFPARAM( aFactory );
215 PVUNREFPARAM( aRegisterMap );
216 PVUNREFPARAM( aFactory );
230 virtual const PvString &GetName() = 0;
231 virtual uint32_t GetAddress()
const = 0;
232 virtual size_t GetLength()
const = 0;
233 virtual const void *GetContext()
const = 0;
234 virtual void *GetContext() = 0;
236 virtual bool IsWritable()
const = 0;
237 virtual bool IsReadable()
const = 0;
248 #ifndef EBUS_PYTHON_DOXYGEN 249 virtual PvResult Read( uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
250 virtual PvResult Write(
const uint8_t *aData, uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
252 virtual PvResult Read( uint32_t &aValue, uint32_t aOffset = 0 ) = 0;
253 virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
256 virtual PvResult ReadFloat(
float &aValue ) = 0;
257 virtual PvResult WriteFloat(
float aValue ) = 0;
258 virtual PvResult ReadDouble(
double &aValue ) = 0;
259 virtual PvResult WriteDouble(
double aValue ) = 0;
261 virtual bytes Read( uint32_t aByteCount, uint32_t aOffset = 0 ) = 0;
262 virtual PvResult Write( bytes aData, uint32_t aOffset = 0 ) = 0;
263 virtual uint32_t ReadInt( uint32_t aOffset = 0 ) = 0;
264 virtual PvResult Write( uint32_t aValue, uint32_t aOffset = 0 ) = 0;
265 virtual string ReadString() = 0;
267 virtual float ReadFloat() = 0;
268 virtual PvResult WriteFloat(
float aValue ) = 0;
269 virtual double ReadDouble() = 0;
270 virtual PvResult WriteDouble(
double aValue ) = 0;
306 virtual PvResult AddRegister(
const PvString &aName, uint32_t aAddress, uint32_t aLength, PvGenAccessMode aAccessMode,
316 virtual size_t GetRegisterCount() = 0;
317 virtual IPvRegister *GetRegisterByIndex(
size_t aIndex ) = 0;
318 virtual IPvRegister *GetRegisterByAddress( uint32_t aAddress ) = 0;
321 virtual PvResult Lock( uint32_t aTimeout ) = 0;
322 virtual void Release() = 0;
331 virtual void SetName(
const PvString &aName ) = 0;
332 virtual void SetDisplayName(
const PvString &aDisplayName ) = 0;
333 virtual void SetCategory(
const PvString &aCategory ) = 0;
334 virtual void SetDescription(
const PvString &aDescription ) = 0;
335 virtual void SetToolTip(
const PvString &aToolTip ) = 0;
336 virtual void SetAccessMode( PvGenAccessMode aAccessMode ) = 0;
339 virtual void SetCachable( PvGenCache aCache ) = 0;
340 virtual void SetPollingTime( uint32_t aPollingTime ) = 0;
341 virtual void SetNameSpace( PvGenNameSpace aNameSpace ) = 0;
342 virtual void SetTLLocked(
bool aLocked ) = 0;
343 virtual void SetStreamable(
bool aStreamable ) = 0;
344 virtual void SetUnit(
const PvString &aUnit ) = 0;
345 virtual void SetPValue(
const PvString &aFeatureName ) = 0;
346 virtual void SetPIsAvailable(
const PvString &aFeatureName ) = 0;
347 virtual void SetPIsLocked(
const PvString &aFeatureName ) = 0;
349 virtual void MapChunk( uint32_t aChunkID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle ) = 0;
350 virtual void MapEvent( uint32_t aEventID, uint32_t aAddress,
size_t aLength, PvGenEndianness aEndianness = PvGenEndiannessLittle,
bool aAdjustAddress =
true ) = 0;
352 virtual void AddSelected(
const PvString &aFeatureName ) = 0;
353 virtual void AddInvalidator(
const PvString &aFeatureName ) = 0;
354 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue ) = 0;
355 virtual void AddEnumEntry(
const PvString &aName, uint32_t aValue,
const PvString &aDisplayName, PvGenNameSpace aNameSpace = PvGenNameSpaceCustom ) = 0;
356 virtual void AddVariable(
const PvString &aFeatureName ) = 0;
358 virtual PvResult CreateInteger(
IPvRegister *aRegister, int64_t aMin, int64_t aMax, int64_t aInc = 1 ) = 0;
372 virtual PvResult AddInvalidatorTo(
const PvString &aStandardFeatureName,
const PvString &aInvalidatorFeatureName ) = 0;
373 virtual PvResult SetPIsAvailableFor(
const PvString &aStandardFeatureName,
const PvString &aPIsAvailableFeatureName ) = 0;
374 virtual PvResult SetPIsAvailableForEnumEntry(
const PvString &aStandardFeatureName,
const PvString &aEnumEntryName,
const PvString &aPIsAvailableFeatureName ) = 0;
375 virtual PvResult SetPIsLockedFor(
const PvString &aStandardFeatureName,
const PvString &aPIsLockedFeatureName ) = 0;
381 virtual void SetPMin(
const PvString &aFeatureName ) = 0;
382 virtual void SetPMax(
const PvString &aFeatureName ) = 0;
383 virtual void SetPInc(
const PvString &aFeatureName ) = 0;
393 virtual PvResult SetUserSetCount( uint32_t aCount ) = 0;
394 virtual PvResult SetPassthru(
bool aPassthruEnabled,
PvString aPassthruDevice ) = 0;
396 virtual PvResult SetTCPTransportEnabled(
bool aEnabled ) = 0;
397 virtual PvResult SetRTPProtocolEnabled(
bool aEnabled ) = 0;
398 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:241
virtual void OnDeviceResetFull(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has performed a full reset.
Definition: PvSoftDeviceGEVInterfaces.h:144
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:124
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:219
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:291
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:325
virtual ~IPvRegisterFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:304
virtual ~IPvMessageChannel()
Destructor.
Definition: PvSoftDeviceGEVInterfaces.h:106
virtual ~IPvSoftDeviceGEVEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:122
virtual ~IPvRegisterMap()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:314
virtual ~IPvRegisterEventSink()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:289
String class.
Definition: PvString.h:21
Result information.
Definition: PvResult.h:13
Interface to access basic information about a PvSoftDeviceGEV register.
Definition: PvSoftDeviceGEVInterfaces.h:224
Interface to the main class of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:386
Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source imp...
Definition: PvSoftDeviceGEVInterfaces.h:151
PvPixelType
Definition: PvPixelType.h:53
virtual void PostRead(IPvRegister *aRegister)
Post-read register notification.
Definition: PvSoftDeviceGEVInterfaces.h:292
virtual PvResult PreWrite(IPvRegister *aRegister)
Pre-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:294
virtual ~IPvRegisterInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:228
virtual ~IPvSoftDeviceGEV()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:390
Class used with register persistence in the context of user-sets.
Definition: PvSoftDeviceGEVInterfaces.h:276
virtual void OnControlChannelStop(IPvSoftDeviceGEV *aDevice)
Notification that the control channel of the PvSoftDeviceGEV has been stopped.
Definition: PvSoftDeviceGEVInterfaces.h:143
Definition: PvBuffer.h:29
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:207
virtual void OnDeviceResetNetwork(IPvSoftDeviceGEV *aDevice)
Notification that the PvSoftDeviceGEV has reset its network stack.
Definition: PvSoftDeviceGEVInterfaces.h:145
Messaging channel interface of the software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:102
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:297
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:246
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:132
virtual ~IPvGenApiFactory()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:329
virtual void PostWrite(IPvRegister *aRegister)
Post-write register notification.
Definition: PvSoftDeviceGEVInterfaces.h:295
virtual void OnApplicationDisconnect(IPvSoftDeviceGEV *aDevice)
Notification that the GigE Vision controller has released the control channel of the PvSoftDeviceGEV...
Definition: PvSoftDeviceGEVInterfaces.h:142
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:221
virtual void OnCreateCustomRegisters(IPvSoftDeviceGEV *aDevice, IPvRegisterFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom registers, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:147
Interface that is used to retrieve control channel statistics from a software-based GigE Vision Devic...
Definition: PvSoftDeviceGEVInterfaces.h:69
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:118
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:213
Register map interface for a software-based GigE Vision Device.
Definition: PvSoftDeviceGEVInterfaces.h:310
virtual ~IPvStreamingChannelSource()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:155
virtual ~IPvSoftDeviceGEVStatistics()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:73
Class used for register creation.
Definition: PvSoftDeviceGEVInterfaces.h:300
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:220
virtual void OnCreateCustomGenApiFeatures(IPvSoftDeviceGEV *aDevice, IPvGenApiFactory *aFactory)
Notification that the PvSoftDeviceGEV should create its custom GenApi parameters, if they are needed...
Definition: PvSoftDeviceGEVInterfaces.h:148
Interface that is used to report the register activity of the software-based GigE Vision Device...
Definition: PvSoftDeviceGEVInterfaces.h:285
virtual ~IPvSoftDeviceGEVInfo()
Virtual destructor.
Definition: PvSoftDeviceGEVInterfaces.h:43