Table of Contents
Progemine
Üldinfo
- Kood asub C:\Program files\connectiq-sdk\samples\Orient\
- App'i nime saab muuta resources\strings.xml failist (NB! Peab olema korralik UTF-8 fail, eriti täpitähtede kasutamisel, sest muidu saab buildimisel tala)
- Logo asub resources\images\icon.png (40×40 px)
- Kella laetava kompileeritud faili nimi (ilma laiendita) ei tohi olla üle 8 märgi. Midagi hullu ei juhtu, aga see lihtsalt lühendatakse ära.
- NB! PC emulaator valetab räigelt!!! Päris kell on räigelt pirtsakam ning väga palju asju, mis emulaatoris töötavad crashivad kohe kui rakendus seadmesse panna. Seega tuleb kohe algusest peale ja muidu ka üsna pidevalt kellaga katsetada, sest muidu pärast jäädki vigu taga ajama miks kella peal kohe kõik crashib.
Projekti seadistamine
- Project → Properties
- Connect IQ
- Choose the Project Type = WatchApp
- Target platforms - saab valida, millistele Garmini seadmetele on mõeldud (see määrab ka ära, millistele projekti buildida saab)
- Permissions - millele app ligi saab (pm mõistlik valida kõik)
- Run/Debug Settings - saab eeldefineerida oma parojekti ja seadme tüübi jaoks confi, et ei peaks iga kord testiks runimisel neid eraldi valima
Kompileerimine
- Kui on soov samast koodist teha mitu rakenduse versiooni ühte seadmesse siis on vaja manifest.xml failis muuta ära applicationi “id” väärtus (peab lihtsalt olema unikaalne igal rakendusel). Igal projekti salvestamisel kirjutatakse manifest fail automaatselt uuesti üle, aga tundub, et see parameeter jääb siiski puutumata…
- Kui laadida seadmesse 2 sama ID'ga rakendust, siis jääb neist alles vaid üks ning teine lihtsalt kustub.
- Vali ülevalt menüüst: “Connect IQ” → “Build For Device Wizard…”
- Tee valikud:
- “Choose the project to build” = Orient
- “Choose the device to build for” = fenix 3
- “Choose the output directory” = võid kohe otse seadmes õigesse kohta salvestada (GARMIN\APPS)
- Vajuta “Finish”
- Kui kõik läheb hästi siis 5-10 sekundiga tekase build ära ja määratud kohta tekib fail “Orient.prg”
- Eclipsi paremas servas olevas aknas ei tohiks ühtegi punast ega kollast rida olla (need näitavad vigu).
- Kui sa seda otse seadmesse ei salvestanud, siis kopeeri ta nüüd sinna otse GARMIN\APPS kataloogi
- Kui kompileerimisel tekkisid vead, siis need on konsooli aknas näha ja tuleb ära fixida. Sel juhul rakenduse faili ei genereeritagi.
- NB! Ära unusta, et iga kella tüübi jaoks tuleb spetsiaalselt eraldi rakendus buildida! Näteks 920XT vs Fenix 3.
Proge üles laadimine seadmesse
- Ühenda kell USB kaabliga arvutiga
- Oota kuni arvuti kella külge võtab ja avaneb selle sisu näitav kataloog
- Mine kataloogi GARMIN\APPS
- Kopeeri oma rakenus (Orient.prg) lihtsalt sinna kataloogi
- Ühenda kell lahti ja oota 10 sekundit kuni ees olev aku laadimise pilt asendub tavalise kella vaatega
- Kui nüüd vajutad kellal “Start-Stop” nuppu, siis näed rakenduste nimekirjas ka enda oma. Antud juhul “Välek” nimelist.
Debugimine
- NB! PC emulaator valetab räigelt!!! Päris kell on räigelt pirtsakam ning väga palju asju, mis emulaatoris töötavad crashivad kohe kui rakendus seadmesse panna. Seega tuleb kohe algusest peale ja muidu ka üsna pidevalt kellaga katsetada, sest muidu pärast jäädki vigu taga ajama miks kella peal kohe kõik crashib.
- Emulaatori töötamisel saab konsooli printida midaiganes selliselt: System.println( “The value is: ” + my_parameter_to_print );
- Emulaator väga ei lase ennast häirida andmetüüpide teemadest, aga kell on väga kapriisne selle kohapealt. Kohe kui tahad mingeid matemaatilisi arvutusi tegema hakata hakkab k*pp&keeks peale ning vaja castid flot'ks või double'ks jne.
- Mina olen endale teinud vaesemehe tüübituvastuse funktsiooni “typeOf”, mida saab debugimisel kasutada.
- Math.round funktsioon emulaatoirs töötab, aga kellas crashib
PC emulaatori kasutamine
- Mõistlik on Project → Properties → Run/Debug Settings alt ära defineerida oma conf (projekt, seadme tüüp jne.) et saaks ühe klikiga kohe emulaatoris asja käima panna
- Edukaks debugimiseks on mõistlik emulaatorile ette anda mõni enda varasem trenni track, mida see siis samas tempos maha mängib ja seega ka reaalne data pidevalt jookseb
- Esmalt tõmba oma kellast mõni suvaline trenni fail. Pane kell arvuti külge ja mine GARMIN\ACTIVITY ning lae sealt suvaline .FIT lõpuga trenni fail arvutisse. Edaspidi saadki juba arvutis seda sama faili pidevalt kastada.
- Nüüd vali emluaatoris Simulation → FIT Data → Playback file… ja otsi arvutist see alla laetud .FIT fail üles
- Simulatsioon käib edasi ka siis kui sa rakendust restardid.
- Lähtuvalt eelmisest saab mingi hetk see trenni fail läbi ja siis jäävad andmed ilma mingi teateta seisma. Siis pead lihtsalt simulatsiooni uuesti alustama.
- Kui eelnevalt conf defineeritud, siis saab emulaatori käivitada (või seal käiva koodi värskendada) kolmel viisil:
- Vajutad lihtsalt Ctrl+F11
- Üleval nupuribal on roheline ümargune “play” märgiga nupp
- Võtad menüüst Run → Run
Näited
Good FQ for starting https://forums.garmin.com/showthread.php?339891-New-Developer-FAQ The best way to currently test Connect IQ apps is to include System.println() statements at strategic points in your app. Within Eclipse, these println() statements will output to the console. On a device, println() statements write to an <APPNAME>.TXT file in /GARMIN/APPS/LOGS. These log files are not automatically created, so must be manually created on the device and named to match the name of the app's corresponding PRG file. For example, to log output from /GARMIN/APPS/MYAPP.PRG, you must create /GARMIN/APPS/LOGS/MYAPP.TXT. Whenever an app crash occurs, a CIQ_LOG.txt file is written to /GARMIN/APPS/LOGS on the device mitme stringi concatimine var dateStr = Lang.format(“$1$ $2$ $3$”, [info.day_of_week, info.month, info.day]); output formating https://forums.garmin.com/showthread.php?255191-Formatted-Output getting constants System.SCREEN_SHAPE_RECTANGLE getting model info System.getDeviceSettings().screenShape;
