前段时间写了一个用于wince设备和pc间数据传输的模块,为了实现wince和pc间能方便的操作
所以在pc和wince设备间采用enum定义了一系列的操作码,操作码定义如下:

typedef enum
{
    FUNCCODE_NONE = 0, ///< 无
    FUNCCODE_GETID,    ///< 获取设备ID
    FUNCCODE_REBOOT,   ///< 重启设备
}FuncCode;

 但是问题来了由于wince设备和pc间的程序并不是同时发布的,由于需求的变更,pc的版本被更新了
在pc的操作中又添加了一个功能码,定义如下:

typedef enum
{
    FUNCCODE_NONE = 0,  ///< 无
    FUNCCODE_GEVERSION, ///< 获取设备ID
    FUNCCODE_GETID,     ///< 获取设备ID
    FUNCCODE_REBOOT,    ///< 重启设备
}FuncCode;

 接下来2B的问题就出现了,由于wince设备和pc间的程序并未同步发布,因此当用新版的pc端程序去操作带有旧版程序的设备时
虽然我们要采用FUNCCODE_GEVERSION去获取版本信息时,却对应的设备端操作码确是FUNCCODE_GETID操作返回的结果
为了让新旧版的程序能够兼容,因此将操作码定义成了如下的形式

typedef enum
{ 
    FUNCCODE_NONE       = 0x00, ///< 无
    FUNCCODE_GEVERSION  = 0x01, ///< 获取设备ID
    FUNCCODE_GETID      = 0x02, ///< 获取设备ID
    FUNCCODE_REBOOT     = 0x03, ///< 重启设备
}FuncCode;

 

posted on 2012-12-26 23:57  cqfuture  阅读(396)  评论(0编辑  收藏  举报