IEEE1588-2008 Windows下调试软件开发逐进 2

为了在代码中统一使用PTP的数据类型(UInterger32、UInteger48之类),于是引入了文件datatypes_dep.h,在其中将uchar_t、uint32_t等数据类型映射为UInteger8、UInteger32等,这样在datatypes.h中,应该直接使用PTP数据类型,杜绝使用非PTP数据类型。

引入datatypes_dep.h的更多解释是,不同的操作系统版本、或平台,有各自不同的数据类型集,例如在winsock2中定义了u_char、u_short之类,如果不能使用winsock2,就不能使用它定义的数据类型集了。也就是说这是一个对外界有依赖的地方,那么将其作为X_dep.h/cpp文件,便于移植。

IEEE1588-2008与IEEE1588-2002的一个区别是,前者引入了一些新的数据结构,例如Enumeration4、UInteger48等,包含4-bits、48-bits等非常规数据类型,在数据结构定义的时候需要用到一些特殊的语法,例如:

   1: typedef struct {
   2:     UInteger8 messageType:4, transportSpecific:4;; /*uses bit 0~3, bit 4~7 is transportSpecific*/
   3:     ......
   4: };
posted @ 2009-10-14 15:12  黄汉  阅读(413)  评论(0编辑  收藏  举报