传感器仿真平台——数据生成模块(三)
2014-08-17 23:26
225 查看
数据生成模块有下面这样一种情况:
对于不同的传感器仿真实验,所使用的数据类型,数据数量不一样。
如实验一是进行最大覆盖率实验,则他需要的数据格式可能是如下所示:
实验二进行的是信号强度实验,则他可能还需要一个用来作为覆盖物的目标,如下:
如上,实验一需要100个Sensor对象,实验二则需要500个Sensor对象和10个Target对象,
那么,究竟用什么方法才能实现一种通用的数据生成接口呢?
其实,仔细一想,你会发现,数据是给算法用的吧?那和我的框架又有啥关系呢,谁用谁定义呗。
图中有两个接口,
IDataImp为数据生成接口,在框架中需要实现该接口来获得数据,init函数作为初始化数据函数,无论数据是随机生成还是外部导入,都由init来完成。
IIterator为迭代器,这样做的原因是,本人认为做实验总是会把每一个数据都做一遍,所以遍历数据进行实验就够了。对吧?
2014/8/27补:
上面的做法看上去很好,但是实际使用的时候,自我感觉有点作茧自缚。原因有很多,这里就不一一列举了。不过.Net有定义好的迭代器接口可以现成使用。
最终被我改成了这样,真是越改越简单了。实现IEnumerator接口使数据可以迭代,重载[]实现随机访问
对于不同的传感器仿真实验,所使用的数据类型,数据数量不一样。
如实验一是进行最大覆盖率实验,则他需要的数据格式可能是如下所示:
Class Sensor { public int x; public int y; public double direction; //方向 public double sweep;//扇形大小 }
实验二进行的是信号强度实验,则他可能还需要一个用来作为覆盖物的目标,如下:
Class Target { public int x; public int y; public double direction; //方向 public double speed;//移动速度 }
如上,实验一需要100个Sensor对象,实验二则需要500个Sensor对象和10个Target对象,
那么,究竟用什么方法才能实现一种通用的数据生成接口呢?
其实,仔细一想,你会发现,数据是给算法用的吧?那和我的框架又有啥关系呢,谁用谁定义呗。
图中有两个接口,
IDataImp为数据生成接口,在框架中需要实现该接口来获得数据,init函数作为初始化数据函数,无论数据是随机生成还是外部导入,都由init来完成。
IIterator为迭代器,这样做的原因是,本人认为做实验总是会把每一个数据都做一遍,所以遍历数据进行实验就够了。对吧?
void DoWork() { IIterator iterator; IDataImp list= new ConcreteDataImp(); iterator = list.getIterator(); while (iterator.MoveNext()) { Hashtable table = iterator.CurrentItem(); //do something method.InitData(options,Callback); method.process(table); //do something iterator.Next(); } }
2014/8/27补:
上面的做法看上去很好,但是实际使用的时候,自我感觉有点作茧自缚。原因有很多,这里就不一一列举了。不过.Net有定义好的迭代器接口可以现成使用。
public interface IDataImp:IEnumerator { void init(int count); object this[int index] { get; set; } }
最终被我改成了这样,真是越改越简单了。实现IEnumerator接口使数据可以迭代,重载[]实现随机访问
相关文章推荐
- 传感器仿真平台——UI绘制模块(二)
- 30万条2GB数据网站平台生成HTML网页每分钟超过1000张
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台二(C#开发)-登录功能模块
- 传感器仿真平台——实验环境配置(四)
- 跟我一起学extjs5(35--单个模块的设计[3根据类的标注自动生成数据])
- 跟我一起学extjs5(30--加入模块和菜单定义[3后台系统数据的组织和生成])
- 模块划分:平台类,数据类,方法类
- AutoEE_V3-自动智能快速开发平台-模块代码生成功能讲解
- 传感器仿真平台——通用框架定制(一)
- USB口433MHz透传模块 数据传输模块 无线传感器模块
- 电商平台技术架构 多用户商城 仿天猫 淘宝 亚马逊 当当 阿里巴巴 大数据模块 低成本运维 高效开发
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台四(C#开发)-通用数据管理模块
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台二(C#开发)-登录功能模块
- J2EE快速应用开发平台 工作流平台 数据交换 和 规则引擎 代码生成
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台二(C#开发)-登录功能模块
- 传感器仿真平台——多线程与单步(六)
- 大数据环境下基于R语言的数据挖掘平台 之 大数据处理与导出模块