System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别是涉及一种负荷曲线数据处理方法、装置和智能电表。
技术介绍
1、负荷曲线记录功能是智能电表的重要功能之一,可根据用户配置的间隔时间(例如,一分钟)保存负荷曲线数据,负荷曲线数据可直观的反映用户的用电负荷特点和规律。智能电表大多采用flash(flash memory,非易失性存储器)来存储负荷曲线数据,一般记录不少于40天(大多记录一年(即365天))的负荷曲线数据。往flash中写入负荷曲线数据时,先执行扇区擦除操作,再执行页编程写入数据。
2、传统的在flash中的每个扇区针对负荷曲线数据的存储结构类似于“(时间1,扇区数据项标识1,数据集合1),(时间2、扇区数据项标识2、数据集合2)”。时间表示负荷曲线数据对应的时间,扇区数据项标识该条负荷曲线数据所包含的数据项,数据项一般为“电压、电流、频率”,“有、无功功率”,“功率因数”,“有、无功总电能”,“四象限无功电能”,“当前需量”等六类数据项中一种或两种以上的组合。因为每种数据项的存储间隔时间不同,所以不同的负荷曲线数据所包含的数据项可能不同。数据集合是指数据项对应的数据值,数据集合的长度也是固定值。
3、在针对负荷曲线数据进行处理(例如,查找或修改)时,需要先找到相应的负荷曲线数据,由于负荷曲线数据是按照时间顺序进行存储的,查找一般采用二分法,在n条负荷曲线数据内查找一条特定的负荷曲线数据,需查找log2n次,并且随着负荷曲线数量的增多,查找次数越多,查找效率非常低,占用较多的cpu资源,从而导致负荷曲线数据处理效率低,占
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种可有效提升负荷曲线数据处理效率的负荷曲线数据处理方法、装置和智能电表。
2、第一方面,本申请提供了一种负荷曲线数据处理方法。该方法包括:
3、响应于针对负荷曲线数据的处理请求,根据处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区;
4、根据处理请求,以及目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和目标负荷曲线的目标曲线索引数据;
5、根据目标曲线索引数据,对目标扇区的数值数据区中存储的目标负荷曲线的曲线数据进行处理。
6、在其中一个实施例中,根据处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区,包括:
7、基于二分查询法,根据处理请求中携带的目标时间,以及各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择候选扇区;
8、从候选扇区的一级索引区中获取候选扇区的扇区数据项标识;
9、根据处理请求中携带的目标数据项标识和候选扇区的扇区数据项标识之间的包含关系,确定目标扇区。
10、在其中一个实施例中,根据处理请求中携带的目标数据项标识和候选扇区的扇区数据项标识之间的包含关系,确定目标扇区,包括:
11、若扇区数据项标识中包含目标数据项标识,则将候选扇区作为目标扇区;
12、若扇区数据项标识中不包含目标数据项标识,则顺次从存储空间中空间位置位于候选扇区之后的其他扇区中选择目标扇区。
13、在其中一个实施例中,根据处理请求,以及目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和目标负荷曲线的目标曲线索引数据,包括:
14、从目标扇区的二级索引区中,获取目标扇区中存储的各负荷曲线的获取时间和曲线索引数据;
15、根据处理请求中携带的目标时间,遍历目标扇区中的各负荷曲线的获取时间,以从各负荷曲线中选择目标负荷曲线;
16、将目标负荷曲线的曲线索引数据,作为目标曲线索引数据。
17、在其中一个实施例中,二级索引区还存储有各负荷曲线包含的曲线数据项标识;根据处理请求中携带的目标时间,遍历目标扇区中的各负荷曲线的获取时间,以从各负荷曲线中选择目标负荷曲线,包括:
18、根据处理请求中携带的目标时间,遍历目标扇区中的各负荷曲线的获取时间,以从各负荷曲线中选择候选负荷曲线;
19、根据处理请求中携带的目标数据项标识和候选负荷曲线的曲线数据项标识之间的包含关系,确定目标负荷曲线。
20、在其中一个实施例中,根据处理请求中携带的目标数据项标识和候选负荷曲线的曲线数据项标识之间的包含关系,确定目标负荷曲线,包括:
21、若曲线数据项标识包含目标数据项标识,则将候选负荷曲线,作为目标负荷曲线;
22、若曲线数据项标识不包含目标数据项标识,则顺次从目标扇区中空间位置位于候选负荷曲线之后的其他负荷曲线中选择目标负荷曲线。
23、在其中一个实施例中,根据目标曲线索引数据,对目标扇区的数值数据区中存储的目标负荷曲线的曲线数据进行处理,包括:
24、根据目标曲线索引数据,获取目标负荷曲线的各曲线数据项对应的数据值的存储地址;
25、根据各曲线数据项对应的数据值的存储地址,对目标扇区的数值数据区中存储的目标负荷曲线的曲线数据进行处理。
26、在其中一个实施例中,该方法还包括:
27、根据待存储的负荷曲线的曲线数据,确定待存储负荷曲线的各曲线数据项和各曲线数据项对应的数据值;
28、将待存储负荷曲线的各曲线数据项对应的数据值存储至当前扇区的数值数据区中,并在当前扇区的二级索引区中写入待存储负荷曲线对应的曲线数据项标识和各曲线数据项的数据值的存储地址;
29、根据待存储负荷曲线的各曲线数据项,更新当前扇区负荷曲线记录数量。
30、第二方面,本申请还提供了一种负荷曲线数据处理装置。该装置包括:
31、选择模块,用于响应于针对负荷曲线数据的处理请求,根据处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区;
32、第一确定模块,用于根据处理请求,以及目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和目标负荷曲线的目标曲线索引数据;
33、处理模块,用于根据目标曲线索引数据,对目标扇区的数值数据区中存储的目标负荷曲线的曲线数据进行处理。
34、第三方面,本申请还提供了一种智能电表。智能电表包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
35、响应于针对负荷曲线数据的处理请求,根据处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区;
36、根据处理请求,以及目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和目标负荷曲线本文档来自技高网...
【技术保护点】
1.一种负荷曲线数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述处理请求中携带的目标数据项标识和所述候选扇区的扇区数据项标识之间的包含关系,确定所述目标扇区,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述处理请求,以及所述目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和所述目标负荷曲线的目标曲线索引数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述二级索引区还存储有各负荷曲线包含的曲线数据项标识;所述根据所述处理请求中携带的目标时间,遍历所述目标扇区中的各负荷曲线的获取时间,以从各负荷曲线中选择目标负荷曲线,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述处理请求中携带的目标数据项标识和所述候选负荷曲线的曲线数据项标识之间的包
7.根据权利要求1所述的方法,其特征在于,所述根据所述目标曲线索引数据,对所述目标扇区的数值数据区中存储的所述目标负荷曲线的曲线数据进行处理,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种负荷曲线数据处理装置,其特征在于,所述装置包括:
10.一种智能电表,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的负荷曲线数据处理方法的步骤。
...【技术特征摘要】
1.一种负荷曲线数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述处理请求中携带的目标时间,以及存储空间中各扇区的一级索引区中存储的第一条负荷曲线的获取时间,从各扇区中选择目标扇区,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述处理请求中携带的目标数据项标识和所述候选扇区的扇区数据项标识之间的包含关系,确定所述目标扇区,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述处理请求,以及所述目标扇区的二级索引区中存储的各负荷曲线的获取时间和曲线索引数据,确定目标负荷曲线和所述目标负荷曲线的目标曲线索引数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述二级索引区还存储有各负荷曲线包含的曲线数据项标识;所述根据所述处理请求中携...
【专利技术属性】
技术研发人员:唐义锋,魏兴龙,赵军平,曾雄威,
申请(专利权)人:深圳深宝电器仪表有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。