OpENer - Open Source EtherNet/IP(TM) I/O Target Stack  2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cpf.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2009, Rockwell Automation, Inc.
3  * All rights reserved.
4  *
5  ******************************************************************************/
6 #ifndef OPENER_CPF_H_
7 #define OPENER_CPF_H_
8 
9 #include "typedefs.h"
10 #include "ciptypes.h"
11 #include "encap.h"
12 
24 typedef enum {
34 } CipItemId;
35 
36 typedef struct {
39 } AddressData;
40 
41 typedef struct {
45 } AddressItem;
46 
47 typedef struct {
51 } DataItem;
52 
56 typedef struct {
62  CipUsint nasin_zero[8];
64 
65 /* this one case of a CPF packet is supported:*/
67 typedef struct {
71  SocketAddressInfoItem address_info_item[2];
73 
83 int NotifyCommonPacketFormat(EncapsulationData *const received_data,
84  const struct sockaddr *const originator_address,
85  ENIPMessage *const outgoing_message);
86 
98  const EncapsulationData *const received_data,
99  const struct sockaddr *const originator_address,
100  ENIPMessage *const outgoing_message);
101 
112  const EipUint8 *data,
113  size_t data_length,
114  CipCommonPacketFormatData *common_packet_format_data);
115 
124  const CipCommonPacketFormatData *const common_packet_format_data_item,
125  ENIPMessage *const message);
126 
127 
139  const CipMessageRouterResponse *const message_router_response,
140  const CipCommonPacketFormatData *const common_packet_format_data_item,
141  ENIPMessage *const outgoing_message);
142 
149 
150 #endif /* OPENER_CPF_H_ */
CipInt sin_family
Definition: cpf.h:59
EipUint16 type_id
Definition: cpf.h:48
EipStatus CreateCommonPacketFormatStructure(const EipUint8 *data, size_t data_length, CipCommonPacketFormatData *common_packet_format_data)
Creates Common Packet Format structure out of data.
Definition: cpf.c:204
EipUint16 length
Definition: cpf.h:49
DataItem data_item
Definition: cpf.h:70
CipCommonPacketFormatData g_common_packet_format_data_item
Data storage for the any CPF data Currently we are single threaded and need only one CPF at the time...
Definition: cpf.c:24
CipUint length
Definition: cpf.h:58
int16_t CipInt
Definition: typedefs.h:50
AddressData data
Definition: cpf.h:44
CPF Sockaddr Item.
Definition: cpf.h:56
CipUint sin_port
Definition: cpf.h:60
CipUint type_id
Definition: cpf.h:57
CipUdint sin_addr
Definition: cpf.h:61
int AssembleIOMessage(const CipCommonPacketFormatData *const common_packet_format_data_item, ENIPMessage *const message)
Definition: cpf.c:758
CipUint length
Definition: cpf.h:43
EipStatus
EIP stack status enum.
Definition: typedefs.h:93
uint8_t EipUint8
Definition: typedefs.h:32
uint32_t EipUint32
Definition: typedefs.h:34
Definition: cpf.h:47
int NotifyConnectedCommonPacketFormat(const EncapsulationData *const received_data, const struct sockaddr *const originator_address, ENIPMessage *const outgoing_message)
Definition: cpf.c:91
uint8_t CipUsint
Definition: typedefs.h:46
EipUint32 sequence_number
Definition: cpf.h:38
EipUint16 item_count
Definition: cpf.h:68
AddressItem address_item
Definition: cpf.h:69
This file contains the public interface of the encapsulation layer.
int AssembleLinearMessage(const CipMessageRouterResponse *const message_router_response, const CipCommonPacketFormatData *const common_packet_format_data_item, ENIPMessage *const outgoing_message)
Copy data from message_router_response struct and common_packet_format_data_item into ENIPMessage str...
Definition: cpf.c:649
EipUint8 * data
Definition: cpf.h:50
CipUint type_id
Definition: cpf.h:42
uint32_t CipUdint
Definition: typedefs.h:48
uint16_t CipUint
Definition: typedefs.h:47
EipUint32 connection_identifier
Definition: cpf.h:37
CIP Message Router Response.
Definition: ciptypes.h:199
A variant of a CPF packet, including item count, one address item, one data item, and two Sockaddr In...
Definition: cpf.h:67
uint16_t EipUint16
Definition: typedefs.h:33
CipItemId
CPF is Common Packet Format CPF packet := <number of items> {<items>} item := <TypeID> <Length> <data...
Definition: cpf.h:24
int NotifyCommonPacketFormat(EncapsulationData *const received_data, const struct sockaddr *const originator_address, ENIPMessage *const outgoing_message)
Definition: cpf.c:26