Pleora Technologies Inc. eBUS SDK v7.0.1.7536 API



Loading...
Searching...
No Matches
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
13namespace PvTransmitterLib
14{
15 class TransmitterGEV;
16}
17
18namespace PvVirtualDeviceLib
19{
20 class AcquisitionManager;
21}
22
23
24class PV_TRANSMITTER_API PvTransmitterGEV
25 : public IPvTransmitterGEV
26{
27public:
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
79private:
80
81 PvTransmitterLib::TransmitterGEV *mThis;
82
83};
84
85#endif
Interface to expose the transmitter GEV to the GEV virtual device.
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition PvBuffer.h:111
Result information.
Definition PvResult.h:30
String class.
Definition PvString.h:26
Class for transmitting blocks using the GigE Vision streaming protocol.
Definition PvTransmitterGEV.h:26

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