Interface to the main class of the software-based GigE Vision Device. More...
#include <PvSoftDeviceGEVInterfaces.h>
Public Member Functions | |
| virtual | ~IPvSoftDeviceGEV () |
| Virtual destructor. | |
| virtual PvResult | AddStream (IPvStreamingChannelSource *aSource)=0 |
| Adds a new stream to the PvSoftDeviceGEV. More... | |
| virtual PvResult | SetUserSetNotify (IPvUserSetNotify *aUserSetNotify)=0 |
| Binds in a class which will contain a callback which will be called when the state of a UsersetLoad/Save changes. More... | |
| virtual PvResult | SetTCPTransportEnabled (bool aEnabled)=0 |
| Enables experimental TCP transport. More... | |
| virtual PvResult | SetRTPProtocolEnabled (bool aEnabled)=0 |
| Enables the option of using RTP for streaming. More... | |
| virtual PvResult | SetActionHandler (PvVirtualDeviceLib::IActionHandler *aActionHandler)=0 |
| virtual PvResult | RegisterEventSink (IPvSoftDeviceGEVEventSink *aEventSink)=0 |
| Registers an event sink to receive notifications from the PvSoftDeviceGEV. More... | |
| virtual PvResult | UnregisterEventSink (IPvSoftDeviceGEVEventSink *aEventSink)=0 |
| Unregisters a previously registered event sink. More... | |
| virtual PvResult | Start (const PvString &aIpAddress)=0 |
| Starts the PvSoftDeviceGEV. More... | |
| virtual PvResult | Stop ()=0 |
| Stops the PvSoftDeviceGEV. More... | |
| virtual IPvSoftDeviceGEVInfo * | GetInfo ()=0 |
| Obtains the information interface of the PvSoftDeviceGEV. More... | |
| virtual IPvRegisterMap * | GetRegisterMap ()=0 |
| Obtains the register map interface of the PvSoftDeviceGEV. More... | |
| virtual IPvSoftDeviceGEVStatistics * | GetStatistics ()=0 |
| Obtains the statistics interface of the PvSoftDeviceGEV. More... | |
| virtual IPvMessageChannel * | GetMessagingChannel ()=0 |
| Obtains the messaging channel interface of the PvSoftDeviceGEV. More... | |
| virtual PvResult | GetGenICamXMLFile (PvString &aString) const =0 |
| Returns the GenICam XML file of the device. More... | |
Public Attributes | |
| **Selected registers handling in pseudo | code: * - Save current selector of interest values * - Set selectors to 1st combination * - Call #IPvRegisterStore::Persist with register and unique name suffix representing selector of interest values * - Set selectors to 2nd combination * - Call #IPvRegisterStore::Persist with register and unique name suffix representing selector of interest values * - ... * - Restore selector values * * The #IPvRegisterStore::Persist method loads or saves the register content in the store using the * feature name and provided suffix. * * On startup the default user-set is always updated in the store from the fresh device status. If the UserSetDefault * GenApi feature is assigned to a user-set other than Default |
| Sets the number of user-sets supported by the PvSoftDeviceGEV. More... | |
Interface to the main class of the software-based GigE Vision Device.
|
pure virtual |
Adds a new stream to the PvSoftDeviceGEV.
All streams must be added before starting the PvSoftDeviceGEV.
| [in] | aSource | Interface to a user-provided source. |
Implemented in PvSoftDeviceGEV.
Returns the GenICam XML file of the device.
Can be used to retrieve the GenICam XML file of the device after the Start method has been called. Can be used on success or failure of the Start method.
| aString | [out] String where the XML file is copied. |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Obtains the information interface of the PvSoftDeviceGEV.
Only available after the PvSoftDeviceGEV has been started.
IPvSoftDeviceGEVInfo is used to set the information strings in the read-only bootstrap registers of the PvSoftDeviceGEV, such as Model Name, Vendor Name, etc.
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Obtains the messaging channel interface of the PvSoftDeviceGEV.
The IPvMessageChannel interface can be used to send events on the messaging channel when a GigE Vision controller is connected to the PvSoftDeviceGEV and has properly set up a destination for messaging channel events.
Only available after the PvSoftDeviceGEV has been started.
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Obtains the register map interface of the PvSoftDeviceGEV.
Only available after the PvSoftDeviceGEV has been started.
IPvRegisterMap can be used to directly access the register map of the PvSoftDeviceGEV. It is also possible to subscribe to register read/write events using IPvSoftDeviceGEVEventSink.
See IPvSoftDeviceGEVEventSink::OnCreateCustomRegisters for information about adding custom registers to a PvSoftDeviceGEV.
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Obtains the statistics interface of the PvSoftDeviceGEV.
Only available after the PvSoftDeviceGEV has been started.
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Registers an event sink to receive notifications from the PvSoftDeviceGEV.
This method can be called before the PvSoftDeviceGEV is started.
| [in] | aEventSink | Pointer to a PvSoftDeviceGEV event sink. |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Enables the option of using RTP for streaming.
PvSoftDeviceGEV supports optional RTP protocol for GigE Vision devices.
When RTP is enabled it can be selected as the protocol used to data transmission at the stream channel level of the GenApi interface of the device.
RTP supported is not covered by the GigE Vision specification. A GigE Vision Device actively streaming using RTP goes beyond the bounds covered by the GigE Vision standard.
The RTP implementation is however compliant with the RTP RFCs covering the transport of images (RFC 4175) and H.264 data (RFC 6184).
When a stream transmits using the RTP protocol, the stream is announced on a multicast channel (224.2.127.254:9875) using the SAP protocol with a SDP descriptor as required by the DEFSTAN 0082 specification.
| [in] | aEnabled | Toggles RTP support. |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Enables experimental TCP transport.
PvSoftDeviceGEV supports optional, experimental TCP transport for GigE Vision devices. It affects GVCP control, GVCP messaging channel and GVSP streaming.
When TCP is enabled the device still respond to UDP requests as usual. Additional TCP sockets are opened to optionally accept TCP connections from the host.
As long as TCP is not fully ratified by the GigE Vision specification, enabling TCP could and most likely will break GigE Vision compliance. It also means only the eBUS PvDeviceGEV and PvStreamGEV can be used to interact with the device when using TCP transport.
| [in] | aEnabled | Toggles TCP support. |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Binds in a class which will contain a callback which will be called when the state of a UsersetLoad/Save changes.
Implemented in PvSoftDeviceGEV.
Starts the PvSoftDeviceGEV.
Both GVCP and GVSP are operated from a background thread. Even though the Start method returns, the device is running in your process until you call Stop or until the object is destroyed.
| [in] | aMACAddress | MAC address of the interface to bind the PvSoftDeviceGEV to. |
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Stops the PvSoftDeviceGEV.
Implemented in PvSoftDeviceGEV.
|
pure virtual |
Unregisters a previously registered event sink.
This method can be called before the PvSoftDeviceGEV is started and after it has been stopped.
| [in] | aEventSink | Pointer to a PvSoftDeviceGEV event sink. |
Implemented in PvSoftDeviceGEV.
| * * Selected registers handling in pseudo IPvSoftDeviceGEV::code |
Sets the number of user-sets supported by the PvSoftDeviceGEV.
The maximum supported user-set count is 256.
Can only be changed before starting the device.
User-sets are all about device-side persistence. The status of the device can be saved or retrieved from some static store on the device. User-sets are first and foremost managed at the register level. The SFNC allowing defines the UserSetFeatureSelector which is populated with feature names. This creates an imperfect but mostly acceptable one-to-one link between Streamable (persistent) GenApi features and the register providing its implementation.
Features marked as Streamable (persistent) when creating the GenICam XML file of the device are used for device-side persistence through user-sets.
Persistent features have the content of the register they directly map to saved to the persistent store of the device. The persistent store is implemented through the Registry on Windows and profile home files on Linux. Hardware implementations could rely on Flash memory to store user-sets.
Most registers are simply persisted as-is: their binary content is simply saved to or loaded from the store.
Some registers have only one address but can contain many values when indexed through device-managed selectors. If those registers are Streamable (persistent) the application must handle the IPvRegisterEventSink::Persist event for the registers and for each possible selector combination call IPvRegisterStore::Persist. For the application the same code is used for both save and load operations, thus the generic "persist" naming.
The SoftDeviceGEV sample shows basic use of user-sets.
The SoftDeviceGEV3d sample shows how to handle complex multi-selector registers in the context of user-sets.
Copyright (c) 2002-2024 Pleora Technologies Inc.
www.pleora.com