資料介紹
描述
冠狀病毒在全球范圍內增長了很多,并且出現了許多公共數據集以提供有關病毒傳播的實時和歷史信息,但是您如何在自己的嵌入式設備中將所有這些信息繪制在圖表上呢?
在本文中,我們展示了如何從頭開始構建圖表的圖形用戶界面 (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
- 嵌入式設備的網絡化方法研究
- 嵌入式可編程片上系統是什么 598次閱讀
- 嵌入式fpga是什么意思 1311次閱讀
- 什么是嵌入式系統?嵌入式系統的具體應用 2565次閱讀
- 【從0開始創建AWTK應用程序】編譯應用到嵌入式Linux平臺運行 738次閱讀
- 幾種常見嵌入式設備通信協議 1710次閱讀
- 嵌入式設備系統日志記錄方法 5693次閱讀
- 嵌入式代碼高效運行指南 918次閱讀
- 保護連接的嵌入式設備上的數據 692次閱讀
- 基于雙以太網處理器Jupiter實現嵌入式設備網絡的設計 3837次閱讀
- 基于WEB技術與嵌入式技術實現對設備的控制與診斷 707次閱讀
- 基于Qtopia的嵌入式俄文環境詳解 1433次閱讀
- 關于嵌入式系統以及嵌入式平臺下的學科分工詳解 2025次閱讀
- 基于PXA255開發板外圍字符設備的嵌入式Linux字符設備驅動設計與應用 1199次閱讀
- 構建eCos嵌入式系統的步驟教程 3989次閱讀
- 嵌入式視覺系統的構建模塊 1644次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多