} else if ((*data) == AB_CIP_DATA_ABREV_STRUCT || (*data) == AB_CIP_DATA_ABREV_ARRAY ||(*data) == AB_CIP_DATA_FULL_STRUCT || (*data) == AB_CIP_DATA_FULL_ARRAY) {/* this is an aggregate type of some sort, the type info is variable length */int type_length =*(data + 1) + 2; /** MAGIC* add 2 to get the total length including* the type byte and the length byte.*/
#define AB_CIP_DATA_FULL_STRUCT ((uint8_t)0xA2) /* Data is a struct type descriptor */
Using tag string:
protocol=ab-eip&gateway=192.168.2.73&path=1,0&cpu=lgx&name=@tags
index 1: Tag name=Map:Local, tag instance ID=1, tag type=1069, element length
(in bytes) = 0, array dimensions = (0, 0, 0)
index 2: Tag name=Map:Discrete_IO, tag instance ID=2, tag type=1069, element
length (in bytes) = 0, array dimensions = (0, 0, 0)
index 3: Tag name=Local:1:C, tag instance ID=3, tag type=868f, element length
(in bytes) = 88, array dimensions = (0, 0, 0)
index 4: Tag name=Cxn:Data:68375461, tag instance ID=4, tag type=107e, element
length (in bytes) = 0, array dimensions = (0, 0, 0)
index 5: Tag name=Local:1:I, tag instance ID=5, tag type=8536, element length
(in bytes) = 8, array dimensions = (0, 0, 0)
index 6: Tag name=Local:1:O, tag instance ID=6, tag type=8ba1, element length
(in bytes) = 4, array dimensions = (0, 0, 0)
index 7: Tag name=Task:MainTask, tag instance ID=7, tag type=1070, element
length (in bytes) = 0, array dimensions = (0, 0, 0)
index 8: Tag name=Program:MainProgram, tag instance ID=8, tag type=1068,
element length (in bytes) = 0, array dimensions = (0, 0, 0)
index 9: Tag name=Test_Accum, tag instance ID=9, tag type=c4, element length
(in bytes) = 4, array dimensions = (0, 0, 0)
index 10: Tag name=Test_Accum_2, tag instance ID=a, tag type=c4, element length
(in bytes) = 4, array dimensions = (0, 0, 0)
index 11: Tag name=Test_Alarm, tag instance ID=b, tag type=8ffb, element length
(in bytes) = 152, array dimensions = (0, 0, 0)
index 12: Tag name=Test_Counter, tag instance ID=c, tag type=8f82, element
length (in bytes) = 12, array dimensions = (0, 0, 0)
index 13: Tag name=Test_String_1, tag instance ID=d, tag type=8fce, element
length (in bytes) = 88, array dimensions = (0, 0, 0)
index 14: Tag name=Test_UDT_Tag, tag instance ID=e, tag type=86c0, element
length (in bytes) = 116, array dimensions = (0, 0, 0)
index 15: Tag name=Test_UDT_2_Tag, tag instance ID=f, tag type=84a1, element
length (in bytes) = 4, array dimensions = (0, 0, 0)
index 16: Tag name=Alarm_Analog, tag instance ID=10, tag type=8ffa, element
length (in bytes) = 304, array dimensions = (0, 0, 0)
index 17: Tag name=Alarm_alarm, tag instance ID=11, tag type=8f8b, element
length (in bytes) = 96, array dimensions = (0, 0, 0)
index 18: Tag name=CounterArray, tag instance ID=12, tag type=af82, element
length (in bytes) = 12, array dimensions = (2, 0, 0)
index 19: Tag name=Test_Input_0, tag instance ID=13, tag type=c1, element
length (in bytes) = 1, array dimensions = (0, 0, 0)
index 20: Tag name=Test_String_2, tag instance ID=14, tag type=8fce, element
length (in bytes) = 88, array dimensions = (0, 0, 0)
index 21: Tag name=Test_String_3, tag instance ID=15, tag type=8fce, element
length (in bytes) = 88, array dimensions = (0, 0, 0)
index 22: Tag name=Test_String_4, tag instance ID=16, tag type=8fce, element
length (in bytes) = 88, array dimensions = (0, 0, 0)
index 23: Tag name=Test_Integer_Event_Tag, tag instance ID=17, tag type=c4,
element length (in bytes) = 4, array dimensions = (0, 0, 0)
index 24: Tag name=Test_Real_Event_Tag, tag instance ID=18, tag type=ca,
element length (in bytes) = 4, array dimensions = (0, 0, 0)
index 25: Tag name=Test_String_5, tag instance ID=19, tag type=8fce, element
length (in bytes) = 88, array dimensions = (0, 0, 0)
index 26: Tag name=Test_UDT, tag instance ID=1a, tag type=8f83, element length
(in bytes) = 12, array dimensions = (0, 0, 0)
index 27: Tag name=UDT_Test_Tag, tag instance ID=1b, tag type=8ee7, element
length (in bytes) = 16, array dimensions = (0, 0, 0)
index 28: Tag name=UDT_PDT_Timer_Tag, tag instance ID=1c, tag type=832e,
element length (in bytes) = 12, array dimensions = (0, 0, 0)
index 29: Tag name=UDT_PDT_Timer_X2, tag instance ID=1d, tag type=8ab9, element
length (in bytes) = 24, array dimensions = (0, 0, 0)
index 30: Tag name=UDT_with_arrays, tag instance ID=1e, tag type=84fd, element
length (in bytes) = 620, array dimensions = (0, 0, 0)
index 31: Tag name=DINTArray, tag instance ID=1f, tag type=20c4, element length
(in bytes) = 4, array dimensions = (5, 0, 0)