Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



PvTransmitterGEV.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2012, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVTRANSMITTERGEV_H__
8 #define __PVTRANSMITTERGEV_H__
9 
10 #include <IPvTransmitterGEV.h>
11 #include <PvBuffer.h>
12 
13 namespace PvTransmitterLib
14 {
15  class TransmitterGEV;
16 }
17 
18 namespace PvVirtualDeviceLib
19 {
20  class AcquisitionManager;
21 }
22 
23 
24 class PV_TRANSMITTER_API PvTransmitterGEV
25  : public IPvTransmitterGEV
26 {
27 public:
28  friend class PvVirtualDeviceLib::AcquisitionManager;
30  virtual ~PvTransmitterGEV();
31 
32  PvResult Open( PvString aDestinationIPAddress, uint16_t aDestinationPort,
33  PvString aSourceIPAddress = "", uint16_t aSourcePort = 0, bool aDontFrag = true,
34  bool aExtendedIDs = false, uint32_t aBuffersCapacity = 64, bool aTimestampWhenSending = false,
35  uint32_t aNumberOfPendingResendRequests = 32, uint32_t aNumberOfBuffersHoldForResends = 0 );
36  PvResult Close();
37  PvResult LoadBufferPool( PvBuffer** aBuffers, uint32_t aBufferCount );
38  PvResult QueueBuffer( PvBuffer* aBuffer );
39  PvResult RetrieveFreeBuffer( PvBuffer ** aBuffer, uint32_t aTimeout = 0xFFFFFFFF );
40  PvResult AbortQueuedBuffers( uint32_t aTimeout = 0xFFFFFFFF, bool* aPartialTransmission = NULL );
41  PvResult FireTestPacket();
42 
43  uint32_t GetQueuedBufferCount();
44  uint32_t GetPacketSize();
45  PvResult SetPacketSize( uint32_t aPacketSize );
46 
47  float GetMaxPayloadThroughput();
48  PvResult SetMaxPayloadThroughput( float aMaxPayloadThroughput );
49  uint16_t GetSourcePort();
50  uint16_t GetDestinationPort();
51 
52  PvString GetDestinationIPAddress();
53  PvString GetSourceIPAddress();
54 
55  void ResetStats();
56  uint64_t GetBlocksTransmitted() const;
57  uint64_t GetSamplingTime() const;
58  uint64_t GetPayloadBytesTransmitted() const;
59  float GetInstantaneousPayloadThroughput() const;
60  float GetAveragePayloadThroughput() const;
61  float GetInstantaneousTransmissionRate() const;
62  float GetAverageTransmissionRate() const;
63  uint64_t GetNumberOfResendRequests() const;
64 
65  PvResult SetSentBuffersTimeout( uint32_t aTimeout );
66  uint32_t GetSentBuffersTimeout() const;
67 
68  virtual bool IsOpen() const;
69  virtual bool IsTransmitting() const;
70  virtual bool GetExtendedIDs() const;
71  virtual PvResult SetExtendedIDs( bool aExtendedID );
72  virtual void QueuePacketResend( uint64_t aBlockID, uint32_t aFirstPacketID, uint32_t aLastPacketID );
73 
74  uint32_t GetUserModeTransmitterThreadPriority() const;
75  PvResult SetUserModeTransmitterThreadPriority( uint32_t aPriority );
76  uint32_t GetBufferPoolThreadPriority() const;
77  PvResult SetBufferPoolThreadPriority( uint32_t aPriority );
78 
79 private:
80 
81  PvTransmitterLib::TransmitterGEV *mThis;
82 
83 };
84 
85 #endif
PvResult
Result information.
Definition: PvResult.h:13
IPvTransmitterGEV
Interface to expose the transmitter GEV to the GEV virtual device.
PvString
String class.
Definition: PvString.h:21
PvTransmitterGEV
Class for transmitting blocks using the GigE Vision streaming protocol.
Definition: PvTransmitterGEV.h:24
PvBuffer
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:47

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