41 struct sockaddr *originator_address,
42 const int encapsulation_session);
54 .forced_interface_speed =
62 .
capability_bits = 1, .speed_duplex_options = { .speed_duplex_array_count =
65 &speed_duplex_object }
84 if (ethernet_link_class != NULL) {
123 int return_value = 0;
124 for (
int i = 0; i < 11; i++) {
132 int return_value = 0;
133 for (
int i = 0; i < 12; i++) {
141 int return_value = 0;
151 int return_value = 0;
180 struct sockaddr *originator_address,
181 const int encapsulation_session) {
190 | message_router_request->
service);
197 if ( (NULL != attribute) && (NULL != attribute->
data) ) {
198 uint8_t get_bit_mask = 0;
200 get_bit_mask = (instance->cip_class->get_all_bit_mask[
CalculateIndex(
204 get_bit_mask = (instance->cip_class->get_single_bit_mask[
CalculateIndex(
208 if ( 0 != ( get_bit_mask & ( 1 << (attribute_number % 8) ) ) ) {
212 switch (attribute_number) {
235 message_router_response,
237 encapsulation_session);
CipEthernetLinkObject g_ethernet_link
void InsertAttribute(CipInstance *const instance, const EipUint16 attribute_number, const EipUint8 cip_type, void *const data, const EipByte cip_flags)
Insert an attribute in an instance of a CIP class.
CipEthernetLinkSpeedDuplexArrayEntry speed_duplex_object
Tracing infrastructure for OpENer.
CipUdint dummy_attribute_udint
CipEthernetLinkInterfaceControl interface_control
CipShortString interface_label
CipUint interface_duplex_mode
EipUint8 physical_address[6]
int EncodeInterfaceCapability(EipUint8 **pa_acMsg)
int EncodeMediaCounters(EipUint8 **pa_acMsg)
CIP Message Router Request.
Class is a subclass of Instance.
Responsible for Endianess conversion.
size_t CalculateIndex(EipUint16 attribute_number)
Calculates Byte-Index of Attribute.
int EncodeInterfaceControl(EipUint8 **pa_acMsg)
CipEthernetLinkInterfaceCapability interface_capability
struct speed_duplex_array_entry CipEthernetLinkSpeedDuplexArrayEntry
EipStatus CipEthernetLinkInit()
Initialize the Ethernet Link Objects data.
EipStatus GetAttributeSingleEthernetLink(CipInstance *RESTRICT const instance, CipMessageRouterRequest *const message_router_request, CipMessageRouterResponse *const message_router_response, struct sockaddr *originator_address, const int encapsulation_session)
CipUsint dummy_attribute_usint
Configures the MAC address of the Ethernet Link object*.
CipClass * CreateCipClass(const EipUint32 class_id, const int number_of_class_attributes, const EipUint32 highest_class_attribute_number, const int number_of_class_services, const int number_of_instance_attributes, const EipUint32 highest_instance_attribute_number, const int number_of_instance_services, const int number_of_instances, char *name, const EipUint16 revision, void(*InitializeCipClass)(CipClass *))
EipStatus
EIP stack status enum.
void InsertService(const CipClass *const class, const EipUint8 service_number, const CipServiceFunction service_function, char *const service_name)
Insert a service in an instance of a CIP object.
EipStatus GetAttributeAll(CipInstance *instance, CipMessageRouterRequest *message_router_request, CipMessageRouterResponse *message_router_response, struct sockaddr *originator_address, const int encapsulation_session)
Generic implementation of the GetAttributeAll CIP service.
struct speed_duplex_array_entry * speed_duplex_array
EipUint32 interface_speed
#define OPENER_TRACE_INFO(...)
EipStatus GetAttributeSingle(CipInstance *RESTRICT const instance, CipMessageRouterRequest *const message_router_request, CipMessageRouterResponse *const message_router_response, struct sockaddr *originator_address, const int encapsulation_session)
Generic implementation of the GetAttributeSingle CIP service.
int EncodeData(const EipUint8 cip_type, const void *const cip_data, EipUint8 **cip_message)
Produce the data according to CIP encoding onto the message buffer.
CipInstance * GetCipInstance(const CipClass *RESTRICT const cip_class, EipUint32 instance_number)
Get a pointer to an instance.
CipAttributeStruct * GetCipAttribute(const CipInstance *const instance, const EipUint16 attribute_number)
Get a pointer to an instance's attribute.
EipUint16 attribute_number
uint8_t EipByte
EIP Data type definitions.
struct speed_duplex_options speed_duplex_options
#define CIP_ETHERNETLINK_CLASS_CODE
CipUint forced_interface_speed
EipUint32 interface_flags
CIP Message Router Response.
struct speed_duplex_options CipEthernetLinkSpeedDuplexOptions
int EncodeInterfaceCounters(EipUint8 **pa_acMsg)
CipUsint speed_duplex_array_count
CipUsint size_of_additional_status