CN103546791A - 一种识别多种遥控器的方法、设备 - Google Patents
一种识别多种遥控器的方法、设备 Download PDFInfo
- Publication number
- CN103546791A CN103546791A CN201310481565.1A CN201310481565A CN103546791A CN 103546791 A CN103546791 A CN 103546791A CN 201310481565 A CN201310481565 A CN 201310481565A CN 103546791 A CN103546791 A CN 103546791A
- Authority
- CN
- China
- Prior art keywords
- infrared
- remote controller
- frame
- infrared remote
- agreement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Selective Calling Equipment (AREA)
Abstract
本发明实施例公开了一种识别多种遥控器的方法、设备。本发明涉及通信领域,采用按帧匹配红外遥控器协议的方法,使得一个机顶盒可以识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。本发明实施例提供的方法包括:接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
Description
技术领域
本发明涉及通信领域,尤其涉及一种识别多种遥控器的方法、设备。
背景技术
机顶盒应用领域不同,地方服务供应商所采用的红外遥控器及其协议并不相同,机顶盒芯片供应商所提供的软件包需要支持所有被采用的机顶盒遥控器以及需要具备一定的扩展性才能应对市场需求及市场变化。遥控器协议大致可以分为两类,一类是由有明显引导码头+固定位(bit)个数+结束码组成,例如:NEC简化重复码红外协议(NEC with simple repeat code,简称NEC simple)、NEC完全重复码红外协议(NEC with full repeat code,简称NEC full)和Philips RC-6红外协议(Philips RC-6,简称RC-6)等;另一类是由没有引导码+固定bit个数+结束码组成,例如:Philips RC-5红外协议(Philips RC-5,简称RC-5)、刷卡型遥控器协议等。
在现有技术中,遥控器发出的红外波形经单板红外接收头转换成高低电平信号后,由主芯片的输入脚输入主芯片,由主芯片中的中央处理器(Central Processing Unit,简称CPU)转发给Linux红外线遥控(LinuxInfrared Remote Control,简称LIRC)的驱动缓存,用户态守护进程(decoderdaemon)从驱动缓存中读出电平信号再结合配置文件(lircd.conf)解析成键值,然后通过套接字(socket)发送给应用程序。
发明人发现现有技术中至少存在以下问题:每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本。
发明内容
本发明实施例提供一种识别多种遥控器的方法、设备,采用按帧匹配红外遥控器协议的方法,使得一个机顶盒可以识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。
为达到上述目的,本发明实施例采用的技术方案是,
第一方面,提供了一种识别多种遥控器的方法,所述方法包括:
接收遥控器发送的红外波形;
将所述遥控器发送的红外波形转换为对应的高低电平对;
将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
将所述红外帧与已注册的红外遥控器协议进行匹配;
根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
在第一种可能的实现方式中,根据第一方面,
所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,可以包括:
将所述红外帧与所述第一类红外遥控器协议进行匹配;
若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
将所述红外帧与所述第二类红外遥控器协议进行匹配;
若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
在第二种可能的实现方式中,结合第一种可能的实现方式,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,包括:
将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还可以包括:
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
在第四种可能的实现方式中,结合第一种可能的实现方式,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,包括:
将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
在第五种可能的实现方式中,结合第四种可能的实现方式,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括:
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
在第六种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还可以包括:
若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
在第七种可能的实现方式中,结合第六种可能的实现方式,所述方法还包括:
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述方法还可以包括:
更新所述已注册的红外遥控器协议。
第二方面,提供了一种多种遥控器的设备,所述设备包括:
接收单元,用于接收遥控器发送的红外波形;
转换单元,用于将所述遥控器发送的红外波形转换为对应的高低电平对;
储存单元,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
匹配单元,用于将所述红外帧与已注册的红外遥控器协议进行匹配;
解析单元,用于根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
在第一种可能的实现方式中,结合第二方面,所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,
所述匹配单元还用于:将所述红外帧与所述第一类红外遥控器协议进行匹配;若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
所述匹配单元还用于:将所述红外帧与所述第二类红外遥控器协议进行匹配;若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
在第二种可能的实现方式中,结合第一种可能的实现方式,
所述匹配单元还用于:将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述匹配单元还用于:若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
所述匹配单元还用于:若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
在第四种可能的实现方式中,结合第一种可能的实现方式,
所述匹配单元还用于:将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
在第五种可能的实现方式中,结合第四种可能的实现方式,
所述匹配单元还用于:若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式,
所述匹配单元还用于:若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
在第七种可能的实现方式中,结合第六种可能的实现方式,
所述匹配单元还用于:若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
在第八种可能的实现方式中,结合第二方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述设备还包括:
更新单元,用于更新所述已注册的红外遥控器协议。
第三方面,提供了一种识别多种遥控的设备,所述设备包括:
红外接收头,用于接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;
处理器,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;
存储器,用于存储所述已注册的红外遥控器协议。
在第一种可能的实现方式中,根据第三方面,
所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,所述处理器具体用于:
将所述红外帧与所述第一类红外遥控器协议进行匹配;
若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
将所述红外帧与所述第二类红外遥控器协议进行匹配;
若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
在第二种可能的实现方式中,结合第一种可能的实现方式,所述处理器具体用于:
将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述所述处理器具体用于:
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
在第四种可能的实现方式中,结合第一种可能的实现方式,所述处理器具体用于:
将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
在第五种可能的实现方式中,结合第四种可能的实现方式,所述处理器还用于:
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
在第六种可能的实现方式中,结合第三方面或第一种可能的实现方式,所述处理器还用于:
若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
在第七种可能的实现方式中,结合第六种可能的实现方式,所述处理器还用于:
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
在第八种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,所述处理器还用于:
更新所述已注册的红外遥控器协议。
本发明实施例提供的一种识别多种遥控器的方法、设备,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种识别多种遥控器的方法的流程图;
图2为本发明实施例提供的另一种识别多种遥控器的方法的流程示意图;
图3为本发明实施例提供的一种中断处理流程示意图;
图4为本发明实施例提供的一种底半步处理流程示意图;
图5为本发明实施例提供的一种裸电平队列处理流程示意图;
图6为本发明实施例提供的一种飞利浦无线电码5红外遥控器协议(Philips Radio Code-5简称RC5)的完整帧格式示意图;
图7为本发明实施例提供的一种RC5协议的调制方式示意图;
图8为本发明实施例提供的一种容错处理流程示意图;
图9为本发明实施例提供的一种多种遥控器的设备示意图;
图10为本发明实施例提供的另一种多种遥控器的设备示意图,
图11为本发明实施例提供的再一种多种遥控器的设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一方面,本发明实施例提供一种识别多种遥控器的方法的流程图,参见图1,所述方法包括:
101:多种遥控器的设备接收遥控器发送的红外波形;
示例性的,本发明实施例提供的识别多种遥控器的方法可以应用于多种设备对红外波遥控器的识别,例如,可以应用于机顶盒对多种机顶盒遥控器的识别,空调对多种空调遥控器的识别等等。本发明实施例对此不进行限制。
102:多种遥控器的设备将所述遥控器发送的红外波形转换为对应的高低电平对;
103:多种遥控器的设备将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
104:多种遥控器的设备将所述红外帧与已注册的红外遥控器协议进行匹配;
示例性的,已注册的红外遥控器协议可以为用户在多种遥控器的设备已登记的红外遥控器协议。
示例性的,红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,可以包括:
将红外帧与第一类红外遥控器协议进行匹配;
若红外帧与任意第一类红外遥控器协议均不能匹配成功,则将红外帧与第二类红外遥控器协议进行匹配;
或者,
将红外帧与第二类红外遥控器协议进行匹配;
若红外帧与任意第二类红外遥控器协议均不能匹配成功,则将红外帧与第一类红外遥控器协议进行匹配。
示例性的,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,可以包括:
将红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,M与第一红外遥控器协议引导码bit数相同;
若确定红外帧的前M个bit与第一红外遥控器协议的引导码匹配,将红外帧再偏移N个bit后与第一红外遥控器协议的结束码进行匹配,其中,N与第一红外遥控器协议的固定bit数相同;
若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码匹配,则确定红外帧与第一红外遥控器协议匹配成功。
示例性的,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还可以包括:
若确定红外帧的前M个bit与第一红外遥控器协议的引导码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配;
或者,
若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配。
示例性的,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,可以包括:
将红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,J与第三红外遥控器协议的固定bit数相同;
若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码匹配,则确定红外帧与第三红外遥控器协议匹配成功。
示例性的,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括:
若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码不能匹配成功,将红外帧与第四红外遥控器协议进行匹配。
示例性的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还可以包括:
若红外帧与已注册的全部红外遥控器协议均不能匹配成功,将红外帧向前偏移P个bit后与红外遥控器协议的结束码进行匹配,其中,P根据已注册的全部红外遥控器协议的类型确定;
若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码匹配,则确定红外帧与红外遥控器协议匹配成功。
示例性的,所述方法还可以包括:
若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码不能匹配成功,则丢弃红外帧最前面的高低电平对,并将裸电平队列中与红外帧尾部相邻的电平对与红外帧剩余的电平对组成新的红外帧,再将新的红外帧与红外遥控器协议进行匹配,直到新的红外帧与红外遥控器协议匹配成功或者裸电平队列为空为止。
当然,在某些情况,终端设备(比如机顶盒、智能电视等)中的红外遥控器协议可以在销售给用户后,由用户进行注册。在这种情况下,终端设备在某些时刻可能只装载了一种红外遥控器协议,这时候就可以将红外帧与所述装载了的红外遥控器协议进行比对,如果匹配,则识别键值,如果匹配失败则忽视,发送无法识别的信息,或者通过显示器显示无法识别的信息。
105:多种遥控器的设备根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
示例性的,所述方法还可以包括:
更新所述已注册的红外遥控器协议。
本发明实施例提供的一种识别多种遥控器的方法,可以应用于机顶盒,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
下面通过具体实施例对上述方法实施例进行说明。参见图2,可以包括以下步骤:
201:接收遥控器发送的红外波形;
示例性的,本发明实施例以应用于识别机顶盒的多种遥控器为例进行说明,多种遥控器的设备可以配置在机顶盒内,机顶盒可以包含单板红外接收头和主芯片,主芯片上加载有应用程序和驱动软件,驱动软件可以包含驱动层、协议适配层、协议处理层。可以由单板红外接收头接收遥控器发送的红外波形。
202:将遥控器发送的红外波形转换为对应的高低电平对;
示例性的,单板红外接收头将接收的红外波形转换为对应的高低电平对。
203:将高低电平对依次储存于裸电平队列,形成红外波形对应的红外帧;
示例性的,单板红外接收头将高低电平对发送给机顶盒中的主芯片并产生中断,并由中央处理器(Central Processing Unit,简称CPU)上报给驱动软件指示有高低电平对到达。
示例性的,驱动层在中断处理过程将高低电平对储存到裸电平队列中,并激活底半步处理,以及当先入先出队列(First Input First Output,简称FIFO)出错时,进行错误处理。优选的,中断处理过程需要快速完成并退出,以便CPU能处理其他任务。
示例性的,本发明实施例中的主芯片上包含定时器,用于检查是否溢出中断,当定时器超过一定的数值时,该数值由定时器的具体类型来决定,产生溢出中断;当定时器没有超过该数值时,没有产生溢出中断。
示例性的,如图3所示,为本发明实施例提供的一种中断处理流程示意图,如图所示,当有中断发生时,首先判断是否有溢出中断,若没有溢出中断,再判断是否接高低电平收或接收超时中断,若接收到高低电平或接收到超时中断,则读取电平对,再判断应用程序是获取键值还是获取高低电平对,若获取的是高低电平对,则不需要驱动软件解析协议及遥控器按键值的方式,将接收到的高低电平对加入到裸电平队列中,再激活底半步,再清除中断;若获取的是键值,则将接收到的电平队列加入到键值队列,再唤醒读操作,再清除中断,中断处理结束;当有中断发生时,若溢出中断,则清空硬件FIFO清除中断,再判断当前高低电平队中断水线是否大于1,若当前高低电平队中断水线大于1,则判断是否接收高低电平对或接收超时中断;若当前高低电平队列中断水线不大于1,则降低高低电平队中断水线,再判断是否接收高低电平对或接收超时中断。
204:将红外帧进行底半步处理;
示例性的,底半步处理用于当中断处理不能快速完成任务时,在底半步处理中完成中断处理不能快速完成的任务。在本发明实施例中,底半步处理中需要完成的任务包含发起裸电平队列处理以及在裸电平处理出错时完成最终的容错处理。
示例性的,如图4所示,为本发明实施例提供的一种底半步处理流程示意图,如图所示,当中断激活底半步时,先判断裸电平队列是否处理失败,若裸电平队列处理失败,再启动容错定时器,底半步处理结束;若裸电平队列没有处理失败,则底半步处理结束。
205:将所述红外帧与已注册的红外遥控器协议进行匹配;
示例性的,已注册的红外遥控器协议可以注册在协议适配层中,也可以注册在其它任意一个可以储存红外遥控器协议的储存单元,本发明实施例对此不进行限制。
示例性的,若红外遥控器协议注册在协议适配层中,则已注册的红外遥控器协议可以为用户在协议适配层中已登记的红外协议描述符,本发明实施例对此不进行限制。
示例性的,协议适配层用于向驱动层提供遍历红外遥控器协议的接口,向协议处理层提供容纳红外遥控器协议的内置能支持的红外协议描述符的存储空间。
示例性的,协议处理层主要完成从裸电平队列中识别红外遥控器协议和解析键值,其中,红外遥控器协议包括两类协议,一类是有明显引导码+固定位(bit)个数+结束码,另一类是没有明显引导码+固定位(bit)个数+结束码。
示例性的,本发明实施例中采用协议描述符的方法来描述红外遥控器协议的组成,也可以采用其它方式来描述红外遥控器的组成,但本发明实施例对此不进行限制。协议描述符可以为“ir_protocol”,本发明实施例中描述红外遥控器协议的方法可以为链表节点、具体协议名称、协议类别、标志位、帧格式描述、协议识别钩子、协议识别、解析时所需要的私有数据、协议解析钩子、协议识别出错时的处理钩子、协议解析时出错时的处理钩子和协议使能位,但本发明实施例对此不进行限制。
示例性的,描述红外遥控器协议的方法可以为:
示例性的,在协议描述符中,红外帧格式描述可以用来描述红外帧的组成,红外帧格式描述符可以为“ir_symbol_attr”,本发明实施例中描述红外帧格式的方法可以为引导码电平描述、第二引导码电平描述、第二引导码出现的偏移、位(bit)0电平描述、位(bit)1电平描述、结束码电平描述、简化重复码电平描述、高低电平对(symbol)最小时间单元、该红外遥控器协议一帧含有多少位(bit)个数和结束码应该出现的偏移,但本发明实施例对此不进行限制。
示例性的,描述红外帧格式的方法可以为:
示例性的,协议适配层中已注册的红外遥控器协议是动态变化的,可由用户采取任意方式向协议适配层中添加新的红外遥控器协议,本发明实施例采用动态注册新的红外遥控器协议和静态注册新的遥控器协议两种方式,也可以采用其它方式添加新的红外遥控器协议,但本发明实施例对此不进行限制。
示例性的,本发明实施例中协议适配层提供了新的遥控器协议注册与去注册接口,用户可利用注册接口添加新的红外遥控器协议,本发明实施例用户可以采用编写新驱动的方法通过注册接口向协议适配层添加新的遥控器协议,也可以采用其它的方式,但本发明实施例对此不进行限制。例如,用户可以通过完成协议描述符“struct ir_protocol”中的链表节点、具体协议名称、协议类别、标志位、帧格式描述、协议识别钩子、协议识别、解析时所需要的私有数据、协议解析钩子、协议识别出错时的处理钩子、协议解析时出错时的处理钩子和协议使能位来实现新的遥控器协议。
示例性的,本发明实施例中协议适配层内置可支持的协议描述数组,用户不需要自己完成协议描述符“struct ir_protocol”,可在协议描述数组后添加协议适配层中协议描述数组支持的新的遥控器协议描述项。
示例性的,如图5所示,为本发明实施例提供的一种裸电平处理流程示意图,如图所示,裸电平队列处理包含将红外帧依次与已注册的红外遥控器协议进行匹配,若红外帧与已注册的红外遥控器协议匹配成功,则根据与红外帧匹配成功的红外遥控器协议解析键值;若红外帧与已注册的红外遥控器协议不能匹配成功,优先采用协议处理层的容错处理机制,若协议处理层的容错处理机制仍使红外帧与已注册的全部红外遥控器协议不能匹配成功,则启动驱动层的容错处理机制。
示例性的,解析键值的过程按照与红外帧匹配成功的红外遥控器协议的调制方式,识别出该红外遥控器协议的低电位位(bit)0和高电位位(bit)1,并按照大小端字节序解析成键值。
示例性的,红外帧与红外遥控器协议匹配的方法是按照上述两类协议进行的。将红外帧与第一类红外遥控器协议进行匹配;若红外帧与任意第一类红外遥控器协议均不能匹配成功,则将红外帧与所述第二类红外遥控器协议进行匹配;
或者,
将红外帧与第二类红外遥控器协议进行匹配;若红外帧与任意第二类红外遥控器协议均不能匹配成功,则将红外帧与第一类红外遥控器协议进行匹配。
示例性的,第一类红外遥控器协议的识别,首先将红外帧的前M个位(bit)与红外遥控器协议的引导码进行匹配,如果匹配再将红外帧偏移N个位(bit),再将红外帧与红外遥控器协议的结束码进行匹配,如果红外祯与红外遥控器协议的结束码匹配则认为匹配成功,根据该红外遥控器协议来解析当前红外帧;如果红外帧的前M个位(bit)与红外遥控器协议的引导码不能匹配成功或者红外帧再偏移N个位(bit)后与红外遥控器协议的结束码不能匹配成功,则将红外祯与下一个第一类红外遥控器协议继续进行匹配;如果所有协议都不能匹配成功,则尝试第二类红外遥控器协议来匹配当前红外帧,其中,M与红外遥控器协议引导码位(bit)数相同,N与红外遥控器协议的固定位(bit)数相同。
第二类红外遥控器协议的识别,采用红外帧第一个位(bit)为引导码的方式,将红外帧偏移(P-1)个位(bit),再将红外帧与红外遥控器协议的结束码进行匹配。如果红外祯与红外遥控器协议的结束码匹配则认为匹配成功;如果红外帧与红外遥控器协议的结束码不能匹配成功,则将红外祯与下一个第二类红外遥控器协议继续进行匹配。
例如:首先从协议适配层中取出第一个已注册的红外遥控器协议,可以记为“IP0”,利用“IP0”的协议识别钩子中的匹配回调函数来匹配当前裸电平队列的红外帧,如果红外帧与“IP0”匹配成功,则采用“IP0”中的协议解析钩子中的解析回调函数解析键值,并把解析后的键值的结果加入到已解析键值队列尾部,等待应用程序获取已解析的键值结果;如果红外帧与“IP0”不能匹配成功,即“IP0”的协议识别钩子中的匹配回调函数返回失败或者需要更多的数据,则确定当前裸电平队列头上的红外帧至少有一个红外遥控器协议可以匹配上,只是当前红外帧还没有送达驱动缓存中。若“IP0”的协议识别钩子中的匹配回调函数返回需要更多的数据时,可能当前裸电平缓存队列中并不一定是符合“IP0”红外遥控器协议的红外帧,例如,当前裸电平缓存队列有两个红外帧,“IP0”协议匹配时跳过N个位(bit),已经达到第二帧的第M个位(bit)上,因此需要取下一个协议重复匹配,以达到精确匹配的目的。
示例性的,在第一类红外遥控器协议和第二类红外遥控器协议中均存在一种协议,即高电平位和低电平位由高低电平的跳变方向来决定,高电平位由低电平跳变至高电平来决定,低电平位由高电平跳变至低电平来决定,将高电平位用位(bit)1表示,低电平位用位(bit)0表示,例如:RC5和RC6,在单板红外接收头将接收到的遥控器发送的红外波形转换成高低电平对之后,发送给主芯片,主芯片采样时会将某些高电平或低电平合并后一起上报给软件,这样结束码可能不会出现在固定的位置。例如:如图6所示,为本发明实施例提供的一种RC5协议的完整帧格式示意图,如图所示,RC5协议的完整帧中有三个位(bit)序列,分别是位(bit)2,位(bit)3和位(bit)4,分别为1,0,0,按照RC5协议的调制方式,如图7所示,为本发明实施例提供的一种RC5协议的调制方式示意图,如图所示,高电平位位(bit)1是[889us低电平,889us高电平],低电平位位(bit)0是[889us高电平,889us低电平],则主芯片上报的电平就是[889us低电平,1778us高电平],[889us低电平,889us高电平],[889us低电平,X us高电平],其中X取决于后续的位(bit)是0还是1。由于本发明实施例中所采用的主芯片不支持电平跳变方向的识别,只支持高低电平长度的识别,因此主芯片上报高低电平对时,会出现高低电平合并的情况。因此,需要将红外帧向前偏移P位与红外遥控器协议的结束码进行匹配,其中,P根据已注册的全部红外遥控器协议的类型确定。
示例性,当前裸电平队列中的红外帧与已注册的全部红外遥控器协议都匹配完成以后,有三种匹配结果,具体描述如下:
1、裸电平队列中的红外帧与“IPn”红外遥控器协议匹配成功,并且根据“IPn”红外遥控器协议解析键值完毕,其中,“IPn”红外遥控器协议为已注册的任一红外遥控器协议;
2、裸电平队列中的红外帧与“IP{m,…,j}”红外遥控器协议的引导码匹配成功,裸电平队列中的红外帧与已注册的除“IP{m,…,j}”红外遥控器协议外的其它红外遥控器协议不能匹配成功,其中,“IP{m,…,j}”指已注册的全部遥控器协议中与裸电平队列中的红外帧引导码匹配成功的红外遥控器协议;
3、裸电平队列中的红外帧与已注册的全部红外遥控器协议均不匹配。
示例性的,对于上述裸电平队列中的红外帧与已注册的全部红外遥控器协议匹配完成后的三种结果,本发明实施例提供了各结果的具体解决方式,但本发明实施例对此不进行限制。
示例性的,三种结果的具体解决方式可以为:
1、针对上述第一种结果,正常返回,即驱动软件将解析键值的结果加入到已解析键值队列尾部,等待应用程序获取;
2、针对上述第二种结果,需要启动容错处理,当容错处理超时时,重复一次匹配过程,如果仍然没有匹配成功,则按下述第3种解决方法来解决;
3、针对上述第三种结果,将裸电平队列中的高低电平对丢弃,直到裸电平队列为空或裸电平队列中的下一红外帧有红外遥控器协议匹配为止。
示例性的,协议解析层的容错处理,主要应用于位(bit)0和位(bit)1由高低电平跳变方向决定的红外遥控器协议类型,用于处理当结束码位由于位(bit)0、位(bit)1交替出现时电平对被合并时没有出现在预定期望位置时的情况。针对这一类型的红外遥控器协议,需要在预期出现结束码电平对的位置,向前搜索结束码,如果向前搜索P位找到了结束码,则认为可以解析当前红外帧,否则启动驱动层容错处理。
驱动层的容错处理,是在裸电平对列处理返回不成功时的处理,驱动层的容错处理包含再次尝试裸电平对列中的红外帧与红外遥控器协议的匹配过程,匹配成功时的解析键值以及匹配失败时的丢帧过程,即从当前裸电平队列头开始丢弃高低电平对(symbol),直到结束码出现或者裸电平队列为空为止。
示例性的,如图8所示,为本发明实施例提供的一种容错处理流程示意图,如图所示,在调用裸电平处理函数后,首先需要判断是否返回成功,若裸电平队列处理函数返回不成功,获取裸电平队列头电平对,将该电平记为关键字(KEY),再判断该电平对是否有效,若该电平对有效,获取第一个红外遥控器协议,将该协议记为“IP”,再判断该“IP”是否有效,若该“IP”有效,再判断该“IP”是否有匹配函数,若该“IP”有匹配函数,再使用KEY匹配协议“IP”的起始电平对,再判断KEY与“IP”的起始电平对是否匹配成功,若匹配成功,再调用该“IP”的匹配函数判断是否有一帧数据可以解析,若可以调用该“IP”的匹配函数解析一帧数据,再调用裸电平队列处理函数,容错处理结束;若不可以调用该“IP”的匹配函数解析一帧数据,再判断“IP”是否有匹配错误处理函数,若“IP”有匹配错误处理函数,再判断是否已经等待了一段时间,若没有等待一段时间,再修改定时器超时时间,重启定时器,容错处理结束。在调用裸电平队列处理函数后,若返回失败,并且获取裸电平队列队头电平对、电平对有效、获取第一个协议,若“IP”无效,则丢弃KEY,再获取裸电平队列队头,直到获取到的协议有效。
206:根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
示例性的,本发明实施例中,解析键值的过程是通过裸电平队列处理或容错处理过程来实现的,具体实现过程在205中进行了具体说明。
本领域技术人员应当理解,虽然在上面的实施例中,以已注册的红外遥控器协议与红外帧进行匹配为例进行说明,然而,本发明并不局限于此。在本发明的其它一些实施例中,可以以已注册的一个红外遥控器协议或没有已注册的红外遥控器协议与红外帧进行匹配,在这种情况下,只需要红外帧与一种红外遥控器协议进行匹配或不用与红外遥控器协议进行匹配,用于实现识别单一遥空器。
在没有已注册的红外遥控器协议的情况下,由于没有红外遥控器协议与红外帧匹配成功,因此,丢弃当前所有高低电平对。
本发明实施例提供的一种识别多种遥控器的方法,可以应用于机顶盒,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
另一方面,本发明实施例提供一种多种遥控器的设备90,该多种遥控器的设备110可以配置在机顶盒内,或者可以为机顶盒本身,参见图9或图10,该设备90包括:
接收单元901:用于接收遥控器发送的红外波形;
转换单元902:用于将所述遥控器发送的红外波形转换为对应的高低电平对;
储存单元903:用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
匹配单元904:用于将所述红外帧与已注册的红外遥控器协议进行匹配;
示例性的,红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,
匹配单元904还可以用于:将红外帧与第一类红外遥控器协议进行匹配;若红外帧与任意第一类红外遥控器协议均不能匹配成功,则将红外帧与第二类红外遥控器协议进行匹配;
或者,
匹配单元904还可以用于:将红外帧与第二类红外遥控器协议进行匹配;若红外帧与任意第二类红外遥控器协议均不能匹配成功,则将红外帧与第一类红外遥控器协议进行匹配。
示例性的,匹配单元904还可以用于:将红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,M与第一红外遥控器协议引导码bit数相同;若确定红外帧的前M个bit与第一红外遥控器协议的引导码匹配,将红外帧再偏移N个bit后与第一红外遥控器协议的结束码进行匹配,其中,N与第一红外遥控器协议的固定bit数相同;若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码匹配,则确定红外帧与第一红外遥控器协议匹配成功。
示例性的,匹配单元904还可以用于:若确定红外帧的前M个bit与第一红外遥控器协议的引导码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配;
或者,
匹配单元904还可以用于:若确定红外帧再偏移N个bit后与第一红外遥控器协议的结束码不能匹配成功,将红外帧与第二红外遥控器协议进行匹配。
示例性的,匹配单元904还可以用于:将红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,J与第三红外遥控器协议的固定bit数相同;若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码匹配,则确定红外帧与第三红外遥控器协议匹配成功;若确定红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码不能匹配成功,将红外帧与第四红外遥控器协议进行匹配。
示例性的,匹配单元904还可以用于:若红外帧与已注册的全部红外遥控器协议均不能匹配成功,将红外帧向前偏移P个bit后与红外遥控器协议的结束码进行匹配,其中,P根据已注册的全部红外遥控器协议的类型确定;若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码匹配,则确定红外帧与红外遥控器协议匹配成功;若确定红外帧向前偏移P个bit后与红外遥控器协议的结束码不能匹配成功,则丢弃红外帧最前面的高低电平对,并将裸电平队列中与红外帧尾部相邻的电平对与红外帧剩余的电平对组成新的红外帧,再将新的红外帧与红外遥控器协议进行匹配,直到新的红外帧与红外遥控器协议匹配成功或者裸电平队列为空为止。
解析单元905,用于根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
示例性的,所述设备90还可以包括:
更新单元906:用于更新所述已注册的红外遥控器协议。
本领域技术人员应当理解,虽然在上面的实施例中,以已注册的红外遥控器协议与红外帧进行匹配为例进行说明,然而,本发明并不局限于此。在本发明的其它一些实施例中,可以以已注册的一个红外遥控器协议或没有已注册的红外遥控器协议与红外帧进行匹配,在这种情况下,只需要红外帧与一种红外遥控器协议进行匹配或不用与红外遥控器协议进行匹配,用于实现识别单一遥空器。
在没有已注册的红外遥控器协议的情况下,由于没有红外遥控器协议与红外帧匹配成功,因此,丢弃当前所有高低电平对。
本发明实施例提供的一种多种遥控器的设备90,可以配置在机顶盒内,或者可以为机顶盒本身,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
再一方面,本发明实施例提供了一种识别多种遥控的设备110,该多种遥控器的设备110可以配置在机顶盒内,或者可以为机顶盒本身,参见图11,所述设备110包括:
红外接收头1101,存储器1102,处理器1103,至少一个通信总线1104,用于实现这些装置之间的连接和相互通信;
存储器1102,可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);或者非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);或者上述种类的存储器的组合。
处理器1103可能是一个中央处理器(英文:central processing unit,简称为CPU)。
其中,
红外接收头1101,用于接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;
处理器1103,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;
存储器1102,用于存储所述已注册的红外遥控器协议。
进一步的,所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,所述处理器1103具体用于:
将所述红外帧与所述第一类红外遥控器协议进行匹配;
若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
将所述红外帧与所述第二类红外遥控器协议进行匹配;
若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
进一步的,所述处理器1103具体用于:
将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
进一步的,所述处理器1103具体用于:
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
进一步的,所述处理器1103具体用于:
将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
在第五种可能的实现方式中,结合第四种可能的实现方式,所述处理器还用于:
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
进一步的,所述处理器1103还用于:
若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
进一步的,所述处理器1103还用于:
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
进一步的,所述处理器1103还用于:
更新所述已注册的红外遥控器协议。
本领域技术人员应当理解,虽然在上面的实施例中,以已注册的红外遥控器协议与红外帧进行匹配为例进行说明,然而,本发明并不局限于此。在本发明的其它一些实施例中,可以以已注册的一个红外遥控器协议或没有已注册的红外遥控器协议与红外帧进行匹配,在这种情况下,只需要红外帧与一种红外遥控器协议进行匹配或不用与红外遥控器协议进行匹配,用于实现识别单一遥空器。
在没有已注册的红外遥控器协议的情况下,由于没有红外遥控器协议与红外帧匹配成功,因此,处理器1103可以丢弃当前所有高低电平对。
本发明实施例提供的一种多种遥控器的设备110,可以配置在机顶盒内,或者可以为机顶盒本身,通过接收遥控器发送的红外波形;将所述遥控器发送的红外波形转换为对应的高低电平对;将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;将所述红外帧与已注册的红外遥控器协议进行匹配;根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值;实现识别多种红外遥控器协议,进而降低了机顶盒厂商的机顶盒软件维护成本。克服了现有技术中每款遥控器对应的红外遥控器协议不同,由于一个机顶盒只能识别一种红外遥控器协议,从而使机顶盒厂商增加了机顶盒中的软件维护成本的缺陷。
,本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种识别多种遥控器的方法,其特征在于,所述方法包括:
接收遥控器发送的红外波形;
将所述遥控器发送的红外波形转换为对应的高低电平对;
将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
将所述红外帧与已注册的红外遥控器协议进行匹配;
根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
2.根据权利要求1所述的识别多种遥控器的方法,其特征在于,
所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,所述将所述红外帧与已注册的红外遥控器协议进行匹配,包括:
将所述红外帧与所述第一类红外遥控器协议进行匹配;
若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
将所述红外帧与所述第二类红外遥控器协议进行匹配;
若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
3.根据权利要求2所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,包括:
将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
4.根据权利要求3所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第一类红外遥控器协议进行匹配,还包括:
若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
5.根据权利要求2所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,包括:
将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
6.根据权利要求5所述的识别多种遥控器的方法,其特征在于,所述将所述红外帧与所述第二类红外遥控器协议进行匹配,还包括:
若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
7.根据权利要求1或2所述的识别多遥控器的方法,其特征在于,所述将所述红外帧与已注册的红外遥控器协议进行匹配,还包括:
若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
8.根据权利要求7所述的识别多种遥控器的方法,其特征在于,所述方法还包括:
若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
9.根据权利要求1-8任一项所述的识别多种遥控器的方法,其特征在于,
所述方法还包括:更新所述已注册的红外遥控器协议。
10.一种多种遥控器的设备,其特征在于,所述设备包括:
接收单元,用于接收遥控器发送的红外波形;
转换单元,用于将所述遥控器发送的红外波形转换为对应的高低电平对;
储存单元,用于将所述高低电平对依次储存于裸电平队列,形成所述红外波形对应的红外帧;
匹配单元,用于将所述红外帧与已注册的红外遥控器协议进行匹配;
解析单元,用于根据与所述红外帧匹配成功的所述红外遥控器协议解析所述红外帧对应的键值。
11.根据权利要求10所述的多种遥控器的设备,其特征在于,
所述红外遥控器协议包括第一类红外遥控器协议和第二类红外遥控器协议,其中,所述第一类红外遥控器协议包含固定位bit个数、结束码、明显引导码,所述第二类红外遥控器协议包含固定位bit个数、结束码、无明显引导码;
相应的,
所述匹配单元还用于:将所述红外帧与所述第一类红外遥控器协议进行匹配;若所述红外帧与任意所述第一类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第二类红外遥控器协议进行匹配;
或者,
所述匹配单元还用于:将所述红外帧与所述第二类红外遥控器协议进行匹配;若所述红外帧与任意所述第二类红外遥控器协议均不能匹配成功,则将所述红外帧与所述第一类红外遥控器协议进行匹配。
12.根据权利要求11所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:将所述红外帧的前M个bit与第一红外遥控器协议的引导码进行匹配,其中,所述M与所述第一红外遥控器协议引导码bit数相同;若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码匹配,将所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码进行匹配,其中,所述N与所述第一红外遥控器协议的固定bit数相同;若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码匹配,则确定所述红外帧与所述第一红外遥控器协议匹配成功。
13.根据权利要求12所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:若确定所述红外帧的前M个bit与所述第一红外遥控器协议的引导码不能匹配成功,将所述红外帧与第二红外遥控器协议进行匹配;
或者,
所述匹配单元还用于:若确定所述红外帧再偏移N个bit后与所述第一红外遥控器协议的结束码不能匹配成功,将所述红外帧与所述第二红外遥控器协议进行匹配。
14.根据权利要求11所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:将所述红外帧偏移(J-1)个bit后与第三红外遥控器协议的结束码进行匹配,其中,所述J与所述第三红外遥控器协议的固定bit数相同;若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码匹配,则确定所述红外帧与所述第三红外遥控器协议匹配成功。
15.根据权利要求14所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:若确定所述红外帧偏移(J-1)个bit后与所述第三红外遥控器协议的结束码不能匹配成功,将所述红外帧与第四红外遥控器协议进行匹配。
16.根据权利要求10或11所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:若所述红外帧与已注册的全部红外遥控器协议均不能匹配成功,将所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码进行匹配,其中,所述P根据所述已注册的全部红外遥控器协议的类型确定;若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码匹配,则确定所述红外帧与所述红外遥控器协议匹配成功。
17.根据权利要求16所述的多种遥控器的设备,其特征在于,
所述匹配单元还用于:若确定所述红外帧向前偏移P个bit后与所述红外遥控器协议的结束码不能匹配成功,则丢弃所述红外帧最前面的高低电平对,并将所述裸电平队列中与所述红外帧尾部相邻的电平对与所述红外帧剩余的电平对组成新的红外帧,再将所述新的红外帧与所述红外遥控器协议进行匹配,直到所述新的红外帧与所述红外遥控器协议匹配成功或者所述裸电平队列为空为止。
18.根据权利要求10-17任一项所述的多种遥控器的设备,其特征在于,所述设备还包括:
更新单元,用于更新所述已注册的红外遥控器协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481565.1A CN103546791A (zh) | 2013-10-15 | 2013-10-15 | 一种识别多种遥控器的方法、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481565.1A CN103546791A (zh) | 2013-10-15 | 2013-10-15 | 一种识别多种遥控器的方法、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103546791A true CN103546791A (zh) | 2014-01-29 |
Family
ID=49969780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310481565.1A Withdrawn CN103546791A (zh) | 2013-10-15 | 2013-10-15 | 一种识别多种遥控器的方法、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103546791A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333614A (zh) * | 2014-10-31 | 2015-02-04 | 北京奇虎科技有限公司 | 终端识别的方法、装置及系统 |
CN105049886A (zh) * | 2015-07-10 | 2015-11-11 | Tcl集团股份有限公司 | 一种上报红外遥控器事件的方法及系统 |
CN106851372A (zh) * | 2017-02-28 | 2017-06-13 | 山东浪潮商用系统有限公司 | 一种适配不同型号红外遥控器的对应方法 |
CN107196912A (zh) * | 2017-04-20 | 2017-09-22 | 广州视源电子科技股份有限公司 | 协议解码方法及装置 |
CN107396162A (zh) * | 2017-08-30 | 2017-11-24 | 深圳市芯智科技有限公司 | 一种机顶盒兼容多遥控器的方法 |
CN107529085A (zh) * | 2017-08-31 | 2017-12-29 | 四川长虹电器股份有限公司 | 兼容多遥控器的遥控码解码的方法 |
CN108924615A (zh) * | 2018-07-20 | 2018-11-30 | 深圳创维-Rgb电子有限公司 | 一种响应不同红外指令的方法、存储介质以及智能电视 |
CN111091702A (zh) * | 2019-12-29 | 2020-05-01 | 眸芯科技(上海)有限公司 | 基于脉宽检测的自学习红外解码方法、装置及系统 |
CN112728772A (zh) * | 2020-12-31 | 2021-04-30 | 广东万和热能科技有限公司 | 热水器的控制方法 |
CN112950921A (zh) * | 2021-04-01 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种空调红外遥控信号匹配方法 |
CN114095768A (zh) * | 2021-11-29 | 2022-02-25 | 四川长虹电器股份有限公司 | 基于机器学习算法的红外遥控器学习方法及系统 |
-
2013
- 2013-10-15 CN CN201310481565.1A patent/CN103546791A/zh not_active Withdrawn
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333614B (zh) * | 2014-10-31 | 2018-07-27 | 北京奇安信科技有限公司 | 终端识别的方法、装置及系统 |
CN104333614A (zh) * | 2014-10-31 | 2015-02-04 | 北京奇虎科技有限公司 | 终端识别的方法、装置及系统 |
CN105049886A (zh) * | 2015-07-10 | 2015-11-11 | Tcl集团股份有限公司 | 一种上报红外遥控器事件的方法及系统 |
CN105049886B (zh) * | 2015-07-10 | 2019-10-11 | Tcl集团股份有限公司 | 一种上报红外遥控器事件的方法及系统 |
CN106851372A (zh) * | 2017-02-28 | 2017-06-13 | 山东浪潮商用系统有限公司 | 一种适配不同型号红外遥控器的对应方法 |
CN107196912A (zh) * | 2017-04-20 | 2017-09-22 | 广州视源电子科技股份有限公司 | 协议解码方法及装置 |
CN107196912B (zh) * | 2017-04-20 | 2020-09-01 | 广州视源电子科技股份有限公司 | 协议解码方法及装置 |
CN107396162A (zh) * | 2017-08-30 | 2017-11-24 | 深圳市芯智科技有限公司 | 一种机顶盒兼容多遥控器的方法 |
CN107529085A (zh) * | 2017-08-31 | 2017-12-29 | 四川长虹电器股份有限公司 | 兼容多遥控器的遥控码解码的方法 |
CN108924615A (zh) * | 2018-07-20 | 2018-11-30 | 深圳创维-Rgb电子有限公司 | 一种响应不同红外指令的方法、存储介质以及智能电视 |
CN111091702A (zh) * | 2019-12-29 | 2020-05-01 | 眸芯科技(上海)有限公司 | 基于脉宽检测的自学习红外解码方法、装置及系统 |
CN112728772A (zh) * | 2020-12-31 | 2021-04-30 | 广东万和热能科技有限公司 | 热水器的控制方法 |
CN112728772B (zh) * | 2020-12-31 | 2022-06-14 | 广东万和热能科技有限公司 | 热水器的控制方法 |
CN112950921A (zh) * | 2021-04-01 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种空调红外遥控信号匹配方法 |
CN114095768A (zh) * | 2021-11-29 | 2022-02-25 | 四川长虹电器股份有限公司 | 基于机器学习算法的红外遥控器学习方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103546791A (zh) | 一种识别多种遥控器的方法、设备 | |
CN103412769A (zh) | 外接卡参数配置方法、设备以及系统 | |
CN103000008B (zh) | 遥控接收设备响应遥控信号的方法和装置 | |
US9436557B2 (en) | Method and computation node for processing application data | |
US20130007289A1 (en) | Remote control system and remote control method of the same | |
WO2008075361A2 (en) | Apparatus, method and computer readable medium for disambiguating commands with respect to logical protocols | |
JP2007272430A (ja) | ドライブ構成設定プログラム | |
US20140149617A1 (en) | I2c bus structure and device availability query method | |
CN102693101A (zh) | 信息处理装置 | |
KR20110090067A (ko) | 디스크 장치와 외부 저장 매체 사이의 데이터 전송 방법 및 그 방법을 이용하는 시스템 | |
CN103984655A (zh) | 数据访问的处理方法和装置 | |
US7702820B2 (en) | Hardware accelerator and data transmission system and method using the same | |
JP2006235992A (ja) | プリンタのファームウェア書き替えシステムおよびファームウェア書き替え方法並びにプリンタ | |
KR20120036355A (ko) | 인버터 시스템 및 인버터 | |
CN107547276B (zh) | 自动堆叠方法、装置、设备和机器可读存储介质 | |
CN104754195A (zh) | 电子设备及其控制方法 | |
CN1953527A (zh) | 投影系统及其控制方法 | |
US8074023B2 (en) | In-system programming to switch memory access from one area to another in memory cards | |
US8316362B2 (en) | Method for updating a program section | |
JP4463658B2 (ja) | 情報処理システムの下位装置、下位装置用動作制御プログラムおよび下位装置用動作制御方法 | |
US7681174B2 (en) | Computer system and related method for generating program codes describing relationships of numerous function names and numerous control codes of a device | |
CN116243994B (zh) | 一种存储设备的驱动加载方法、操作系统启动方法及系统 | |
US9606951B2 (en) | External electronic device and interface controller and external electronic device control method | |
CN112015452B (zh) | 一种闸机系统的固件升级方法、装置及闸机系统 | |
CN113010195B (zh) | 一种系统升级方法、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20140129 |