這幾天才把iAP (iPhone跟其accessory間的protoco)大致地搞定。也寫了個簡單的app在iPhone上,利用這個app可以控制跟iPhone連接的accessory的硬體。
這些動作在做demo的時候的確是滿簡單的。大概只花個一分鐘就可以demo完。不過卻花了我大概兩個月的時間去搞定iAP還有iPhone SDK的使用。但主要的時間是花在iAP這邊,因為手上沒有apple release的debug tool,所以中間封包傳遞時,每交換一次封包,我就得用人工的方式去確認寫的值及回傳的值是不是正確的。尤其中間iPhone在認證accessory時,accessory需要跟apple的認證晶片透過I2C溝通,取回認證碼,而這個認證碼的長度在幾百個byte甚至上千個byte時,這人工檢查實在是快搞死我 (哈 雖然這話是講給外行聽的 :p)。
在這開發的過程中,我已經儘量把iAP相關的code儘量寫得independent一點,希望在開發其它project時,可以直接拉過來做為library使用。但因為大部份時都花在驗證封包,所以有些地方還是很取巧沒考慮很週到,因此跟其它程式的關聯度個人是覺得還可以再低些。
再來是code size的問題,有幾個地方是有比較值得討論的地方。I2C的部份是用software完成的,所以這部份比較會增加到code size的大小。其它的部份是覺得對code size大小的幫助並不大。還有一個跟code size有關係的部份是,目前interrupt產生後,大部份的task都在interrupt中執行,如此不是一個很好的做法,但主要也是為了節省時間來賺取驗證封包的時間,也是不得不的法子。之後還是得改回loop execute的法子,雖然這會稍增加code size,但對系統來說仍是比較好的做法。可以目前8kb的code size快爆了,得先省一下。
接下來是iPhone app的部份。目前只用了很簡單的component來做demo之用。對於view及其controller還是覺得很霧裡看花。這裡是還可以改進的部份。這部份寫完真希望還有時間可以自已來寫個app。
二月 03, 2010
訂閱:
張貼意見 (Atom)
6 Comments:
老實說看的霧煞煞,這是你的個人修業嗎?
不算吧 沒遇到困難的時候還滿好玩的 :p
我男朋友也寫這些東西耶~~他是寫android的,你有空可不可以陪他討論一下阿 我覺得你一定很厲害
都可以啦 不過我都是亂摸的 :p
請問你用的iPhone是要jailbreak的嗎? 我以為要使用External Accessory framework來連接自己做的accessory需要註冊made for iPhone耶? 最近也在搞這個東西...
Hi Justin,
accessory那邊的程式的確是需要加入made for iPod才能看到相關的文件。而iPhone那邊的app我是也有加入ADC才能測試這app跟accessory的溝通是否正確,主要是因為要拿到bundleID。用jb的方式好像也行,不過我有用adc所以這邊就沒特別去研究了哩 :)
張貼意見