博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
采用enum定义操作码的2B错误总结
阅读量:6913 次
发布时间:2019-06-27

本文共 862 字,大约阅读时间需要 2 分钟。

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

 

转载于:https://www.cnblogs.com/shanwenbin/archive/2012/12/26/2834964.html

你可能感兴趣的文章
Spring测试框架JUnit4.4
查看>>
openSUSE 12.1下搭建Web服务器
查看>>
Contact Manager Web API 示例[2] Web API Routing
查看>>
用luasocket读取双色球中奖号码
查看>>
C#中ref和out的使用小结
查看>>
Extjs4 中的gird
查看>>
错排-HDU 2049 递推的应用
查看>>
参数化查询为什么能够防止SQL注入
查看>>
AlertDialog.Builder弹出对话框
查看>>
HDUOJ -----1686
查看>>
pomelo组件..
查看>>
[问题2014S03] 解答
查看>>
mybatis入门例子
查看>>
[LeetCode] Construct Binary Tree from Inorder and Postorder Traversal
查看>>
Sencha touch 初体验
查看>>
锋利的jQuery-1--解决jquery库和其他库的冲突
查看>>
SSH框架
查看>>
第1章 游戏之乐——小飞的电梯调度算法
查看>>
Codeforces Round #256 (Div. 2) C. Painting Fence 或搜索DP
查看>>
component to string 自定义窗体
查看>>