(GPS移植三部曲)Linux下移植GPS應用程式之常見問題的分析與解決方案之二

來源:互聯網
上載者:User

 

Linux下移植GPS應用程式之常見問題的分析與解決方案之一

OS:Linux一. 直接提供函數實現給第三方

原因:主晶片設計以及gps晶片的更改,導致gps驅動程式時常處於更新狀態

演化為:給第三方提供.so動態連結程式庫以及.h標頭檔

二.gps參數寫死到程式中

gps參數有:Serial串口裝置的路徑、GPIO裝置的連接埠號碼、傳輸速率、GPIO連接埠號碼、複位Reset的GPIO連接埠號碼、電源管理工具的路徑、快速啟動GPS所儲存的檔案路徑(冷啟動和暖開機之分);

開發板有:Lily、Bali以及Apollo1.0,Apollo1.1;

演化為:提供gps參數的設定檔,如:atgps.cnf以及navione.cnf兩個設定檔

三.直接將驅動開發的軟體介面提供給第三方

原因:

1.  驅動開發的軟體介面,會經常發生變化,介面不穩定;

2.  驅動開發的軟體介面,還不是第三方真正需要的介面,還不能完全滿足使用者需求;

3.  要基於驅動開發的軟體介面,來進一步擴充和完善,使其滿足第三方的需要;

演化為:基於驅動開發人員提供的介面,來進行封裝,以滿足實現客戶的需要。

四.第三方沒有調用at_close_gps函數,待機時間明顯縮短

造成的後果:電流偏大,電流降不下來,待機時機偏短;

解決辦法:確保第三方,調用at_close_gps函數,關閉gps裝置。

五.程式與資料沒有分離,造成一個目錄經常放不下所有程式和資料

資料:地圖資料,聲音資料

Linux分區的目錄經常才400-500M,而GPS整個儲存空間需要900M

演化為:程式與資料分離

 

六.目前的目錄與運行程式的路徑相混淆

目前的目錄經常會發生更改,目前的目錄不一定是運行程式的所在路徑。

所以,一定要注意區分清楚。

七.使用C++類的形式,封裝資料,隱藏資訊

1.資料,資訊是與具體的操作相關聯的;

2.給第三方提供操作行為;

3.資訊,屬性隱藏;

八.一個開發板不同版本Apollo1.0與Apollo1.1,需要2套gps代碼

開發板:Apollo開發板就有Apollo1.0與Apollo1.1至少兩個硬體版本之分,畢竟硬體還是有點差別的;

解決辦法:一套代碼可以適合多個不同的開發板,一個開發板可以擁有多個不同的版本。

九.針對給第三方的介面,編寫驗證其介面正確性,其工具是:gpstool

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.