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

Function GetPathLogicalSegmentExtendedLogicalType

source/src/cip/cipepath.c:379–404  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377}
378
379LogicalSegmentExtendedLogicalType GetPathLogicalSegmentExtendedLogicalType(
380 const unsigned char *const cip_path) {
381/* OPENER_ASSERT(LOGICAL_SEGMENT_TYPE_EXTENDED_kLogicalSegmentLogicalTypeExtendedLogicalMessageValue == GetPathLogicalSegmentLogicalType(cip_path),
382 "Trying to extract non-existent extended logical type") */
383 OPENER_ASSERT( kLogicalSegmentLogicalTypeExtendedLogical == GetPathLogicalSegmentLogicalType(
384 cip_path) )
385 const unsigned int extended_logical_type = *(cip_path + 1);
386 LogicalSegmentExtendedLogicalType result =
387 kLogicalSegmentExtendedLogicalTypeReserved;
388 switch(extended_logical_type) {
389 case LOGICAL_SEGMENT_EXTENDED_TYPE_ARRAY_INDEX: result =
390 kLogicalSegmentExtendedLogicalTypeArrayIndex; break;
391 case LOGICAL_SEGMENT_EXTENDED_TYPE_INDIRECT_ARRAY_INDEX: result =
392 kLogicalSegmentExtendedLogicalTypeIndirectArrayIndex; break;
393 case LOGICAL_SEGMENT_EXTENDED_TYPE_BIT_INDEX: result =
394 kLogicalSegmentExtendedLogicalTypeBitIndex; break;
395 case LOGICAL_SEGMENT_EXTENDED_TYPE_INDIRECT_BIT_INDEX: result =
396 kLogicalSegmentExtendedLogicalTypeIndirectBitIndex; break;
397 case LOGICAL_SEGMENT_EXTENDED_TYPE_STRUCTURE_MEMBER_NUMBER: result =
398 kLogicalSegmentExtendedLogicalTypeStructureMemberNumber; break;
399 case LOGICAL_SEGMENT_EXTENDED_TYPE_STRUCTURE_MEMBER_HANDLE: result =
400 kLogicalSegmentExtendedLogicalTypeStructureMemberHandle; break;
401 default: result = kLogicalSegmentExtendedLogicalTypeReserved;
402 }
403 return result;
404}
405
406LogicalSegmentSpecialTypeLogicalFormat
407GetPathLogicalSegmentSpecialTypeLogicalType(const unsigned char *const cip_path)

Callers 1

TESTFunction · 0.85

Calls 1

Tested by 1

TESTFunction · 0.68