+               #define TMC_MESSAGEID_DEV_DEP_MSG_OUT         0x01\r
+               #define TMC_MESSAGEID_DEV_DEP_MSG_IN          0x02\r
+               #define TMC_MESSAGEID_DEV_VENDOR_OUT          0x7E\r
+               #define TMC_MESSAGEID_DEV_VENDOR_IN           0x7F\r
+\r
+       /* Type Defines */\r
+               typedef struct\r
+               {\r
+                       uint8_t  Status;\r
+                       uint8_t  Reserved;\r
+\r
+                       uint16_t TMCVersion;\r
+                       \r
+                       struct\r
+                       {\r
+                               unsigned char ListenOnly             : 1;\r
+                               unsigned char TalkOnly               : 1;\r
+                               unsigned char PulseIndicateSupported : 1;\r
+                               unsigned char Reserved               : 5;\r
+                       } Interface;\r
+                       \r
+                       struct\r
+                       {\r
+                               unsigned char SupportsAbortINOnMatch : 1;\r
+                               unsigned char Reserved               : 7;\r
+                       } Device;\r
+                       \r
+                       uint8_t Reserved2[6];\r
+                       uint8_t Reserved3[12];                  \r
+               } TMC_Capabilities_t;\r
+               \r
+               typedef struct\r
+               {\r
+                       unsigned char LastMessageTransaction : 1;\r
+                       unsigned char Reserved               : 7;\r
+\r
+                       uint8_t Reserved2[3];\r
+               } TMC_DevOUTMessageHeader_t;\r
+\r
+               typedef struct\r
+               {\r
+                       unsigned char TermCharEnabled        : 1;\r
+                       unsigned char Reserved               : 7;\r
+\r
+                       uint8_t TermChar;\r
+                       uint8_t Reserved2[2];\r
+               } TMC_DevINMessageHeader_t;\r
+\r
+               typedef struct\r
+               {\r
+                       uint8_t  MessageID;\r
+                       uint8_t  Tag;\r
+                       uint8_t  InverseTag;\r
+                       uint8_t  Reserved;\r
+                       uint32_t TransferSize;\r
+                       \r
+                       union\r
+                       {\r
+                               TMC_DevOUTMessageHeader_t DeviceOUT;\r
+                               TMC_DevINMessageHeader_t  DeviceIN;\r
+                               uint32_t                  VendorSpecific;\r
+                       } MessageIDSpecific;\r
+               } TMC_MessageHeader_t;\r
+\r