Go to the documentation of this file.00001
00026 #ifndef ODVA_ETHERNETIP_EIP_TYPES_H
00027 #define ODVA_ETHERNETIP_EIP_TYPES_H
00028
00029 #include <stdint.h>
00030
00031 #define EIP_PROTOCOL_VERSION 1
00032
00033
00034 typedef bool EIP_BOOL;
00035 typedef uint8_t EIP_BYTE;
00036 typedef uint8_t EIP_USINT;
00037 typedef int8_t EIP_SINT;
00038 typedef uint16_t EIP_WORD;
00039 typedef uint16_t EIP_UINT;
00040 typedef int16_t EIP_INT;
00041 typedef uint32_t EIP_DWORD;
00042 typedef uint32_t EIP_UDINT;
00043 typedef int32_t EIP_DINT;
00044
00045 typedef enum
00046 {
00047 EIP_BOOL_CODE = 0xC1,
00048 EIP_BYTE_CODE = 0xD1,
00049 EIP_USINT_CODE = 0xC6,
00050 EIP_SINT_CODE = 0xC2,
00051 EIP_WORD_CODE = 0xD2,
00052 EIP_UINT_CODE = 0xC7,
00053 EIP_INT_CODE = 0xC3,
00054 EIP_DWORD_CODE = 0xD3,
00055 EIP_UDINT_CODE = 0xC8,
00056 EIP_DINT_CODE = 0xC4,
00057 } EIP_TYPE_CODE;
00058
00059 typedef enum
00060 {
00061 EIP_CMD_NOP = 0x0000,
00062 EIP_CMD_LIST_SERVICES = 0x0004,
00063 EIP_CMD_LIST_IDENTITY = 0x0063,
00064 EIP_CMD_LIST_INTERFACES = 0x0064,
00065 EIP_CMD_REGISTER_SESSION = 0x0065,
00066 EIP_CMD_UNREGISTER_SESSION = 0x0066,
00067 EIP_CMD_SEND_RR_DATA = 0x006F,
00068 EIP_CMD_SEND_UNIT_DATA = 0x0070,
00069 EIP_CMD_INDICATE_STATUS = 0x0072,
00070 EIP_CMD_CANCEL = 0x0073,
00071 } EIP_CMD_T;
00072
00073 typedef enum
00074 {
00075 EIP_STATUS_SUCCESS = 0x0000,
00076 EIP_STATUS_INVALID_CMD = 0x0001,
00077 EIP_STATUS_OUT_OF_MEMORY = 0x0002,
00078 EIP_STATUS_INVALI_DATA = 0x0003,
00079 EIP_STATUS_INVALID_SESSION = 0x0064,
00080 EIP_STATUS_INVALID_LENGTH = 0x0065,
00081 EIP_STATUS_INVALID_VERSION = 0x0069,
00082 } EIP_STATUS_T;
00083
00084 typedef enum
00085 {
00086 EIP_ITEM_NULL = 0x0000,
00087 EIP_ITEM_LIST_IDENTITY_RESPONSE = 0x000C,
00088 EIP_ITEM_CONNECTION_BASED = 0x00A1,
00089 EIP_ITEM_CONNECTED_TRANSPORT_PACKET = 0x00B1,
00090 EIP_ITEM_UNCONNECTED_MESSAGE = 0x00B2,
00091 EIP_ITEM_LIST_SERVICES_RESPONSE = 0x0100,
00092 EIP_ITEM_SOCKADDR_INFO_ORIGINATOR = 0x8000,
00093 EIP_ITEM_SOCKADDR_INFO_TARGET = 0x8001,
00094 EIP_ITEM_SEQ_ADDRESS = 0x8002,
00095 } EIP_ITEM_T;
00096
00097 typedef struct
00098 {
00100 EIP_USINT assembly_id;
00102 EIP_UINT buffer_size;
00104 EIP_UDINT rpi;
00105 } EIP_CONNECTION_INFO_T;
00106
00107 #endif // ODVA_ETHERNETIP_EIP_TYPES_H