簡體   English   中英

尋找跨平台移動應用程序與微控制器通信的選項

[英]Looking for options for a cross platform mobile app to communicate with a micro-controller

我已經編寫了一個與微控制器通信的Java SE桌面應用程序。 它顯示從其接收的數據並向其發送更新,並不斷進行通信。 它使用一些第三方庫和javax.comm庫通過串行通信。 我們目前正在研究開發具有相同功能的跨平台移動應用程序的選項。 最終,該新應用程序將能夠從台式機,手機和平板電腦上進行編譯和運行。 我已經研究了一些選項(Oracle的新ADF移動版,phoneGap,Java ME等),但是想知道是否有人對最佳選擇有任何建議。 隨時提出任何后續問題。 提前致謝。

射線

在執行此操作時,您將遇到一些挑戰。 首先,任何跨平台的框架幾乎都將被淘汰。 由於下面列出的重大差異,因此我所知道的框架均不支持硬件連接。

硬件

您的嵌入式設備當前正在使用RS-232(UART)與PC通信。 這是任何消費類移動設備(iPhone除外,但我們都可以實現)上沒有的硬件接口。 從硬件角度來看,支持點對點連接的所有主要設備平台(iOS,Android,Windows Phone)之間唯一通用的接口是USB和藍牙。

在這兩種藍牙中,藍牙是最適合您的嵌入式設備的藍牙,因為市場上有許多藍牙調制解調器,它們可以簡單地連接到UART並通過使用RFCOMM協議的有線替代品通過鏈路中繼數據。

SDK支持(即APP如何與此硬件對話?)

  • Android SDK支持應用程序與兩個接口之間的通信。 藍牙出現在Android 2.0中,USB出現在Android 3.1中。
  • 自iOS 3.0以來,iOS SDK支持與兩者的通信。 從iOS 5開始,它還支持Bluetooth LE。
  • Windows Phone 8 SDK聲稱它將支持藍牙連接,我對USB支持一無所知。

發牌

這一次真的只適用於iOS,但它同時適用於藍牙和USB /串口。 為了開發iOS連接的硬件方面,您必須是其Made For iPod程序的成員。 成員資格是免費的,但是需要大量的書面工作,而這實際上只能使您訪問實現其專有連接器所需的協議所需的文檔。 要獲得進行實際連接所需的連接器和其他組件,還需要獲得進一步的批准,而這些批准並不容易獲得。

藍牙LE是iOS上唯一不需要MFi成員資格才能在硬件和軟件方面都實現的連接標准。 但是,到目前為止,尚無其他主要的移動SDK直接支持此接口(Android已實現)。

總體而言,我的建議是傾向於添加藍牙,並密切關注藍牙LE空間。 如果找到運行雙模式的嵌入式模塊,則可以將LE運行到iOS設備,將標准藍牙運行到其他平台。 這是我可以想到的唯一免許可證途徑,並且隨着Bluetooth LE SDK支持的改進,其他設備也可以利用這一點。

根據您的標簽,我認為“跨平台”真的只表示android和iOS嗎? 就是說,選擇哪種跨平台工具的問題在這里已經回答了好幾次了,並沒有重復。 我的建議是本地化,除非您真的不關心性能和最佳解決方案。

也就是說,與硬件的接口應該很有趣。 Android具有與最新版本的Android兼容的開放附件協議 這用於通過USB的連接。 Apple封閉得多,需要為協議,連接器等支付許可費。您最好的選擇是使用藍牙甚至wifi將硬件連接到移動設備。 對於這兩種設備,這僅需要單個硬件設計,並且在某種程度上也可以面向未來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM