Using an array instead of a message structure - intrepidcs API

In some programming environments (such as LabVIEW) it maybe inconvenient for you to access the message with a structure. In these cases you may use a byte array in place of the structure. Table 1 below lists the locations of message items in the byte array for a 64 bit version of the structure. The message structure is 8 byte aligned. Padding bytes are marked in black.

Table 1 - Position of Message Elements in the Byte Array

Byte#

Block#

Struct element

Type

0

0

StatusBitField

Int32

1

0

2

0

3

0

4

0

StatusBitField2

Int32

5

0

6

0

7

0

8

1

TimeHardware

UInt32

9

1

10

1

11

1

12

1

TimeHardware2

UInt32

13

1

14

1

15

1

16

2

TimeSystem

UInt32

17

2

18

2

19

2

20

2

TimeSystem2

UInt32

21

2

22

2

23

2

24

3

TimeStampHardwareID

Byte

25

3

TimeStampSystemID

Byte

26

3

NetworkID

Byte

27

3

NodeID

Byte

28

3

Protocol

Byte

29

3

MessagePieceID

Byte

30

3

ExtraDataPtrEnabled

Byte

31

3

NumberBytesHeader

Byte

32

4

NumberBytesData

Byte

33

4

PADDING

34

4

DescriptionID

Int16

35

4

36

4

ArbIDOrHeader

Int32

37

4

38

4

39

4

40

5

Data1

Byte

41

5

Data2

Byte

42

5

Data3

Byte

43

5

Data4

Byte

44

5

Data5

Byte

45

5

Data6

Byte

46

5

Data7

Byte

47

5

Data8

Byte

48

6

StatusBitField3

Int32

49

6

50

6

51

6

52

6

StatusBitField4

Int32

53

6

54

6

55

6

56

7

iExtraDataPtr

Void *

57

7

58

7

59

7

60

7

61

7

62

7

63

7

64

8

MiscData

Byte

65

8

PADDING

66

8

PADDING

67

8

PADDING

68

8

PADDING

69

8

PADDING

70

8

PADDING

71

8

PADDING