Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
GigE.h File Reference
#include <stdint.h>
Include dependency graph for GigE.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tsGvcpCmdHdr
 
struct  tsGvcpCmdReadReg
 
struct  tsGvcpCmdWriteReg
 
struct  tsGvcpCmdReadMem
 
struct  tsGvcpCmdWriteMem
 
struct  tsGvcpCmdForceIP
 
struct  tsGvcpCmdPacketResend
 
struct  tsGvcpAckHdr
 
struct  DiscoveryInfo
 
struct  DISCOVERY_ACK_STRUCT
 
struct  READREG_ACK_STRUCT
 
struct  WRITEREG_ACK_STRUCT
 
struct  READMEM_ACK_STRUCT
 
struct  WRITEMEM_ACK_STRUCT
 
struct  FORCEIP_ACK_STRUCT
 
struct  tsGvspHdrExtended
 
struct  tsGvspHdrLegacy
 
struct  tsGvspImageLeader
 
struct  tsGvspImageTrailer
 

Macros

#define GEV_MAJOR_VERSION   0x0002
 
#define GEV_MINOR_VERSION   0x0000
 
#define GVCP_MAX_DATAGRAM_SIZE   576
 
#define GVCP_HEADER_SIZE   8
 
#define MAX_GVSP_BUFFER_LENGTH   65536
 
#define IP_UDP_HEADER_SIZE   28
 
#define ACQUISITION_MODE_CONTINUOUS   1
 
#define ACQUISITION_MODE_SINGLE   2
 
#define ACQUISITION_MODE_MULTIPLE   3
 

Typedefs

typedef uint16_t GEV_STATUS
 

Variables

const int GVSP_DFLT_PKT_SIZE = 1250
 
const uint16_t GVCP_PORT = 3956
 
const uint8_t GVCP_HEADER_KEY = 0x42
 GVCP header key to identify GVCP packets. More...
 
const GEV_STATUS GEV_STATUS_SUCCESS = 0x0000
 Requested operation was completed successfully. More...
 
const GEV_STATUS GEV_STATUS_NOT_IMPLEMENTED = 0x8001
 The request isn't supported by the device. More...
 
const GEV_STATUS GEV_STATUS_INVALID_PARAMETER = 0x8002
 At least one parameter provided in the command is invalid (or out of range) for the device. More...
 
const GEV_STATUS GEV_STATUS_INVALID_ADDRESS = 0x8003
 An attempt was made to access a non existent address space location. More...
 
const GEV_STATUS GEV_STATUS_WRITE_PROTECT = 0x8004
 The addressed register must not be written. More...
 
const GEV_STATUS GEV_STATUS_BAD_ALIGNMENT = 0x8005
 A badly aligned address offset or data size was specified. More...
 
const GEV_STATUS GEV_STATUS_ACCESS_DENIED = 0x8006
 An attempt was made to access an address location which is currently/momentary not accessible. This depends on the current state of the device node. More...
 
const GEV_STATUS GEV_STATUS_BUSY = 0x8007
 A required resource to service the request isn't currently available. The request may be retried. More...
 
const GEV_STATUS GEV_STATUS_PACKET_UNAVAILABLE = 0x800C
 The request packet is not available anymore. More...
 
const GEV_STATUS GEV_STATUS_DATA_OVERRUN = 0x800D
 Internal memory of device overrun (typically for image acquisition) More...
 
const GEV_STATUS GEV_STATUS_INVALID_HEADER = 0x800E
 The message header is not valid. Some of its fields do not match the specificiation. More...
 
const GEV_STATUS GEV_STATUS_ACTION_LATE = 0x8016
 The requested scheduled action command was requested at a time that is already past. Only available starting with GEV 2.0 when an action_time is specified. More...
 
const GEV_STATUS GEV_STATUS_ERROR = 0x8FFF
 Generic error. Try to avoid and use a more descriptive status code from list above. More...
 
const uint16_t eeDISCOVERY_CMD = 0x0002
 Device Discovery request (mandatory) More...
 
const uint16_t eeFORCEIP_CMD = 0x0004
 Force an IP address request (mandatory) More...
 
const uint16_t eePACKETRESEND_CMD = 0x0040
 Packet resend request (recommended) More...
 
const uint16_t eeREADREG_CMD = 0x0080
 Read Register request (mandatory) More...
 
const uint16_t eeWRITEREG_CMD = 0x0082
 Write Register request (mandatory) More...
 
const uint16_t eeREADMEM_CMD = 0x0084
 Read Memory request (mandatory) More...
 
const uint16_t eeWRITEMEM_CMD = 0x0086
 Write Memory request (mandatory) More...
 
const uint16_t eeDISCOVERY_ACK = 0x0003
 
const uint16_t eeFORCEIP_ACK = 0x0005
 
const uint16_t eeREADREG_ACK = 0x0081
 
const uint16_t eeWRITEREG_ACK = 0x0083
 
const uint16_t eeREADMEM_ACK = 0x0085
 
const uint16_t eeWRITEMEM_ACK = 0x0087
 
const uint8_t GVCP_FLAG_ACKREQ = 0x01
 The recipient of this command is required to send an acknowledge message. More...
 
const uint8_t GVCP_FLAG_DISCOVERY_BCAST = 0x10
 For DISCOVERY_CMD the ACK should be broadcast. More...
 
const uint8_t GVCP_FLAG_FORCEIP_BCAST = 0x10
 For DISCOVERY_CMD the ACK should be broadcast. More...
 
const int GVCP_MAX_WRITEMEM_BYTES = 536
 
const int DISCOVERY_ACK_PAYLOAD_SIZE = sizeof(DiscoveryInfo)
 
const uint16_t READMEM_MAXLEN = GVCP_MAX_DATAGRAM_SIZE
 
const uint16_t GEV_FLAG_PREVIOUS_BLOCK_DROPPED = 0x0002
 

Macro Definition Documentation

◆ ACQUISITION_MODE_CONTINUOUS

#define ACQUISITION_MODE_CONTINUOUS   1

◆ ACQUISITION_MODE_MULTIPLE

#define ACQUISITION_MODE_MULTIPLE   3

◆ ACQUISITION_MODE_SINGLE

#define ACQUISITION_MODE_SINGLE   2

◆ GEV_MAJOR_VERSION

#define GEV_MAJOR_VERSION   0x0002

◆ GEV_MINOR_VERSION

#define GEV_MINOR_VERSION   0x0000

◆ GVCP_HEADER_SIZE

#define GVCP_HEADER_SIZE   8

◆ GVCP_MAX_DATAGRAM_SIZE

#define GVCP_MAX_DATAGRAM_SIZE   576

◆ IP_UDP_HEADER_SIZE

#define IP_UDP_HEADER_SIZE   28

◆ MAX_GVSP_BUFFER_LENGTH

#define MAX_GVSP_BUFFER_LENGTH   65536

Typedef Documentation

◆ GEV_STATUS

typedef uint16_t GEV_STATUS

Variable Documentation

◆ DISCOVERY_ACK_PAYLOAD_SIZE

const int DISCOVERY_ACK_PAYLOAD_SIZE = sizeof(DiscoveryInfo)

◆ eeDISCOVERY_ACK

const uint16_t eeDISCOVERY_ACK = 0x0003

◆ eeDISCOVERY_CMD

const uint16_t eeDISCOVERY_CMD = 0x0002

Device Discovery request (mandatory)

◆ eeFORCEIP_ACK

const uint16_t eeFORCEIP_ACK = 0x0005

◆ eeFORCEIP_CMD

const uint16_t eeFORCEIP_CMD = 0x0004

Force an IP address request (mandatory)

◆ eePACKETRESEND_CMD

const uint16_t eePACKETRESEND_CMD = 0x0040

Packet resend request (recommended)

◆ eeREADMEM_ACK

const uint16_t eeREADMEM_ACK = 0x0085

◆ eeREADMEM_CMD

const uint16_t eeREADMEM_CMD = 0x0084

Read Memory request (mandatory)

◆ eeREADREG_ACK

const uint16_t eeREADREG_ACK = 0x0081

◆ eeREADREG_CMD

const uint16_t eeREADREG_CMD = 0x0080

Read Register request (mandatory)

◆ eeWRITEMEM_ACK

const uint16_t eeWRITEMEM_ACK = 0x0087

◆ eeWRITEMEM_CMD

const uint16_t eeWRITEMEM_CMD = 0x0086

Write Memory request (mandatory)

◆ eeWRITEREG_ACK

const uint16_t eeWRITEREG_ACK = 0x0083

◆ eeWRITEREG_CMD

const uint16_t eeWRITEREG_CMD = 0x0082

Write Register request (mandatory)

◆ GEV_FLAG_PREVIOUS_BLOCK_DROPPED

const uint16_t GEV_FLAG_PREVIOUS_BLOCK_DROPPED = 0x0002

◆ GEV_STATUS_ACCESS_DENIED

const GEV_STATUS GEV_STATUS_ACCESS_DENIED = 0x8006

An attempt was made to access an address location which is currently/momentary not accessible. This depends on the current state of the device node.

◆ GEV_STATUS_ACTION_LATE

const GEV_STATUS GEV_STATUS_ACTION_LATE = 0x8016

The requested scheduled action command was requested at a time that is already past. Only available starting with GEV 2.0 when an action_time is specified.

◆ GEV_STATUS_BAD_ALIGNMENT

const GEV_STATUS GEV_STATUS_BAD_ALIGNMENT = 0x8005

A badly aligned address offset or data size was specified.

◆ GEV_STATUS_BUSY

const GEV_STATUS GEV_STATUS_BUSY = 0x8007

A required resource to service the request isn't currently available. The request may be retried.

◆ GEV_STATUS_DATA_OVERRUN

const GEV_STATUS GEV_STATUS_DATA_OVERRUN = 0x800D

Internal memory of device overrun (typically for image acquisition)

◆ GEV_STATUS_ERROR

const GEV_STATUS GEV_STATUS_ERROR = 0x8FFF

Generic error. Try to avoid and use a more descriptive status code from list above.

◆ GEV_STATUS_INVALID_ADDRESS

const GEV_STATUS GEV_STATUS_INVALID_ADDRESS = 0x8003

An attempt was made to access a non existent address space location.

◆ GEV_STATUS_INVALID_HEADER

const GEV_STATUS GEV_STATUS_INVALID_HEADER = 0x800E

The message header is not valid. Some of its fields do not match the specificiation.

◆ GEV_STATUS_INVALID_PARAMETER

const GEV_STATUS GEV_STATUS_INVALID_PARAMETER = 0x8002

At least one parameter provided in the command is invalid (or out of range) for the device.

◆ GEV_STATUS_NOT_IMPLEMENTED

const GEV_STATUS GEV_STATUS_NOT_IMPLEMENTED = 0x8001

The request isn't supported by the device.

◆ GEV_STATUS_PACKET_UNAVAILABLE

const GEV_STATUS GEV_STATUS_PACKET_UNAVAILABLE = 0x800C

The request packet is not available anymore.

◆ GEV_STATUS_SUCCESS

const GEV_STATUS GEV_STATUS_SUCCESS = 0x0000

Requested operation was completed successfully.

◆ GEV_STATUS_WRITE_PROTECT

const GEV_STATUS GEV_STATUS_WRITE_PROTECT = 0x8004

The addressed register must not be written.

◆ GVCP_FLAG_ACKREQ

const uint8_t GVCP_FLAG_ACKREQ = 0x01

The recipient of this command is required to send an acknowledge message.

These constants define the bits in the GVCP header (tsGvcpCmdHdr) flags field.

Note
The GigE specification uses "MSB 0 bit numbering", therefore for a byte set to 0x08 bit 7 is set, for a uint32_t set to 0x0001 bit 15 is set.
See also
https://en.wikipedia.org/wiki/Bit_numbering

◆ GVCP_FLAG_DISCOVERY_BCAST

const uint8_t GVCP_FLAG_DISCOVERY_BCAST = 0x10

For DISCOVERY_CMD the ACK should be broadcast.

◆ GVCP_FLAG_FORCEIP_BCAST

const uint8_t GVCP_FLAG_FORCEIP_BCAST = 0x10

For DISCOVERY_CMD the ACK should be broadcast.

◆ GVCP_HEADER_KEY

const uint8_t GVCP_HEADER_KEY = 0x42

GVCP header key to identify GVCP packets.

◆ GVCP_MAX_WRITEMEM_BYTES

const int GVCP_MAX_WRITEMEM_BYTES = 536

◆ GVCP_PORT

const uint16_t GVCP_PORT = 3956

◆ GVSP_DFLT_PKT_SIZE

const int GVSP_DFLT_PKT_SIZE = 1250

◆ READMEM_MAXLEN

const uint16_t READMEM_MAXLEN = GVCP_MAX_DATAGRAM_SIZE