Re: [問題] 有關Ecompass校準的實現

看板AndroidDev作者 (藍星)時間13年前 (2011/10/27 09:56), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串5/8 (看更多)
工作剛好是做這塊,所以來回答一下 Android App就是註冊sensor,然後API捉方位角或是重力值 而sensor HAL層是把daemon中的計算結果給回報到SensorManager,然後再往上報 所以,所提到的校正和計算角度,全都由daemon中的演算法提供 當然accuracy這個參數,也是由daemon所填寫 但就我追蹤的結果akmd無論在怎樣的環境下面都是報High 系統廠通常從chip商那裏只會拿到HAL+daemon的code,且都是會通的(為了整合 其他sensor,有可能會提供source code)。當然最重要的演算法部份,是binary 格式,根本沒機會看到內部運算 有些人提到,甩甩就可以正常,一半對一半不對 對的是,校正時需要做動作;不對的是,動作做錯可能會校正失敗 校正的動作需要三個旋轉軸都轉到,所以最常請End-User做劃8動作 但有些人在劃8時候,沒有翻面而導致校正一直無法通過 現在有些App會在上面有校正的Button,據我推測,不是用JNI的方式來開關daemon 中的校正流程;就是去監測accuracy這參數是否有由Low->High。不過這招若是遇到 都是High的狀況,顯然會沒輒 從以前1.5做到現在,對於HAL層總共改了3次架構(改多改少),要實做不是太難 但是要了解整個流程〔SensorManager(JAVA&JNI)、SensorService(JAVA&JNI)、HAL〕 還是需要花些力氣才行 獻醜了... ※ 引述《freemantw (阿倫)》之銘言: : To gpc大大~ : 您之所以感受到甩甩就有校準的功能~ : 原因是因為priv大大所言~ : 底層的程式碼不斷的在做calibration~ : 以至於您APP有按calibration按鍵與沒按calibration按鍵並沒有差別~ : 我現在寫的程式碼也是不斷的在做calibration~ : 至於一般買到的指北針甩甩就好,那是因為指北針有時指針會被卡住~ : 那應該是指北針的機構設計不良~ : 不過真的很謝謝您提供的相關意見~ : 如果以上有任何錯誤,也請各位高手更正~ : 還有很謝謝priv大大~ : 至少讓我覺得我目前追code是沒有白費的~ : 真的跟您講的情況很像~ : 很期待您明天的講解~ : 不好意思多問一個~ : SensorManager.java中一個參數: accuracy : 感覺是用來判斷現在Ecompass準不準的參數 : 請問一般APP會使用到此參數判斷提示使用者目前需不需要做判斷嗎? : 不然java層定義這個參數好像什麼用處耶>< : 謝謝各位神人幫助^^ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.198.202

10/27 10:15, , 1F
找了一下proprietary果然沒看到相關的內容
10/27 10:15, 1F

10/27 10:15, , 2F
看來是真的只有做IC的人才要管這個
10/27 10:15, 2F

10/27 10:39, , 3F
bsp的proprietary下面只會有Qualcomm的proprietary code啊XD
10/27 10:39, 3F

10/27 11:34, , 4F
看來不需要解釋太多了
10/27 11:34, 4F

10/27 13:30, , 5F
10/27 13:30, 5F
文章代碼(AID): #1EgBfAqO (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1EgBfAqO (AndroidDev)