没有合适的资源?快使用搜索试试~ 我知道了~
软件X 19(2022)101186原始软件出版物GetSensorData:一个可扩展的基于Android的多传感器数据注册应用程序胡安·D作者:Gutiérreza, Antonio R. Jiménezb,Fernando Secob,Fernando J. Álvareza,Teodoro Aguileraa,Joaquín Torres-Sospedrac,Fran Melchorda感觉系统研究小组。Universidad de Extremadura,Av.de Elvas s/n,06006巴达霍斯,西班牙b自动化和机器人中心,CSIC-UPM Ctra。Campo Real km 0.2,28500 Arganda del Rey,西班牙cCentro MITMI,Universidade do Minho,Alameda da Universidade,4800-058 Guimarces,PortugaldQuercus Research Group,Universidad de Extremadura,Avenida de la Universidad s/n,10003,Cáceres,西班牙ar t i cl e i nf o文章历史记录:2022年5月3日收到收到修订版,2022年7月23日接受,2022年保留字:传感技术Mobileapplications Androida b st ra ct智能手机是功能强大的工具,具有广泛的传感功能,可以在研究或日常生活应用中提供有用的信息。这些信息可以从设备的内置传感器或通过USB物理连接或通过蓝牙无线连接的其他外部传感器获得或者无线网络本文介绍了GetSensorData应用程序,它提供了一个开源的、灵活的和可扩展框架,用于注册来自Android设备的传感器数据。该应用程序使用标准格式和同步,便于与其他软件的互操作性。最终开发人员(特别是参与研究的人员)可以节省创建传感器采集应用程序的精力和时间六年来,各种研究小组在与其工作领域有关的不同活动中使用并成功评估了该应用程序。一些例子是在会议举行的比赛中校准定位系统,在室内环境中建模无线信号路径损耗传播或为无监督学习算法收集数据。©2022作者(S)。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本2.3.1用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00113Code Ocean compute capsuleGNU通用公共许可证GNU General Public Licensev3.0使用Git的代码版本控制系统使用Java、Kotlin的软件代码语言、工具和服务编译要求,操作环境依赖Android Studio 2021.1.1 Patch 3,Android 5.0(Lollipop,API 21)如果可用,链接到开发人员文档/手册https://gitlab.com/getsensordatasuite/getsensordata_documentation问题支持电子邮件lopsi. gmail.com软件元数据当前软件版本2.3.1此版本可执行文件的永久链接https://gitlab.com/getsensordatasuite/getsensordata_android/-/blob/master/Releases/GetSensorData-2.3.1.apk法律软件许可证GNU通用公共许可证v3.0计算平台/操作系统Android 5.0(Lollipop,API 21)安装要求依赖关系如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://gitlab.com/getsensordatasuite/getsensordata_documentation问题支持电子邮件lopsi. gmail.com*通讯作者。电子邮件地址:andy@unex.esJuan D. Gutiérrez)。https://doi.org/10.1016/j.softx.2022.1011862352-7110/©2022作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011862图1.一、 建议使用智能手机作为研究工具的解决方案。1. 动机和意义现代智能手机的处理能力允许实时记录来自其内置和外部连接的传感器的多个感官数据流。这种处理能力能够实现更复杂的应用,例如改进的室内和室外定位。然而,每个研究小组都以更适合其目标的方式获取,这种格式的缺乏一致性使得难以比较结果和共享数据,也削弱了来自不同群体的研究人员之间的共同努力的能力[1,2]。在研究工作中,获取原始传感器数据的方法,其格式化或预处理,以及数据本身,并不总是共享的。幸运的是,这种趋势正在改变,目前,更容易找到作者共享的数据集和支持材料[3,4]。尽管存在开发用于便携式设备的应用的软件工具,但是这种模块的创建和集成对于非专家来说可能是一项艰巨的任务,花费时间和资源来开发用于传感数据采集的应用。有各种各样的应用程序来捕获和保存Android设备上的传感数据。以下是与这些功能最相关的应用程序的选择。 传感器数据1是Android应用商店中搜索用于传感器数据应用,下载量超过10万次。该应用程序可以从Android设备的内置传感器捕获数据,以供日后分析。虽然它是免费提供的,但它的一些功能被锁定在应用内购买之后,而且它的源代码也不可用。具有类似传感器数据记录器2还提供了其源代码。不幸的是,此应用程序已多年未更新,这可能会导致应用程序停止工作,因为没有提供适当的支持。 OpenCamera Sensors3 示出比前两个更活跃,并提供其源代码。然而,可用传感器的数量限于1 https://play.google.com/store/apps/details? id=com.matlabgeeks.gaitanalyzer2 https://play.google.com/store/apps/details? id=net.steppschuh.传感器数据记录器3 https://github.com/MobileRoboticsSkoltech/OpenCamera-Sensors相机和惯性测量单元(IMU)在这种情况下,实际的相机充当主传感器,而其余的传感数据被添加到捕获的图像中。不幸的是,这些应用都不允许使用外部传感器。 更重要的是,没有一个提供模块化架构,允许研究人员添加他们的传感器,无论是内部的不支持的应用程序或外部的电缆或无线连接。收集传感数据的理想应用程序应该经常更新,并与各种设备兼容。它的代码应该是开源的,以便可以修改和审计。一个合格的开发团队应该支持它的维护。它应该与内置和外部传感器一起工作,易于扩展,并且可以免费使用。本文介绍了GetSensorData,一个Android应用程序,专注于传感器数据采集。数据可以实时显示在设备屏幕上,或保存以供以后分析,从而创建事实上的标准格式。该应用程序是开源的,其开发是通过Git pull requests由社区驱动的。其架构旨在促进合作,鼓励其他人将应用程序中所需的传感软件包括在内,并使其可用于研究社区。GetSensorData具有用于传感器管理的模块化和可扩展的类层次结构,并且它附带一套工具来执行任务,例如在个人计算机中解析或可视化采集图1中描绘了描述该应用的益处的图表。1.一、该应用程序最初的设想是帮助定位算法的开发和评估。自2016年室内定位和导航国际会议(IPIN)以来,它已很容易地用于不同的室内定位比赛[2,5为此,GetSensorData套件中包含了一个特定的图形用户界面(GUI),用于精确地进行地理参考和校准室内地图。该工具还有助于将地面实况(GT)轨迹定义为序列地图上的参考点。 从GetSensorData的第一个版本开始,该应用程序已被许多科学团体测试和使用,以改进他们的定位算法。然而,GetSensorData并不局限于本地化任务:有兴趣从传感数据中获取信息的研究人员可以使用并扩展该应用程序以满足自己的需求。胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011863图二、 不同的 智能手机传感器和从 它 们 获 取 的 数 据 的 可能应用。本文的其余部分组织如下。在第2节中,介绍了应用程序的体系结构和功能。软件功能的演示见第3节。第4节强调了使用和扩展的好处-应用程序。最后,在第5节中,从应用中得出的结论和未来的工作。此外,注释代码片段可以在附录A中找到。2. 软件描述GetSensorData是一个Android应用程序,能够显示来自智能手机上不同传感器的数据。它的主屏幕,如图所示。二、此外,从传感器获取的数据也可以使用标准格式永久存储在文件中。带有时间戳的标记可以包含在生成的文件中,以简化同步任务。应用功能可以通过新的内置或外围传感器进行扩展。其他应用可以利用所获取的数据用于诸如室内定位、基于位置的服务(LBS)、行人航位推算(PDR)或可见光通信(VLC)等任务。GetSensorData能够从硬件传感器、软件传感器中检索数据。4和外部传感器连接到通过USB或蓝牙连接智能手机。软件架构允许以最小的努力包括新的传感器。射频识别(RFID)读取器5和惯性运动单元传感器6作为示例被包括在本申请的当前版本该应用程序与Android兼容5.0(Lollipop,API 21)及以上,因此它可以在大约98.6%的现有设备上运行74 https://developer.android.com/guide/topics/sensors/sensors_overview5 R& D Data Products RF Code M220移动阅读器:https://r-ddataproducts. 联系我们6 Xsens MTi-G IMU:https://www.xsens.com/7 Android分布仪表板:https://developer.android.com/about/dashboards2.1. 软件构架GetSensorData使用模块化架构,其核心是允许抽象传感器操作的类层次结构。演示与应用逻辑完全分离,提供了一个易于使用的标准界面,适用于所有传感器,内部和外部。由于这个接口,可以共享代码并简化向项目添加新传感器的过程。图图3示出了应用程序中使用的类层次结构图,而图4示出了应用程序中使用的类层次结构图。4展示了Android Activity中类生命周期的流程图。左列中的方法由程序员直接调用。右边的方法在特定事件发生时引发,以便程序员可以相应地做出反应在应用程序中包含传感器的第一步是创建从DataSensor继承的子类。接下来,需要用适当的代码完成方法。一旦创建了子类,操作就是系统化的,与传感器无关。当Activity启动时,需要调用con-sign()方法来连接传感器。当时,活动销毁时,必须调用disconnect()方法,因此分配给类副本的资源被释放。当activity运行时,startReading()方法允许从传感器读取数据。相反,stopReading()方法停止读取过程。根据主要活动的生命周期使用这些方法。DataSensor 类 附 带 一 个 名 为DataSensorEventModule 的 接口。使用委托软件设计模式[8],遵循此接口的任何类都可以以接 收 传 感 器 事 件 。 一 旦 传 感 器 连 接 上 ,方 法onDataSensorConnected()被调用。 相反地,当传 感器 断开 连接 时, 将调 用onDataSensorDisconnected() 。最 后,如果 有数据要显 示- DataSensorChanged()。每当传感器有数据要显示时,它就会通知事件,相应类实例将使用方法getStatus()请求数据以显示它们。此方法接收数据目的地作为参数:屏幕或日志文件。根据目的地,胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011864图三. GetSensorData软件中的DataSensor类层次结构。见图4。G e t S e n s o r D a t a 软 件 中 的 DataSensor类实例生命周期。胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011865数据格式将不同。DataSensor还提供了关于传感器的其他传感器信息,例如其名称、功能或可用性等,尽管图1中显示了一系列属性。3 .第三章。这种设计可以平等地管理所有传感器,而不是单独操作不同的事件,从而节省了大量的编程工作。而且,应用程序同样,无论是实时显示数据还是将其保存在文件中以供进一步处理。使用这种类层次结构的主要优点是,它简化了向应用程序添加新传感器的过程。未来的程序员,包括新的内部或外部传感器,不必担心如何显示数据:他们只需要提供数据。关于如何创建传感器管理类的注释示例可以在附录中看到。2.2. 软件功能当应用程序启动时,它会显示如图所示的界面屏幕。5(a).在顶部,应用程序名称出现。右边的齿轮图标()允许访问应用程序首选项面板,如图所示。5(c).还有四个按钮执行不同的操作,如下所述。在屏幕的中心会出现GetSensorData可以使用的不同传感器的列表。由于并非所有的Android智能手机都具有相同的传感器,因此设备中存在的传感器显示绿色背景,而不存在的传感器显示红色背景(参见图5(a))。因此,直观地显示智能手机中可用的各种传感器是很简单的。“内部传感器”部分显示智能手机提供的传感器,而“外部传感器”部分提供使用USB或蓝牙等通信协议连接到智能手机的传感器。相机也被视为常规传感器。智能手机摄像头获取的图像预览显示在屏幕的右下方。选择的相机和主屏幕中的预览位置都可以通过应用程序首选项进行更改或完全禁用主屏幕上的不同操作按钮的工作原理如下。屏幕顶部的三个按钮是切换按钮。‘‘Show Sensor Features’’ expands or collapses eachrowinthelist of sensors, showing or hiding their features:manufacturer, model version, resolution, maximum range, powerconsumption and sampling rate (as shown in the gray areas of “显示实时数据”扩展或折叠每个可用传感器的实时显示(见图中的白色区域)。5(b))。显示的采样频率由应用程序估计,并取决于传感器“开始保存日志文件”启动一个后台任务,将所有传感数据保存在日志文件中,以便以后进行离线分析,直到用户再次触摸它以停止应用程序保存数据。主屏幕持续向用户显示传感数据。生成的文件存储在文件夹“LogFiles_GetSensorData”中。它的文件名是日期和时间的唯一组合,用户开始记录过程,其格式在下文第3.1节中描述。“标记第一位置”按钮用于在日志文件中插入参考线。虽然其最初的功能是帮助定义GT,但引用可以标记任何事件的发生。这些标记有助于在日志文件中定位特定信号3. 说明性实例为了达到这一目的,它作为一种工具诞生,以帮助定位任务,特别是在IPIN比赛期间。为了准备2020年IPIN版本,创作者录制了一段演示视频,展示如何使用该应用程序进行数据采集。8在收集任何传感数据之前,第一步是检查所有所需的传感器是否可用。那些存在的在应用程序的主屏幕上以绿色标记“显示传感器配置”按钮用于检查所需的每个传感器的特性,而“显示实时数据”按钮用于检查应用程序是否正在记录传感器收集的数据和数据采样频率。当用户按下“开始保存日志文件”按钮时,数据收集开始。应用程序将显示一条确认操作的消息,按钮将显示自数据收集开始以来经过的秒数。在用户移动到第一个要配准的位置之前,建议进行大约30 s的随机移动,然后再保持静止30 s。在后处理中,手机在各种方向上移动以去除磁力计偏差;然后,它保持在静态位置以估计并去除陀螺仪偏差。该校准步骤可以根据过程中涉及的传感器的性质而不同校准传感器后,触摸“标记第一位置”按钮然后,用户以恒定的速度从第一个测试点走到最后一个测试点,在其中停下来插入“POSI”标签。当最后一个测试点被注册时,用户保持静止30秒,然后从最后一个点到第一个点以相反的方向重复该过程。 之后,用户停止通过触摸“停止保存”按钮完成数据收集然后,日志文件可以与那些对分析收集的数据感在视频中描述的过程中收集的数据3.1. 日志文件GetSensorData创建的日志文件是文本文件,包含-从由智能电话生成的连续传感数据流中读取多行。 每一行在接收到新数据时按顺序存储,其中包含由分号分隔的不同值。该行以唯一的四个字母的键(例如,“WIFI”、“ACCE”、“MAGN”、“BLE4”、“GNSS”)开始,该键标识了与行关联的传感器。由于多样性在每个传感器生成的数据中,时间戳之后的值可以包括不同数量的字段。清单1给出了一个实际日志文件的摘录。行中的条目 28对应于可用于标记GT位置的4. 影响4.1. LOPSI研究小组GetSensorData被认为是一种工具,可以方便地从智能手机获取,保存和分析传感数据。GetSen- sorData已经在本文的合著者的几个作品中被用作本地数据收集工具,尽管没有明确提到。在[9]中,它被用于使用内部光传感器虽然GetSensorData是一个通用应用程序,所获得的传感器数据可用于各种各样的http://indoorloc.uji.es/ipin2020track3/胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011866图五. G e t S e n s o r D a t a 主屏幕外观和首选项。左:智能手机的检测到的(绿色)和未检测到的(红色)传感器列表;中间:瞬时 传感器读数;右侧:设置和首选项。(For关于本图图例中对颜色的引用的解释,读者可参考本图图例的网络版本。(见文章)清单1:使用GetSen sorData 创建的日志文件示例。123456789101112131415161718192021222324252627282930313233343536和外部MTi-Xsens惯性传感器。此外,在[10]GetSensorData与RFCode用于基于断层摄影的定位。 此外,外部USB和蓝牙传感器首次出现在这些作品中。WIFI:21.644; 835.679; test − CAR; 00:0b:86:27:3e:82; 2462; − 87 WIFI; 21.644; 835.679;test − CAR; 2019 - 02 - 15 00:02462; − 87 GYRO; 21.697; 835.705; − 0.09682; − 0.21533; −0.21197; 3 ACCE; 21.697; 835.712; 0.34177; 2.88860; 8.78074; 3 MAGN; 21.698; 835.712; −1.74700; 15.14200; − 35.62900; 3 AHRS; 21.700; 835.712; 14.047199; − 4.788099; 4.554478;0.12372229; − 0.03657122; 0.03429850; 3 GYRO; 21.702; 835.712;-0.09682;-0.21533;-0.21197;3PRES;21.703;835.715;964.0800;3LIGH;21.704;835.715;376.0;3ACCE;21.707;835.720;0.41779;3.05919;8.76038;3GYRO;21.707;835.720;−0.11270;−0.19945;−0.18937;3AHRS:21.708;835.720:14.029488;−4.859563;4.467018:0.12356212;−0.03729048:0.03347217;3LIGH;21.709;835.722;376.0;3GYRO; 21.709; 835.725; − 0.13225; − 0.17135; − 0.21441; 3 ACCE; 21.709; 835.731; 0.31484;3.03944; 8.68257; 3兆; 21.710; 835.731; − 2.21700; 15.14200; − 35.62900:3 AHRS; 21.710;835.731; 14.017381; − 4.898848; 3.918406; 0.12328733; − 0.03822555; 0.02868964; 3 GYRO;21.711; 835.731;-0.13225;-0.17135;-0.21441; 3LIGH;21.711;835.734;376.0;3GYRO;21.711;835.736,−0.15424;−0.14447,−0.27031;3ACCE;21.712;835.740;0.21368;2.98078;8.72208;3GYRO;21.712;835.740;−0.15424;−0.14447;−0.27031;3AHRS:21.713;835.740;13.977528;−4.928859;3.829847;0.12292042;−0.03859377;0.02790756;3LIGH;21.714;835.742;387.0:3GYRO; 21.714; 835.745; − 0.18265; − 0.11973; − 0.31887; 3 ACCE; 21.747; 835.811; −0.33878; 2.73298; 10.35612; 3 POSI; 21.748; 2; 40.51296307; − 3.34844; 0; 20 MAGN;21.748; 835.811; − 3.00200; 15.47500; − 35.62900; 3 AHRS; 21.748; 835.811; 13.456279; −4.567315; 0.727160; 0.11731420; − 0.03882872; 0.00162862; 3陀螺; 21.749; 835.811;-0.11240;-0.07239;-0.27855; 3LIGH; 21.749; 835.814; 417.0; 3 BLE4; 21.750; Eddystone; ES:A3:78:5D:3E:9A; −94; 20160000010; 5954; 17.0; 20240; 13591778 BLE4; 21.751; iBeacon; C6:59:DE:CF:00:51; − 73; − 76; 2016; 3; b9407130 − 558 − 466e − aff9 − 25556b57fe6d BLE4;21.751; iBeacon; F2:1E:E9:6C:5B:FB; − 74; − 76; 2016; 5; b9407f30 − f5f8 − 466e− aff9 − 25556b57fe6d BLE4; 21.752; iBeacon; CO:F6:0F:77:8A:E9; − 76; − 76;2016; 1; b940730 − f5f8 − 466e − aff9 − 25556b57fe6d胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)10118674.2. IPIN赛事此外,GetSensorData已经在IPIN会议的不同版本中进行了测试,从2016年开始[2]。 具体而言,它被用于场外和离线定位比赛,预先提供数据收集和定位系统校准。由于使用GetSensorData创建的日志文件,提供了多个信息源。 那些负责生成日志文件的人在记录数据的同时不断移动,在四个不同的建筑物中行走和真实地持有智能手机。五个团队参加了比赛,用不同的方法处理同一个数据集在[5]中,作者描述了IPIN 2017竞赛的结果,并将其与其他基于竞赛的方法(Microsoft [11]和Perf-loc [12])和在线评估网站进行了比较,重点关注基于智能手机(非现场)的赛道。所有敏感信息,如Wi-Fi服务集标识符(SSID)和媒体访问控制(MAC)地址,都在IPIN 2018基于智能手机的随后的每个IPIN版本都引入了新的挑战,例如最高更新率(2019年[14] /2020年[15]),大型开放区域(2020年[15]),自定义蓝牙低功耗(BLE)网络(2021年)或礼堂中的楼层转换(2021年)。GetSensorData也被用作PDR教程中的教学工具[6]。在实践会议期间,与会者被要求在其设备上安装GetSensorData后进行实验。然后,他们每个人都可以收集数据并对其进行处理,以理解和实践本教程中提出的PDR概念和方法。4.3. 其他研究小组在参加IPIN竞赛后,许多研究人员利用了GetSensorData的功能。在中国宁波诺丁汉大学彼得·曼斯菲尔德爵士大楼的4楼,使用摄像头和用GetSensorData和华为MT 7-TL 00收集的PDR数据对视觉辅助定位系统进行了评估[16]。在[17]中提出了基于众包智能手机数据的免校准为了验证生成3D路径损耗热图的系统方法,[18]的作者使用GetSensorData在Gujrat大学Arfa Karim街区的两层走廊中收集每立方米的参考数据。[19]的作者提出了一种使用基于BLE的定位信息来检测人们日常日常生活中的行为变化的方法。在[20]中,作者提出了一种现场调查方法,该方法可以由专门的调查员使用智能手机自动构建用于室内定位的机会信号地图。[21]的作者提出了一种过渡无监督学习算法,能够分割大量未标记序列,并学习两个连续信号状态与一步运动之间的关系。最后,GetSensorData也是[7]中开发的用于行人和机器人室内定位的磁场传感相关研究工作的一部分。4.4. 预期用户虽然GetSensorData功能在前面的例子中- ples几乎保持不变,其架构已被优化。第2.1节中介绍的模块化和可扩展的类层次结构是本文中介绍的版本的主要增强。此外,相机最近被作为传感器包括在内,以便GetSensorData可以帮助研究[22,23]中开发的智能手机的可见光定位系统。这项工作是第一作者博士论文的一部分从用户的角度来看,Android应用程序遵循事件驱动的架构,在用户尝试执行操作时响应用户交互。GetSensorData的设计考虑到了两种类型的用户:使用应用程序获取传感数据的最终用户,实时查询或稍后处理数据,以及希望扩展应用程序功能的研究人员,包括新的合适的传感器。为了满足最终用户的需求,提供一个提供第2.2节中所述功能的应用程序就足够了。然而,满足研究人员的需求有点复杂:向应用程序中添加新的传感器需要一些编程技能,这并不能保证,因为有兴趣从智能手机中获取传感数据的研究人员该软件是一个开放式工具,专门用于基于智能手机的应用程序的数据收集,这将使社区能够提供具有更高程度的多功能性的结果。5. 结论我们介绍了GetSensorData,这是一个开源应用程序,用于呈现、收集和分析来自Android智能手机的传感数据。该应用程序的开发源于几个著名的研究机构的合作,因为他们都需要从手机中获得感官数据。传感器可以嵌入设备中或外部连接。相机也被认为是一个传感器,预览可以在应用程序屏幕中显示。此应用程序与Android 5.0(Lollipop,API 21)及以上版本兼容,因此可以在约98.6%的现有设备上运行。获取- SensorData软件架构允许以最小的努力进行扩展。经过六年多的不同环境测试,许多研究人员利用了该应用程序,该应用程序已经准备好开源,并通过Git公共存储库提供,该存储库通过拉请求促进协作。不同的存储库与文档和补充工具伴随着应用程序。我们希望GetSensorData继续帮助社区,并随着现代智能手机中包含的新传感器以及不同性质的外部传感器的出现而不断发展。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性文章中描述的研究未使用任何数据致谢这项工作得到了西班牙政府和欧洲区域发展基金(ERDF)的支 持 , 通 过 项 目 MICROCEBUS ( 赠 款 RTI 2018 -095168-B-C54/C55),以及埃斯特雷马杜拉地区政府和ERDF-ESF(项目GR 21054)。胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011868清单2:环境温度DataSensor子类。12345678910111213141516171819202122232425262728清单3: 活动内的DataSensor生命周期。12345678910111213141516171819202122232425262728293031323334353637附录A. 示例代码段分析清单2显示了负责从环境温度传感器收集特性和数据的Kotlin子类的简化版本。类的完整代码可以在https://bit.ly/3tLD3p1网站。它与图4中描绘的数据流相匹配。任何有兴趣在GetSensorData中包含新传感器的研究人员都应该遵循相同的模式。此外,清单3提供了一个实例,说明如何在应用程序主活动中使用环境温度传感器,该活动是用Java编程的。只显示与该类相关的代码类的完整代码可以在https://bit.ly/3b9mWuX上找到。最 后 , 清 单 4 包 含 一 个 简 化 版 本 的 Java 代 码 , 用 于 通 过DataSensorRecy-clerView实例收集和显示传感器数据。完整的代码可以在https://bit上找到。ly/3xDZZI 3. 此类表现出与标准clasAmbientTemperatureDataSensor(context:Context,updateInterval:Double):DataSensorr(context,DataSensorType. AmbientTemperare,updateInterval)的情况下,overridefunggetName():String=if(sensor!null){sensorr.name} else {context. getString(R. string.ambient_temperatere_sensorr_not_det et e t eted)}overrdefunggetFeatures():String=if(sensor! 空值){//返回一个文件} else {context. getString(R. string.no_features)}奥维里德福恩 getStatusForrScreen():String{//重新设置您的系统或数据库,以便您正确地使用该系统}奥维里德福恩 getStatusForrLog():String{//返回用于保存日志文件的字符串或字符串}}公共图书馆 classMainActivityimentsDataSensorEventListener{...一种嵌入式数据处理系统;...@Overridepublicvoid onCreate(BundlesavedInceState){起来了。关于真实性(savedincestat);...ambientTemperatureDataSensor=nwAmbientTemperata publicvoidrun();...}@Override公司简介 沃伊德 publicvoidrun(){...if(ambientTemperatureDataSensor. isAvailable()){ambientTemperata t ataSensorr. intn=nums();}...}@Override保护虚空public void run(){...AmbientTemperatureDataSensor.intn=nums();...}@Override公司简介 沃伊德 publicvoidrun(){...AmbientTemperatureDataSensor.inti=nums();...}...}胡安·D安东尼奥·古铁雷斯Jiménez,Fernando Seco等人软件X 19(2022)1011869清单4:DataSensor数据显示在屏幕中。123456789101112139进行了一些修改,以便于在本项目中使用它。数据按照类似的过程存储在日志文件中。附录B. 补充数据与本文相关的补充材料可以在https://doi.org/10.1016/j.softx.2022.101186上找到。引用[1] Ehrlich CR,Blankenbach J.基于多传感器智能手机的建筑物内行人定位。在:2018无处不在的定位,室内导航和基于位置的服务。2018年,第1-10。[2] Torres-Sospedra J,Jiménez AR,Knauth S,Moreira A,Beer Y,等. IPIN2016基于智能手机的离线室内定位竞赛:分析和未来工作。传感器2017;17(3).http://dx.doi.org/10.3390/s17030557,URLhttps://www.mdpi.com/1424-8220/17/3/557。[3] Laoudias C , Constantinou G , Constantinides M , Nicolaou S ,Zeinaouour-Yazti D , et al. The airplace indoor positioning platform forandroidsmartphones. 2012年IEEE第13届移动数据管理国际会议。2012年,第312-5[4] Georgiou K,Constambeys T,Laoudias C,Petrou L,Chatzimilioudis G,etal. Anyplace:A crowdsourced indoor information service. 2015年第16届IEEE移动数据管理国际会议。 第1卷。 2015年,p. 291-4[5] Torres-Sospedra J,Jiménez AR,Moreira A,Lungenstrass T,Lu W-C等。以移动为中心的室内定位系统的离线评估:2017年IPIN竞赛的经验。传感器2018;18(2).http:dx.doi.org/10.3390/s18020487,URLhttps://www.mdpi.com/1424-8220/18/2/487。[6] Jiménez AR,Seco F,Torres-Sospedra J.用于智能手机多传感器数据配准和GT映射的定位应用工具2019年室内定位和室内导航国际会议2019年,第1-
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功