本帖最后由 nanosaki 于 2018-11-17 18:49 编辑
在做一个红外网关的插件,主体写完了,通过抓包也能获得特定的红外码,但终究这样用还是很不方便
于是尝试分析控制的码库,获取了码库的db数据库,sqlite 3.0 的数据库
通过读取数据库,已经可以通过查询标号,获取特定设备的红外码格式,并且获得完整的码库
但现在的问题就是,对于特定的状态,需要在码库中寻找特定的红外码,但这个码库的序号就行是如何排序的一直没有想明白
尝试过发送连续的状态,但抓包得到的红外码查得的序号看似全无规律
数据库中对于每一个设备的格式,有一个名为match的记录,猜测可能与查找码库序号有关
举个例子,比如对于码库中一个控制较少的iptv,数据库中可以查到的信息如下
match:0,6,0,A,0,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2F,21,12,11,12,12,11,11,12,12,12,11,13,21,12,11,12,12,11,11,12,12,12,11,10,
几种状态的二进制与对应的红外码在码库中的序号为
0000 0000——10
0000 0110——08
0000 1000——03
0000 1011——01
每个设备的码库是独立的,这个iptv的码库中共有11个红外码
其它抓取较为费事,这里暂时没有列出,如有需要我可以继续抓取
不知有没有对于数据结构与算法非常熟悉的大神能推测一下这个码库查找的方式是什么?
如果能解决这个问题,这个码库能够提供非常多的红外设备控制能力,感觉还是很方便的
是采用平衡树一类的对码进行了排序还是其它?
不知有没有哪位大神有高见? |