Re: [問題] 有關Ecompass校準的實現
工作剛好是做這塊,所以來回答一下
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
10/27 10:15, 1F
→
10/27 10:15, , 2F
10/27 10:15, 2F
→
10/27 10:39, , 3F
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
討論串 (同標題文章)
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章