Re: [問題] 有關Ecompass校準的實現
各位高手~
不好意思喔! 小弟我剛剛進入這行><
滿天問號~
請多多包涵~
我不知道您們一直提的daemon,是否就是指廠商所提供的一個.a檔(在HAL層中)~
可是我前輩說那個檔案好像被鎖住了,因此只能放棄不用~
變成現在的局面~
要自己寫校準程式~
現在碰到最大的問題是~
上層有沒有一個觸發機制告訴底程按了calibration鍵~
如果有的話可以告知我在那嗎?
如果沒有~
那底程一直calibration~
就磁場校準的原理看來~
當我去了強磁場影響區~
獲得的x, y, z軸的磁場max與min~
一般會大於弱磁場影響區的磁場max或min校準值~
那我再回來弱磁場影響區時做校準時~
不就無法覆蓋強磁場區所產生的max或min值~
這樣磁場校準值不就出錯了~
還是一般廠商會定時清空磁場的max與min校準值?
您們說的proprietary code有可以參考的嗎?還是都是不公開的~
我都找不到相關資訊><
還有akm daemon好像也找不到code~
※ 引述《bluestar8783 (藍星)》之銘言:
: 工作剛好是做這塊,所以來回答一下
: 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的狀況,顯然會沒輒
請問一下JNI層要怎麼去開關daemon來校準流程阿~
就我目前所看到機器回傳LOG
一般的APP不就只是一直觸發data__poll,讀取想要的資料
如果accuracy這參數是由底程提供給java層~
那是否意味著daemon這個程序自己會判斷現在的磁場準不準~
不然是什麼把accuracy由狀態High拉成狀態Low呢?
: 從以前1.5做到現在,對於HAL層總共改了3次架構(改多改少),要實做不是太難
: 但是要了解整個流程〔SensorManager(JAVA&JNI)、SensorService(JAVA&JNI)、HAL〕
: 還是需要花些力氣才行
: 獻醜了...
太謙虛了您><
很謝謝各位前輩細心的指導~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.84.91
推
10/28 01:36, , 1F
10/28 01:36, 1F
→
10/28 01:36, , 2F
10/28 01:36, 2F
→
10/28 01:37, , 3F
10/28 01:37, 3F
→
10/28 01:37, , 4F
10/28 01:37, 4F
→
10/28 12:27, , 5F
10/28 12:27, 5F
→
10/28 12:29, , 6F
10/28 12:29, 6F
推
10/28 12:55, , 7F
10/28 12:55, 7F
→
10/29 22:19, , 8F
10/29 22:19, 8F
→
10/29 22:20, , 9F
10/29 22:20, 9F
討論串 (同標題文章)
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章