资料介绍
描述
冠状病毒在全球范围内增长了很多,并且出现了许多公共数据集以提供有关病毒传播的实时和历史信息,但是您如何在自己的嵌入式设备中将所有这些信息绘制在图表上呢?
在本文中,我们展示了如何从头开始构建图表的图形用户界面 (GUI),连接到冠状病毒信息的 REST 数据库,以及如何在嵌入式设备上运行它。收集的数据将绘制在代表全球病毒演变的折线图上,我们将使用Toradex Colibri 模块和NXP iMX6ULL 执行所有测试,无需 GPU。
此图表上显示的数据可从Rapid API网站的冠状病毒地图部分免费获得。可以使用 Rest WebService 进行连接,也可以在设备内下载 JSON 数据和包。此代码是使用TotalCross SDK编写的,用于开发、构建应用程序并将其打包到嵌入式设备,如下图所示。
Colibri iMX6ULL 是一款具有 Wi-Fi 和蓝牙功能的 Toradex 计算机模块,基于 NXP i.MX 6ULL 应用处理器,具有适用于各种物联网和嵌入式设备的 Arm Cortex-A7 内核。这个强大的工具与 Totalcross SDK 一起使用,可以开发广泛的应用程序。所有这些示例代码都可以在GitHub 上免费获得,您只需将开发环境配置为 TotalCross。在这里,我们有一个简单的教程,它还提供了有关部署和运行项目的信息。
要访问冠状病毒数据,请访问 Rapid API 网站。在冠状病毒地图上,获取URL请求数据;最新的报告菜单有代码片段。该项目基本上有两个主要类,CoronaChart和CoronaChartApp;它还有运行类 RunCoronaChartApplication。数据离线时使用JSON文件,设备可以直接读取信息;此文件已保存在资源文件夹中。
CoronaChart 类负责在图表上构建数据。CoronaChartApp 类是加载主 UI 的主窗口。它连接到 Web 服务并在图表中运行确认、恢复和死亡的动画。
private void fillData() {
[...]
if (offlineCheck.isChecked())
response =
getCoronavirusData("https://coronavirus-map.p.rapidapi.com/v1/summary/latest", HttpStream.GET);
else
response = new JSONObject(new String(Vm.getFile("request.json")));
JSONObject data = response.getJSONObject("data");
dates = data.names();
array = data.toJSONArray(dates);
for (int i = 0; i < array.length(); i++) {
date = dates.getString(i);
item = array.getJSONObject(i);
MyDate myDate = new MyDate(Integer.parseInt(Convert.remove(date, "-")));
confirmedList.add(new Data(myDate, item.getInt("total_cases")));,>
recoveredList.add(new Data(myDate, item.getInt("recovered")));,>
deathsList.add(new Data(myDate, item.getInt("deaths")));,>
}
[...]
}
最重要的方法是 fillData(),它用于从 Rapid API 以 JSON 格式加载信息。getCoronavirusData() 使用 Http Stream 连接到 API 并从站点获取信息。它返回将在 fillData 上处理的 JSON 对象。必须使用 Rapid API 密钥更改 secretKey 字符串才能使连接正常工作。
每次点击开始按钮时,它都会连接到 Web 服务,下载所有信息并将其绘制在图表上。也可以在资源文件夹中加载文件request.json 。Vm TotalCross 类具有操作文件的方法,因此我们可以打开带有电晕信息的 JSON 文件。该文件将被加载到应用程序上,将这些数据解析为字符串并解析为 JSONObject。
JSONObject getCoronavirusData(final String url, String httpType) {
[...]
HttpStream.Options o = new HttpStream.Options();
o.readTimeOut = 5000;
o.socketFactory = new SSLSocketFactory();
o.requestHeaders.put("x-rapidapi-host", "coronavirus-map.p.rapidapi.com");
o.requestHeaders.put("x-rapidapi-key", secretKey);
HttpStream hs = new HttpStream(new
URI("https://coronavirus-map.p.rapidapi.com/v1/spots/summary"), o);
ByteArrayStream bas = new ByteArrayStream(4096);
bas.readFully(hs, 10, 4096);
hs.close();
String string = new String(bas.getBuffer(), 0, bas.available());
request = string;
[…]
}
此 JSONObject 将被读取并分离为确认列表、恢复列表和死亡列表。加载构建包时,文件 request.json 在设备上自动可用。除了我们图表上的信息外,还有其他信息可能对未来的工作有用,例如活跃病例、危急、测试、死亡率和康复率。
项目中存在的大多数其他方法都涉及图表中数据的组装和动画;可以在可供使用的代码中研究它们。其余的代码片段是关于屏幕的组装,主类从 MainWindow 类扩展,其覆盖方法如 InitUI,它将构造屏幕上的所有元素,如背景颜色、按钮、复选框及其监听器方法。
关于技术
该项目中使用的TotalCross 技术提供了一个占用空间小的应用程序(甚至使用 Java),非常适合这种设备。TotalCross 不使用 JVM(Java 虚拟机),但由其自己的开源虚拟机 TCVM 支持。这使其能够保证使用此框架开发的应用程序的几乎本机性能。此外,它使我们能够用很少的命令创建出色的 UI,即使对于低端 MPU 也是如此。
按照这些步骤,您可以快速构建您的冠状病毒图表并在嵌入式设备上运行它。您可以根据需要将相同的知识应用于不同的数据库并创建自己的图表。
- 社交距离提醒(冠状病毒)开源案例
- 冠状病毒实时更新器开源分享
- 【新型冠状病毒物联网启示录】之一:智慧城市的马斯洛需求模型
- 嵌入式linux设备中应用运行日志的实现
- VivadoHLS嵌入式实时图像处理系统的构建与实现优先出版 0次下载
- 嵌入式设备固件的安全分析和测评技术 8次下载
- 嵌入式设备上的USB通用功能 18次下载
- 嵌入式的系统构建 37次下载
- 嵌入式系统的构建 11次下载
- 嵌入式系统的构建教程
- 嵌入式系统的构建
- 嵌入式设备故障检测和诊断系统设计
- 嵌入式Linux在PC104平台上的构建与实现
- 如何在嵌入式设备上运行高性能Java
- 嵌入式设备的网络化方法研究
- 嵌入式可编程片上系统是什么 411次阅读
- 嵌入式fpga是什么意思 997次阅读
- 什么是嵌入式系统?嵌入式系统的具体应用 2102次阅读
- 【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行 520次阅读
- 几种常见嵌入式设备通信协议 1416次阅读
- 嵌入式设备系统日志记录方法 4993次阅读
- 嵌入式代码高效运行指南 761次阅读
- 保护连接的嵌入式设备上的数据 587次阅读
- 基于双以太网处理器Jupiter实现嵌入式设备网络的设计 3673次阅读
- 基于WEB技术与嵌入式技术实现对设备的控制与诊断 612次阅读
- 基于Qtopia的嵌入式俄文环境详解 1290次阅读
- 关于嵌入式系统以及嵌入式平台下的学科分工详解 1855次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1138次阅读
- 构建eCos嵌入式系统的步骤教程 3823次阅读
- 嵌入式视觉系统的构建模块 1567次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多