每种协议都是不一样的,比如是日立的协议吧,就是通常说的一种,长按时发的第一个32位是对应的地址码,命令码及其反码,但是按键一直按下时,则每隔固定时间发送的是重复码,这个重复是固定一组编码,与你按键对应的的地址和命令没有任何关系,也就是说任何长按的重复码都是一样的;
而连续按则不同,按键松开后再按,则再次发送对应地址码,命令码及其反码,不发送重复码。
程序可以根据具体的编码时序分支处理,若是连续按,则跳入一个分支,否则跳入长按处理,长按里面判断很简单,则将上一次的结果重复一次即可。
市面上大多分2种遥控器,一种是32位的(有 类型1、类型2、键值、键值反码)一种是12位的(高4位类型、低8位键值)
第一种短按是发类型1、类型2、键值、键值反码;长按一种是发重复码,所有重复码都一样的,一种是重复发类型1、类型2、键值、键值反码
第二种短按是发高4位类型、低8位键值,长按发高4位类型、低8位键值
2类、3种,这是市面上大多遥控器的类型
在接收完完整的32或12位数据后在判断是否有重复码就可以判断短按或长按了,连续按和短按软件处理一样,实际就是短按和长按两种