開(kāi)發(fā)BLE藍(lán)牙手機(jī)上位機(jī)軟件,竟是如此簡(jiǎn)單!
網(wǎng)站:bbs.21ic.com
做安卓手機(jī)APP通常使用高端大氣的Android Studio,開(kāi)發(fā)語(yǔ)言是Java,該開(kāi)發(fā)IDE就是體積大
學(xué)習(xí)成本高,入手慢,這里給大家推薦一款國(guó)產(chǎn)的軟件,體積小,運(yùn)行和編譯速度快。最重要的是編程語(yǔ)言是中文
這個(gè)軟件就是E4A.
本次我將向大家介紹如何使用E4A開(kāi)發(fā)BLE藍(lán)牙手機(jī)上位機(jī)APP。
當(dāng)然,該軟件自帶了豐富的例子,也提供了一個(gè)BLE例子,大家可以借鑒。
由于沒(méi)有提供各種庫(kù)的說(shuō)明文檔和幫助文件,學(xué)這個(gè)軟件可能有經(jīng)過(guò)一段摸索,這里我將向大家介紹我在開(kāi)發(fā)這個(gè)軟件中獲得的經(jīng)驗(yàn)。
中文編程語(yǔ)言:易語(yǔ)言,采用中文作為關(guān)鍵字,但是編程的語(yǔ)法和思想和C語(yǔ)言是類(lèi)似的,為了方便理解,這里我結(jié)合單片機(jī)開(kāi)發(fā)的思路簡(jiǎn)單介紹一下。
變量要聲明類(lèi)型
對(duì)象操作的函數(shù)稱(chēng)為:方法對(duì)象可觸發(fā)的中斷函數(shù)稱(chēng)為:事件對(duì)象可設(shè)置的參數(shù)稱(chēng)為:屬性好接下來(lái)介紹 BLE藍(lán)牙庫(kù)BLE(Bluetooth Low Energe)低功耗藍(lán)牙設(shè)備主要用于智能穿戴和物聯(lián)網(wǎng)。BLE藍(lán)牙類(lèi)庫(kù),包含兩種操作:方法和事件
方法:
? ?? ???初始化
? ?? ???置可被發(fā)現(xiàn)
? ?? ???開(kāi)始搜索
? ?? ???停止搜索
? ?? ???連接設(shè)備
? ?? ???斷開(kāi)連接
? ?? ???釋放資源
? ?? ???是否可讀
? ?? ???是否可寫(xiě)
? ?? ???是否可通知
? ?? ???讀取數(shù)據(jù)
? ?? ???寫(xiě)入數(shù)據(jù)
事件:
? ?? ???創(chuàng)建完畢
? ?? ???發(fā)現(xiàn)設(shè)備
? ?? ???信號(hào)強(qiáng)度改變
? ?? ???發(fā)現(xiàn)服務(wù)
? ?? ???連接狀態(tài)改變
? ?? ???讀取數(shù)據(jù)完畢
????????通道數(shù)據(jù)改變
由于不存在可見(jiàn)的對(duì)象,因此藍(lán)牙沒(méi)有屬性設(shè)置。
了解方法和事件的用法可通過(guò)左側(cè)類(lèi)庫(kù)目錄選中對(duì)應(yīng)的條目,在下面的提示信息中查看。
例如選中BLE藍(lán)牙庫(kù)的方法 初始化 條目后:? ? ? ? 方法:初始化()為 邏輯型? ? ? ? 分類(lèi):BLE藍(lán)牙類(lèi)庫(kù)---BLE藍(lán)牙? ? ? ? 注釋?zhuān)撼跏蓟疊LE藍(lán)牙設(shè)備,成功返回真,失敗返回假,BLE藍(lán)牙需要安卓4.3以上系統(tǒng)的支持。
另外 事件類(lèi)似中斷函數(shù),因此在代碼中沒(méi)有先后順序,可以根據(jù)易讀的排列順序進(jìn)行排版。
所有的動(dòng)作均屬于觸發(fā)的事件,因此,方法通常在事件里面進(jìn)行調(diào)用。
自己創(chuàng)建的函數(shù),需要自己實(shí)現(xiàn)該函數(shù)的具體過(guò)程,因此函數(shù)在這里稱(chēng)為:過(guò)程不過(guò)我們這里做BLE藍(lán)牙APP可以不用到過(guò)程。
好了,基本的概念已經(jīng)介紹了,我們可以開(kāi)始整了。
第一步,先根據(jù)我們的需要完成可視化的組件布局,并給添加的組件起上一個(gè)跟操作相關(guān)的名字,在組件的屬性對(duì)話框設(shè)置,同時(shí)可以設(shè)置組件的其他相關(guān)屬性。
第二步,使用中需要完成單擊響應(yīng)的,我們可以在設(shè)計(jì)區(qū)直接雙擊組件,即可自動(dòng)在代碼區(qū)生成一個(gè)空的事件(類(lèi)似單片機(jī)開(kāi)發(fā)中的中斷處理函數(shù),用于響應(yīng)單擊事件),例如四個(gè)方向鍵的單擊事件。以下代碼我已經(jīng)填充了單擊后執(zhí)行的藍(lán)牙方法:寫(xiě)入數(shù)據(jù),即發(fā)數(shù)據(jù)給連接到手機(jī)的藍(lán)牙模塊。
事件 按鈕上.被單擊()
? ?? ?? ?? ?? ? BLE藍(lán)牙1.寫(xiě)入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("上\n","GBK"))
結(jié)束 事件
事件 按鈕下.被單擊()
? ?? ?? ?? ?? ? BLE藍(lán)牙1.寫(xiě)入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("下\n","GBK"))
結(jié)束 事件
事件 按鈕左.被單擊()
? ?? ?? ?? ?? ? BLE藍(lán)牙1.寫(xiě)入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("左\n","GBK"))
結(jié)束 事件
事件 按鈕右.被單擊()
? ?? ?? ?? ?? ? BLE藍(lán)牙1.寫(xiě)入數(shù)據(jù)(服務(wù)UUID,通道UUID,文本到字節(jié)("右\n","GBK"))
結(jié)束?事件
第三步,完成主窗口的創(chuàng)建工作,因?yàn)槲覀円褂盟{(lán)牙庫(kù),所以我們可以在APP啟動(dòng)后就申請(qǐng)使用藍(lán)牙的權(quán)利,并初始化一個(gè)藍(lán)牙對(duì)象。
另外就是要實(shí)現(xiàn)軟件退出的操作,所以我們可以設(shè)置一個(gè)退出的按鈕,實(shí)現(xiàn)結(jié)束程序。內(nèi)容如下。
事件 主窗口.創(chuàng)建完畢()
? ?? ???'安卓6.0以上的系統(tǒng)需要?jiǎng)討B(tài)申請(qǐng)權(quán)限,否則app可能無(wú)法正常運(yùn)行
? ?? ???如果 權(quán)限操作1.取系統(tǒng)版本號(hào)()>=23 則
? ?? ?? ?? ?? ? 權(quán)限操作1.申請(qǐng)全部權(quán)限()
? ?? ???結(jié)束 如果? ?? ???
? ?? ???變量 結(jié)果 為 邏輯型
? ?? ???結(jié)果 = BLE藍(lán)牙1.初始化()
? ?? ???彈出提示("初始化結(jié)果:"