传感器仿真平台——数据生成模块(三)

数据生成模块有下面这样一种情况:

对于不同的传感器仿真实验,所使用的数据类型,数据数量不一样。

如实验一是进行最大覆盖率实验,则他需要的数据格式可能是如下所示:

1 Class Sensor
2 {
3     public int x;
4     public int y;
5     public double direction; //方向
6     public double sweep;//扇形大小
7 }

实验二进行的是信号强度实验,则他可能还需要一个用来作为覆盖物的目标,如下:

1 Class Target
2 {
3     public int x;
4     public int y;
5     public double direction; //方向
6     public double speed;//移动速度
7 }

如上,实验一需要100个Sensor对象,实验二则需要500个Sensor对象和10个Target对象,

那么,究竟用什么方法才能实现一种通用的数据生成接口呢?



其实,仔细一想,你会发现,数据是给算法用的吧?那和我的框架又有啥关系呢,谁用谁定义呗。

图中有两个接口,

IDataImp为数据生成接口,在框架中需要实现该接口来获得数据,init函数作为初始化数据函数,无论数据是随机生成还是外部导入,都由init来完成。

IIterator为迭代器,这样做的原因是,本人认为做实验总是会把每一个数据都做一遍,所以遍历数据进行实验就够了。对吧?

 1 {
 2     IIterator iterator;
 3     IDataImp list= new ConcreteDataImp();
 4     iterator = list.getIterator();
 5     while (iterator.MoveNext())
 6     {
 7         Hashtable table = iterator.CurrentItem();
 8         method.InitData(table);
 9         //do something
10         iterator.Next();
11     }
12  }

传感器仿真平台——数据生成模块(三),布布扣,bubuko.com

时间: 2024-12-22 02:34:14

传感器仿真平台——数据生成模块(三)的相关文章

传感器仿真平台——UI绘制模块(二)

这一章讲的是UI绘制模块 该模块的作用是将实验对象绘制出来,它可能是目标.传感器等等,由于事先并不知道会有哪些物体,也无法事先定义好某个对象该怎么画,以我懒人的性格,得了,就抛给用的人吧~喝前摇一摇,大家自己画自己. 具体设计如下图: 这个模块主要包括两个部分. 第一个是一个接口,IDrawSelf定义了一个方法,叫做DrawSelf(画自己?),任何使用UI绘制模块的类都需要对该接口进行实现,某个类自己画出自己. DrawBoard是一个自定义控件类,它通过ReDraw方法接收一系列的(知道怎

传感器仿真平台——平台与算法接口(五)

传感器仿真平台希望做的是简化传感器仿真时,对于前台窗口.参数管理.UI绘制和数据收集等方面的操作,使得使用者有更多的时间去关心算法的实现而非其他繁杂琐事.所以说平台与算法的接口是重点.写的好,表示框架的通用性就好,不然等于是废了. 定义如上图,设置一个Method接口,他需要使用算法必须的配置参数表和回调函数作为参数初始化. process表示仿真实验的运行,这里设定输入参数为实验所需的传感器的参数. 这里或许会有疑问,数据运行结果怎么给出呢?请看回调函数,Callback其实是一个函数指针,实

传感器仿真平台——实验环境配置(四)

实验环境配置,最初的想法是这样: 要有一个类,专门管理各种各样的实验环境参数,如场地长.宽等,为了方便起见,可以在该类的构造函数中进行文件读取,将外部xml作为配置文件加载各类参数.这样的话,使用的时候就可以如下这么做: Config config = new Config();//这个是我说的环境配置管理类 var width = config.width; 但是对于框架来说,这个方法看似好用,实际上却很难做到,为什么?参数不确定呀,不同的实验有不同种类的参数,实验一的参数是长.宽.实验二的是

传感器仿真平台——多线程与单步(六)

这个模块并没有被包括到整个平台框架中去,而是以工具的形式被放在一边.不过该模块的加入可以极大的提高仿真实验的直观性.(权当是熟悉多线程了,哈哈!) 仿真平台想要实现多线程运行和单步,并且希望结构尽量简单.这里需要说明,单步不仅仅是使用Thread.Stop()将线程中断,而是在某一次步骤执行完时非暴力的让其停止下来. 如上图所示,MutiThreadHelper需要加载数据,包括环境配置数据(Config).实验数据(Hashtable)等,接下来就会有三个函数: ——start用于开始开始线程

微信公众平台开发教程(三) 基础框架搭建

微信公众平台开发教程(三) 基础框架搭建 上一章,我们已经初步讲解了微信公众账号开发的基本原理,今天我们来探索设计实现. 首先我们设计了模块层次图,当然图中只是给出一种实现方式,不局限于此.具体见下图. 主要功能介绍如下: 1)请求接口层.处理HTTP请求,及响应 2)分发层.由接口层传入请求,然后具体分析请求类型,分发至不同的处理器 3)业务逻辑层.这里是我们的具体业务逻辑了,根据请求,实现具体的业务逻辑. 4)数据层.我们在实现某个应用时可能需要访问数据,可以是数据库或者是文件.如果是简单应

七种仿真平台

1 主要介绍以下七种仿真平台(侧重移动机器人仿真而非机械臂等工业机器人仿真): 1.1 USARSim-Unified System for Automation and Robot Simulation USARSim是一个基于虚拟竞技场引擎设计高保真多机器人环境仿真平台.主要针对地面机器人,可以被用于研究和教学,除此之外,USARSim是RoboCup救援虚拟机器人竞赛和虚拟制造自动化竞赛的基础平台.使用开放动力学引擎ODE(Open Dynamics Engine),支持三维的渲染和物理模

易网通物流平台报表功能模块是怎样的?

目前,很多物流平台都能够直观的展示物流公司各个物流环节的处理结果和进度,对于异常情况能够及时呈现预警结果.但是,现有物流系统各物流环节之间状态参数并不能实时.方便传递.如第三方货代庄家.物流公司之间,各自建立自己的数据库,没有进行很好的集成,同时物流行业舱位价格等实时变化过快,无法提供移动终端的方式以方便物流角色进行业务操作,及保证客户所查看数据实时更新. 此外,货主.物流公司.第三方货代.船东等角色之间仍然停留在依靠传统纷繁的电话.邮件联系和查询,人力交流成本随着接单数量增加而成倍增加. 在物

大数据笔记(三十一)——SparkStreaming详细介绍

Spark Streaming: Spark用于处理流式数据的模块,类似Storm 核心:DStream(离散流),就是一个RDD============================================一.Spark Streaming基础 1.什么是Spark Streaming? (*)Spark Streaming makes it easy to build scalable fault-tolerant streaming applications. (*)常见的流式处

python测试框架&&数据生成&&工具最全资源汇总

xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本pytest - 成熟且功能强大的单元测试框架plugincompat - pytest的执行及兼容性插件nosetests - 让python测试更容易一点slash - python实现的单元测试框架 extensions 扩展proboscis - 仿TestNG扩展了unit