終於把專案整理了一下
這邊小解釋一下,其他還有問題就留言我盡量幫忙看看囉
首先我把專案設計成三個 ViewController,分別處理不同的事情,如下圖
在 ViewController1 和 ViewController2 的列表 item 如下兩圖
終於把專案整理了一下
這邊小解釋一下,其他還有問題就留言我盡量幫忙看看囉
首先我把專案設計成三個 ViewController,分別處理不同的事情,如下圖
在 ViewController1 和 ViewController2 的列表 item 如下兩圖
AsyncSocket 下載位置
因為專案是 swift 專案,要使用 objecitive-c 的函式庫要在 Header 檔中 import
1.複製AsyncSocket.m
及AsyncSocket.h
到專案中,xcode 會問你是否建立 Bridge file,確定建立
2.在 你的專案名稱-Bridging-Header.h
檔中加入#import "AsyncSocket.h"
3.建立連線物件var socket: AsyncSocket = AsyncSocket(delegate: 委派對象)
extension NSData {
func getByteArray() -> [UInt8]? {
var byteArray: [UInt8] = [UInt8]()
for(var i = 0;i < self.length; i++) {
var temp: UInt8 = 0
self.getBytes(&temp, range: NSRange(location: i, length: 1))
byteArray.append(temp)
}
return byteArray
}
}
終於到的這個階段
這階段主要目的是要得知哪幾個特徵值是和客製化藍芽裝置通訊的介面,在上一階段可以看到每個 characteristic 的 property 屬性有些一權限,例如 Read / Wirte / Notify … 等等
要和藍芽裝置進行連線,需要幾個物件來實作
1. 掃描到藍芽裝置時的 centralManager
2. 藍芽裝置的 peripheral
所以先加入一個新的 ViewController 在點擊 tableView 的時候去切換 segue,並把 centralManger 和要連線的藍芽 peripheral 送過去
這邊建立一個 BTDeviceConfigViewController 的 ViewController 和對應的 storyboard 視圖
1.先拉一個 UIViewController 並用 NavigationController embed 起來,在 Navigation Bar 上面加個 title 和 UIBarButtonItem,這邊是選擇 Refresh 的 System Item 樣式,並且在剩下的範圍加上一個 UITableview 當作掃描後顯示藍芽裝置的列表
使用 CoreBluetooth 連線可以大致分為幾個步驟
先來看看 function 的宣告不同的地方
function funcA() {}
var funcA = function(){}
這兩種基本上是一樣的,差異在於,第二種寫法是變數寫法,所以在宣告前使用會出現尚未宣告的錯誤,意思這樣
funcB(); //使用 funcB
var funcB = function(){}; // 宣告 funcB,因為是變數所以需要加分號結尾。
這樣的用法會出現 Uncaught TypeError: funcB is not a function
這次要介紹一個讓 ViewController 之間像平滑移動相片的方式來切換顯示的方法
首先、先建立一個空白的專案,使用 SingleViewProject
1.建立專案
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
16 進位表示法 0 ~ F =10 進位的 0 ~ 15 = 2 進位的 0 ~ 1111,所以每四個 bit 就可以用一個 16 進位的符號來表示,也習慣上把四個 bit 連在一起寫。
所以一個 byte 可以表示的範圍就是由 0000 0000 到 1111 1111,以 16 進位表示就是 00 到 FF,以 10 進位表示就是 0 到 255 囉!也就是總共 256 個數。
而一個 char 可以表示的範圍就是由 0000 0000 0000 0000 到 1111 1111 1111 1111,以 16 進位表示為 0000 到 FFFF,而以 10 進位表示就是 0 到 65535,總共 65536 個數。
所以一個 char 是沒辦法轉成一個 byte 的,因為 char 比 byte 大。但是可以將一個 char 轉成 “兩個” byte
那這邊就介紹怎麼把這兩個 byte 從一個 char 抓出來囉!
因為興趣的關係所以獲得了 Macbook Pro 2015 mid 一件, 就開始了 Mac 的不歸路(因為好用), 結果發現有些軟體並沒有做 Mac 版本,就研究了一下,其實還滿多種方法的。
這邊使用的是一款叫做 Wineskin 的包裝軟體,它可以模擬一個小型的 windows 環境,然後將要使用的 windows 軟體安裝檔安裝在這個環境中,再把整個環境包裝成一個 Mac 的 .app軟體,然後就可以黑皮的使用啦,當然依照安裝軟體的不同,都可能會有某種程度上的 bug。但我想這比開 pd 或 bootcamp 雙系統去開某些程式輕多了。