前段时间写了一个用于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;