收藏官网首页
查看: 11288|回复: 3

版主大大,快帮忙看看。。

8

主题

25

帖子

82

积分

注册会员

Rank: 2

积分
82
跳转到指定楼层
楼主
发表于 2016-3-17 11:55:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
  1. void        CmdSendMcuP0(uint8_t *buf)
  2. {
  3.         uint8_t                tmp_cmd_buf;
  4.        
  5.         if(buf == NULL) return ;
  6.        
  7.         memcpy(&m_w2m_controlMcu, buf, sizeof(w2m_controlMcu));
  8.         m_w2m_controlMcu.status_w.motor_speed = exchangeBytes(m_w2m_controlMcu.status_w.motor_speed);
  9.        
  10.         //上报状态
  11.         if(m_w2m_controlMcu.sub_cmd == SUB_CMD_REQUIRE_STATUS) ReportStatus(REQUEST_STATUS);
  12.        
  13.         //控制命令,操作字段顺序依次是: R_on/off, multi Color, R, G, B, motor
  14.         if(m_w2m_controlMcu.sub_cmd == SUB_CMD_CONTROL_MCU){
  15.                 //先回复确认,表示收到合法的控制命令了?
  16.                 SendCommonCmd(CMD_SEND_MCU_P0_ACK, m_w2m_controlMcu.head_part.sn);
  17.                
  18.                 //控制命令标志按照协议表明哪个操作字段有效(对应的位为1)want to control LED R
  19.                 if((m_w2m_controlMcu.cmd_tag & 0x01) == 0x01)
  20.                 {
  21.                         //0 bit, 1: R on, 0: R off;
  22.                         if((m_w2m_controlMcu.status_w.cmd_byte & 0x01) == 0x01)  
  23.                         {
  24.                                 LED_RGB_Control(254, 0, 0);
  25.                                 m_m2w_mcuStatus.status_w.cmd_byte = (m_m2w_mcuStatus.status_w.cmd_byte | 0x01);
  26.                         }
  27.                         else
  28.                         {
  29.                                 LED_RGB_Control(0, 0, 0);
  30.                                 m_m2w_mcuStatus.status_w.cmd_byte = (m_m2w_mcuStatus.status_w.cmd_byte & 0xFE);
  31.                         }
  32.                 }
复制代码
这是gokit一代宠物屋中的一段代码,如上代码中if((m_w2m_controlMcu.status_w.cmd_byte & 0x01) == 0x01)

m_m2w_mcuStatus.status_w.cmd_byte = (m_m2w_mcuStatus.status_w.cmd_byte | 0x01);



这些是什么意思啊,能不能帮忙解释一下

3

主题

151

帖子

478

积分

版主

Rank: 7Rank: 7Rank: 7

积分
478
QQ
沙发
发表于 2016-3-17 13:17:28 | 只看该作者
这是协议里面的一个判断。建议对于协议可以不用死抠。会用就行,因为就算要写协议不是看懂别人写得协议就能写了很好的协议了(还有看懂别人的协议比自己写一套协议花的时间还长得多得多)。只要会写基础的协议慢慢的练习,牛逼的协议你就会写了

8

主题

25

帖子

82

积分

注册会员

Rank: 2

积分
82
板凳
 楼主| 发表于 2016-3-17 15:45:11 | 只看该作者
never 发表于 2016-3-17 13:17
这是协议里面的一个判断。建议对于协议可以不用死抠。会用就行,因为就算要写协议不是看懂别人写得协议就能 ...

不是,,我要添加一个继电器进去, 然后后面每个字段就变了,不是要更改么,感觉这样好麻烦,后面的版本是不是不用这样了?

3

主题

151

帖子

478

积分

版主

Rank: 7Rank: 7Rank: 7

积分
478
QQ
地板
发表于 2016-3-18 10:05:21 | 只看该作者
协议应该是不用改的,只需要你改定义的那个数组。和解析数据包。我当时时间不够就没怎么管,直接定义成数值型。你可以把它定义成数值型的,这样简单一点。也好弄一点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表