MCPcopy Create free account
hub / github.com/EIPStackGroup/OpENer / GetPathSegmentType

Function GetPathSegmentType

source/src/cip/cipepath.c:76–111  ·  view source on GitHub ↗

Path Segment ***/

Source from the content-addressed store, hash-verified

74
75/*** Path Segment ***/
76SegmentType GetPathSegmentType(const CipOctet *const cip_path) {
77 const unsigned int kSegmentTypeMask = 0xE0;
78 const unsigned int segment_type = *cip_path & kSegmentTypeMask;
79 SegmentType result = kSegmentTypeReserved;
80 switch (segment_type) {
81 case SEGMENT_TYPE_PORT_SEGMENT:
82 result = kSegmentTypePortSegment;
83 break;
84 case SEGMENT_TYPE_LOGICAL_SEGMENT:
85 result = kSegmentTypeLogicalSegment;
86 break;
87 case SEGMENT_TYPE_NETWORK_SEGMENT:
88 result = kSegmentTypeNetworkSegment;
89 break;
90 case SEGMENT_TYPE_SYMBOLIC_SEGMENT:
91 result = kSegmentTypeSymbolicSegment;
92 break;
93 case SEGMENT_TYPE_DATA_SEGMENT:
94 result = kSegmentTypeDataSegment;
95 break;
96 case SEGMENT_TYPE_DATA_TYPE_CONSTRUCTED:
97 result = kSegmentTypeDataTypeConstructed;
98 break;
99 case SEGMENT_TYPE_DATA_TYPE_ELEMENTARTY:
100 result = kSegmentTypeDataTypeElementary;
101 break;
102 case SEGMENT_TYPE_SEGMENT_RESERVED:
103 result = kSegmentTypeReserved;
104 break;
105 default:
106 OPENER_ASSERT(
107 "Invalid Segment type in the message! We should never come here!\n")
108 break;
109 }
110 return result;
111}
112
113void SetPathSegmentType(SegmentType segment_type,
114 unsigned char *const cip_path) {

Calls

no outgoing calls

Tested by 1

TESTFunction · 0.68