電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何構(gòu)建冠狀病毒圖表并在嵌入式設(shè)備上運(yùn)行

如何構(gòu)建冠狀病毒圖表并在嵌入式設(shè)備上運(yùn)行

2023-06-16 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

冠狀病毒在全球范圍內(nèi)增長了很多,并且出現(xiàn)了許多公共數(shù)據(jù)集以提供有關(guān)病毒傳播的實(shí)時和歷史信息,但是您如何在自己的嵌入式設(shè)備中將所有這些信息繪制在圖表上呢?

在本文中,我們展示了如何從頭開始構(gòu)建圖表的圖形用戶界面 (GUI),連接到冠狀病毒信息的 REST 數(shù)據(jù)庫,以及如何在嵌入式設(shè)備上運(yùn)行它。收集的數(shù)據(jù)將繪制在代表全球病毒演變的折線圖上,我們將使用Toradex Colibri 模塊和NXP iMX6ULL 執(zhí)行所有測試,無需 GPU。

此圖表上顯示的數(shù)據(jù)可從Rapid API網(wǎng)站的冠狀病毒地圖部分免費(fèi)獲得。可以使用 Rest WebService 進(jìn)行連接,也可以在設(shè)備內(nèi)下載 JSON 數(shù)據(jù)和包。此代碼是使用TotalCross SDK編寫的,用于開發(fā)、構(gòu)建應(yīng)用程序并將其打包到嵌入式設(shè)備,如下圖所示。

?

Colibri iMX6ULL 是一款具有 Wi-Fi藍(lán)牙功能的 Toradex 計(jì)算機(jī)模塊,基于 NXP i.MX 6ULL?? 應(yīng)用處理器,具有適用于各種物聯(lián)網(wǎng)和嵌入式設(shè)備的 Arm Cortex-A7 內(nèi)核。這個強(qiáng)大的工具與 Totalcross SDK 一起使用,可以開發(fā)廣泛的應(yīng)用程序。所有這些示例代碼都可以在GitHub 上免費(fèi)獲得,您只需將開發(fā)環(huán)境配置為 TotalCross。在這里,我們有一個簡單的教程,它還提供了有關(guān)部署和運(yùn)行項(xiàng)目的信息。

要訪問冠狀病毒數(shù)據(jù),請?jiān)L問 Rapid API 網(wǎng)站。冠狀病毒地圖上,獲取URL請求數(shù)據(jù);最新的報(bào)告菜單有代碼片段。該項(xiàng)目基本上有兩個主要類,CoronaChart和CoronaChartApp;它還有運(yùn)行類 RunCoronaChartApplication。數(shù)據(jù)離線時使用JSON文件,設(shè)備可以直接讀取信息;此文件已保存在資源文件夾中。

CoronaChart 類負(fù)責(zé)在圖表上構(gòu)建數(shù)據(jù)。CoronaChartApp 類是加載主 UI 的主窗口。它連接到 Web 服務(wù)并在圖表中運(yùn)行確認(rèn)、恢復(fù)和死亡的動畫。

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 并從站點(diǎn)獲取信息。它返回將在 fillData 上處理的 JSON 對象。必須使用 Rapid API 密鑰更改 secretKey 字符串才能使連接正常工作。

每次點(diǎn)擊開始按鈕時,它都會連接到 Web 服務(wù),下載所有信息并將其繪制在圖表上。也可以在資源文件夾中加載文件request.json 。Vm TotalCross 類具有操作文件的方法,因此我們可以打開帶有電暈信息的 JSON 文件。該文件將被加載到應(yīng)用程序上,將這些數(shù)據(jù)解析為字符串并解析為 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 將被讀取并分離為確認(rèn)列表、恢復(fù)列表和死亡列表。加載構(gòu)建包時,文件 request.json 在設(shè)備上自動可用。除了我們圖表上的信息外,還有其他信息可能對未來的工作有用,例如活躍病例、危急、測試、死亡率和康復(fù)率。

pYYBAGN29k-Ac0RTAAF90qSTHrU383.png
?

項(xiàng)目中存在的大多數(shù)其他方法都涉及圖表中數(shù)據(jù)的組裝和動畫;可以在可供使用的代碼中研究它們。其余的代碼片段是關(guān)于屏幕的組裝,主類從 MainWindow 類擴(kuò)展,其覆蓋方法如 InitUI,它將構(gòu)造屏幕上的所有元素,如背景顏色、按鈕、復(fù)選框及其監(jiān)聽器方法。

關(guān)于技術(shù)

該項(xiàng)目中使用的TotalCross 技術(shù)提供了一個占用空間小的應(yīng)用程序(甚至使用 Java),非常適合這種設(shè)備。TotalCross 不使用 JVM(Java 虛擬機(jī)),但由其自己的開源虛擬機(jī) TCVM 支持。這使其能夠保證使用此框架開發(fā)的應(yīng)用程序的幾乎本機(jī)性能。此外,它使我們能夠用很少的命令創(chuàng)建出色的 UI,即使對于低端 MPU 也是如此。

按照這些步驟,您可以快速構(gòu)建您的冠狀病毒圖表并在嵌入式設(shè)備上運(yùn)行它。您可以根據(jù)需要將相同的知識應(yīng)用于不同的數(shù)據(jù)庫并創(chuàng)建自己的圖表。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)