Quantcast
Channel: 黑暗執行緒
Viewing all articles
Browse latest Browse all 2311

Fenix 3 資料欄位 Runner Window 上架

$
0
0

某人曾經說過:身為程式魔人居然不會在自己手機上寫Code將是一生的污點…

如今,我又意外解除另一項成就:在自己的 GPS 錶上寫程式~

入手 Fenix3三個月,對它的外型、GPS精準度、穩定性、耗電都無從挑剔,唯一感覺不足的只有跑步App畫面欄位最多只能放四個。我自己跑步時會關心步速(Pace)、步頻、心率、距離、時間,跑LSD時還會想知道現在幾點,跑山路馬拉松時則會關心現在爬多高快到山頂沒,算一算四欄顯然不夠,而我又不喜歡邊跑邊切畫面,Fenix3 的錶面夠大,理論上可以再擠更多資訊。

後來在 Connect IQ Store 找到有人寫出一次塞進七種資料的資料欄位-367RunFields,二話不說馬上下載,果然是我的菜,從此跑長程幾乎就全程用它搞定。

好景不長。某次自動更新後,發現作者註銷舊版另推新版,而邪惡的新版其實只是試用版,使用一段時間後就轉成廣告畫面,提醒要升級完整版需洽詢作者付費。見此情景,身為以寫程式為生,連閒暇都要靠 Coding 放鬆心情的程式魔人,是可忍孰不可忍,立刻查資料,裝工具,學語言,怒寫一套自用。

最後,依我自己的需要,寫成一套八合一資料欄位,納入現在時刻、跑步時間、步頻、平均步速(Pace)、海拔高度、總距離、心率、目前步速(20秒平均值)八種跑步資訊,另外再加上電池電量百分比以及 GPS 訊號狀態(綠色表示訊號正常,紅色表示收不到訊號,無法偵測強弱)。平約步速與高度對我來說是次要資訊,所以共用最中央的顯示位置,每五秒切換一次。

GPS 斷訊時左上角符號跟 GPS 字樣將呈現紅色(本想顯示訊號強弱,但API未提供),電池除了電量百分比外也有長條顯示,電量偏低時會變紅。

猜想可能有其他跑友也會喜歡這種「海陸大拼盤式」的整合資訊錶面,順手把它上架到 Connect IQ Store,有興趣的 Fenix3 跑友可以下載試用,如遇使用問題或出現錯誤可留言回饋給我。

另外,整理 Connect IQ App 開發的相關資源如下:

  1. Connect IQ SDK 入口網站
    http://developer.garmin.com/connect-iq/overview/
  2. 工具安裝指南
    http://developer.garmin.com/connect-iq/programmers-guide/getting-started/
    Eclipse 配合 Connect IQ 套件,編譯後可自動部署到模擬器測試,挺方便的
  3. Monkey C 語言簡介
    http://developer.garmin.com/connect-iq/programmers-guide/monkey-c/
    名字有C,寫起來其實比較像JavaScript,弱型別概念,支援OOP,但實測發現物件化對記憶體的需求遠超過資料欄位程式的16KB記憶體上限,平舖直述全部塞在一個函式裡才是王道。
    但程式碼沒有物件化跟模組化,維護起來會出人命。最後我想出的做法是用C#寫OOP程式實現顯示元素繼承及彈性欄位排版,程式執行結果輸出為 Monkey C 程式碼交給 Eclipse 編譯測試,用 Visual Studio 開發Garmin Connect IQ 程式,我應該是史上第一人吧?哈!
  4. 開發者討論區
    Connect IQ開發比較冷門,網路上能查到的幾乎都集中在Garmin的開發者討論區 ,有問題也可在上面發問。
    https://forums.garmin.com/forumdisplay.php?479-Connect-IQ

Viewing all articles
Browse latest Browse all 2311

Trending Articles