本发明涉及物联网,特别是涉及一种基于异或运算实现的状态控制、查询方法及装置。
背景技术:
1、物联网(internet of things,简称iot)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络;
2、本发明给出了一种基于异或运算实现状态控制的方法。在某些业务场景中,一个设备、一种订单,或一种记录需要同时记录多种类别的状态,同时还要求不同类别状态的值不能相互影响,而且方便搜索,不影响对某种状态的记录的查询效率。例如:一个设备的故障状态类别分为火警、电量不足、传感器故障、温度报警、指示灯故障等,设备可以同时处于电量不足和温度报警两种状态,而当温度报警解除时,仅温度报警该状态的值会恢复正常,电量不足的状态值不发生变化。
3、常规的解决办法为,将这几种状态类别分别定义属性字段来标识,每次增加状态类别,需要增加新的属性字段来标识,当状态类别增多时,标识状态类别的属性字段会跟着变多,无法做到动态扩展。
技术实现思路
1、本发明目的是针对背景技术中存在的问题,提出一种基于异或运算实现的状态控制方法,本发明利用一个属性字段就可以标识多种不同类别的状态,无需增加额外的属性字段进行标识,同时还可以做到不同类别状态值发生改变时,相互之间不影响,此外还兼顾多种条件查询。
2、本发明的技术方案,一种基于异或运算实现的状态控制方法,包括以下具体步骤:
3、s1、定义不同的状态为2n;n>=1,每增加一种状态,则n递增加1。
4、s2、状态发生变化时,则状态值发生改变,其步骤如下:
5、s21、提供属性字段status用于存储设备状态;
6、s22、设备某种类别的状态发生变化,查询找到该类别状态定义的值为2n;
7、s23、设备当前的状态值status与发生变化的状态的值2n进行或操作,计算结果作为设备新的状态值,公式如下:status=status|2n;
8、s3、状态恢复时,则状态值发生改变,其步骤如下:
9、s31、设备某种状态恢复,查询找到该类别状态定义的值为2n;
10、s32、设备当前的状态值status与发生变化的状态的值2n进行异或操作,计算结果作为设备新的状态值,公式如下:status=status^2n。
11、一种基于异或运算实现的状态查询方法,包括以下步骤:
12、查询设备状态是某种类别的状态的设备,计算待查询类别状态定义的值为2n;
13、将设备当前的状态值status与待查询类别状态的值2n进行与操作,计算结果如果大于0的设备即为符合条件的设备,查询条件公式如下:status&2n>0。
14、一种基于异或运算实现的状态查询方法,包括以下步骤:
15、查询设备状态同时是某几种类别的状态的设备,计算待查询类别状态的值为2n及2m;
16、将设备当前的状态值status与待查询的多个类别的状态值2n及2m进行与操作,计算结果均大于0的设备即为符合条件的设备,查询条件公式如下:status&2n>0且status&2m>0。
17、一种基于异或运算实现的状态控制装置,处理如权利要求上述的步骤,包括交互模块、计算模块、查询模块、存储模块和数据采集模块;
18、交互模块用于将设备的不同的状态定义为2n;
19、数据采集模块用于采集设备运行的不同的状态信息;
20、存储模块用于对属性字段status进行存储;
21、计算模块用于对设备当前的状态值status与发生变化的状态的值2n进行计算并赋值;
22、查询模块用于查询不同状态定义的值2n。
23、一种基于异或运算实现的状态查询装置,处理上述的步骤,包括计算模块、查询模块、存储模块和数据采集模块;
24、查询模块用于查询设备状态同时是某几种类别的状态的设备;
25、数据采集模块用于采集设备运行的不同的状态信息;
26、存储模块用于对属性字段status进行存储;
27、计算模块用于将设备当前的状态值status与待查询的多个类别的状态值进行计算并赋值。
28、与现有技术相比,本发明具有如下有益的技术效果:
29、1、动态扩展,不用随状态增加而增加额外的属性字段来记录新增加的状态。
30、2、节约空间,用一个属性字段就可以代表多个状态。
31、3、复杂度低,多种类型状态的值发生改变或恢复默认值时,只需修改一个属性字段即可。
32、4、性能好,当对多种类型状态进行联合查询时,只需要对一个属性值比对查询即可。
1.一种基于异或运算实现的状态控制方法,其特征在于,包括以下具体步骤:
2.根据权利要求1所述的一种基于异或运算实现的状态控制方法,其特征在于,s1中n>=1,每增加一种状态,则n递增加1。
3.一种基于异或运算实现的状态查询方法,其特征在于,包括以下步骤:
4.一种基于异或运算实现的状态查询方法,其特征在于,包括以下步骤:
5.一种基于异或运算实现的状态控制装置,处理如权利要求1-2任一项所述的步骤,其特征在于,包括交互模块、计算模块、查询模块、存储模块和数据采集模块;
6.一种基于异或运算实现的状态查询装置,处理如权利要求3或4所述的步骤,其特征在于,包括计算模块、查询模块、存储模块和数据采集模块;