Skip to content

pylon/gige/GigETransportLayer.h#

Definition of the GigE-specific transport layer interface extension.

Namespaces#

Name
Pylon
Contains definitions of pylon types.

Classes#

Name
struct Pylon::GigEActionCommandResult
Optional result structure of IGigETransportLayer::IssueActionCommand and IGigETransportLayer::IssueScheduledActionCommand.
interface Pylon::IGigETransportLayer
Extends the ITransportLayer interface by GigE Vision specific functionality.

Source code#

//-----------------------------------------------------------------------------
//  Basler pylon SDK
//  Copyright (c) 2008-2022 Basler AG
//  http://www.baslerweb.com
//  Author:  Thomas Koeller, Hartmut Nebelung
//-----------------------------------------------------------------------------
#ifndef TRANSPORTLAYER_GIGE_H
#define TRANSPORTLAYER_GIGE_H

#if _MSC_VER>1000
#pragma once
#endif // _MSC_VER>1000

#include <pylon/TransportLayer.h>
#include "PylonGigE.h"

namespace Pylon
{
    enum EGigEActionCommandStatus
    {
        GigEActionCommandStatus_Ok = 0,

        GigEActionCommandStatus_NoRefTime = 0xE1018013,

        GigEActionCommandStatus_Overflow = 0xE1018015,

        GigEActionCommandStatus_ActionLate = 0xE1018016
    };


    struct GigEActionCommandResult
    {
        char DeviceAddress[12 + 3 + 1];

        int32_t Status;
    };


    interface PUBLIC_INTERFACE IGigETransportLayer : public ITransportLayer
    {

        virtual int EnumerateAllDevices( DeviceInfoList_t&, bool addToList = false ) = 0;


        virtual void ForceIp( const String_t& MacAddress,
                              const String_t& IpAddress,
                              const String_t& SubnetMask,
                              const String_t& DefaultGateway ) = 0;


        virtual void RestartIpConfiguration( const String_t& MacAddress ) = 0;


        virtual bool AnnounceRemoteDevice( const String_t& IpAddress, CDeviceInfo* pInfo = NULL ) = 0;

        virtual bool RenounceRemoteDevice( const String_t& IpAddress ) = 0;


        virtual bool BroadcastIpConfiguration( const String_t& MacAddress,
                                               bool EnablePersistentIp,
                                               bool EnableDhcp,
                                               const String_t& IpAddress,
                                               const String_t& SubnetMask,
                                               const String_t& DefaultGateway,
                                               const String_t& UserdefinedName ) = 0;



        virtual bool IssueActionCommand( uint32_t deviceKey,
                                         uint32_t groupKey,
                                         uint32_t groupMask,
                                         const String_t &broadcastAddress = "255.255.255.255",
                                         uint32_t timeoutMs = 0,
                                         uint32_t *pNumResults = 0,
                                         GigEActionCommandResult results[] = NULL ) = 0;



        virtual bool IssueScheduledActionCommand( uint32_t deviceKey,
                                                  uint32_t groupKey,
                                                  uint32_t groupMask,
                                                  uint64_t actionTimeNs,
                                                  const String_t &broadcastAddress = "255.255.255.255",
                                                  uint32_t timeoutMs = 0,
                                                  uint32_t *pNumResults = 0,
                                                  GigEActionCommandResult results[] = NULL
        ) = 0;

    };
} // namespace Pylon

#endif // TRANSPORTLAYER_GIGE_H

Updated on 5 July 2022 at 15:30:01