Sivun sisältö

Johdanto [ ylös ]

Autosuunnistus.netin foorumissa kesku­stel­laan juuri nyt alkuvuodesta 2016 vilkkaasti autosuunnistuksen tulevaisuu­desta ja älypuhelinten käyttämisestä kel­loina, trip­peinä ja compuina. Tällä sivulla esitän omia ajatuksia siitä miten eri web-sovel­luksia voitai­siin käyttää auto­suunnis­tuksessa nykyisten lait­teiden sijaan ja ehkä myös kehittäen niiden toimintoja. Etu­sivulla olevien kuvak­keiden takana löytyy toimiva AS-Kello testta­tavaksi ja vapaasti käytet­tävksi. Muuten esitän kuvauksia muista eri vai­heessa olevista projek­teistä. Tämän sivun lopussa on myös Disqus-keskustelualue jossa voi esittää kysymyksiä ja kom­mentteja.

Miksi älypuhelimessa tai tabletissa pyörivä web-sovellus [ ylös ]

Hyviä puolia

  • Ei tarve hankkia kalliita erikoislaitteita joiden saata­vuus nykyään lienee aika huono.
  • Älypuhelmia ja tabletteja löytynee nykyään aika yleisesti koti­talouksista.
  • Sovellusten näytöissä voidaan käyttää isoja fontteja ja eri värejä yöllä ja päivällä.
  • Sovellukset helppo päivittää.

Ongelmakohtia

  • Älypuhelmien käyttö auto­suunnistus­kilpailussa on lähtö­kohtaisesti kielletty.
  • Sovellusten yhteydet ulkoisiin anturei­hin ja järjestelmiin.
  • Älypuhelmien ja tablettien kiinnit­täminen tukevasti ja turval­lisesti (siivili)autoihin.
  • Kuski, jos käyttää ajohanskoja, ei voi ohjata sovel­luksia touch-näytön kautta.

Laitteiden käyttäminen autossa [ ylös ]

Itse olen hankinnut tämän telineen. Istuu tukevasti kiinni koje­laudalla mutta jos painaa näyttöä muualla kun keskellä niin puhelin käyntyy helposti alta pois eli teline vaatii vähän parantelua. Exo­gearilta löytyy myös tabletti­teline, joka vaikuttaa tukevalta. Näiden imu­kuppien huono puolihan on että niistä jää jälkiä kojelautaan. Nykyään puhelimet ja tablettit voidaa laadata autolatureilla.

Websovelluksista ja laitevaatimukset [ ylös ]

Web-sovelluksista ja niiden kehittämisestä

Web-sovellukset koostuvat yhdeltä html-sivusta ja tarvittavista javascript- ja CSS-tyyli­määrittely-tiedostoista. Usein käytetään valmiita kirjastoja jolla raken­netaan sovellusten käyttö­liittymiä ko sivulle. AS Appit-kehityksessö on käytetty Webix-sovellus­kehystä (frame­workia). Sillä pääsee helposti käyntiin mutta maalli­kolle webixin dokumen­taatio on aika niukka ja olen joutunut - kuten yleensä - turvau­tumaan "trial and error"-menetelmään. Webixin kautta pääsee myös hyödyn­tämään Awesome:n fontti­kokoelma. Kaikki "mahtavat" kuvakkeet sovelluksessa ja sivustossa tulevat tästä kokoelmasta. Ne ovat skaalautvia ja määrittely tapahtuu fontti-määrittelyn avulla.

Manifest-tiedostojen avulla web-sovellus lataa kaikki tarvittavat tiedostot puhelimeen tai tablettiin. Näin ollen web-sovellukset toimivat vaikka laite ei ole verkossa. Web-sovellukset ovat kuiten­kin vain netti­sivuja, jotka pyörivät selai­messa, eivät heillä sen takia ole oikeuksia saada tietoja esimerkiksi puhelimen gps-vastaano­ttimelta.

Olen käyttänyt Notepad++ tiedostojen muokkaamiseen ja Chrome-selaimen kehitys­työkalut sovellusten tes­taamiseen ja virhe-etsintään. Jos joku on kiinnos­tunut sovellusten lähde­koodista voin kyllä toimittaa - siivouksen jälkeen ☺. Yhteystietoni löytyy alempana.

Laitevaatimuksista

Olen käyttänyt aika tuoreita teknii­koita ja sovellusten kello- ja mittausscriptit pyörivät omissa säkeissä nk. Web workersien avulla joten puhelimet pitää varmasti olla suhteel­lisen uusia ja niiden proses­soreissa pitää olla useita ytimiä. Olen voinut testata vain muu­tamilla Android-puheli­milla enkä voi siten taata että sovel­lukset toimivat Windows Phonessa tai iOS-järjestelmissä. Eli toivot­tavasti testatte ja annatte palautetta siitä miten toimii.

Sovellusten asentaminen ja päivittäminen [ ylös ]

Sovellus otetaan käyttöön klikkamalla ko sovelluksen sivulla olevaa linkkiä siinä puhelimessa tai tabletissa jossa sovellus on tarkoitus ottaa käyttöön. Sovellus on lisättävä kuvak­keeksi puhelimen ty­öpöydälle. Kun sovellus käynnis­tetään painamalla kuvaketta se kääntyy oikeasuuntaisesti - kello toimii vaakatasossa puhelimessa - ja täyttää koko selain­ikkunaa. Kuvak­keen lisää­minen toimii eri tavalla eri puhelimissa ja selaimissa. Esim. Androidin Chromessa painetaan osoite­rivin oikealla puolella olevia pisteitä ja valitaan Lisää koti­näyttöön. Tarkista oman laitteen käyttö­ohjeesta miten toimii siinä. iOS:n Safari-selaimessa tämä tapahtunee tällä tavalla.

Web-sovellukset pitäisi päivittää itsensä kun ne "huo­maavat" että sovel­luksen manifest-tiedot ovat muut­tuneet. En ole saanut tätä toimimaan minun puhelimessa taikka tieto­koneen selaimessa. Olen tyhjentänyt Chrome-selaimen väli­muistia historia­tiedoista (Cache ja Appdata) ja seuraavan kerran kun olen avannut sovelluksen painamalla sen kuvaketta uusi versio on ollut käytössä. Tämä edellyttä tietysti että laite on verkossa ja voi hakea kaikki tiedostot uudestaan palveli­melta. HUOM! Välimuistin tyhjentäminen poistaa myös muiden sovellusten tai sivustojen tallentamia tietoja.

Mittausimpulssien järjestäminen [ ylös ]

Itselläni on Raspberry Pi eli nk. luotto­kortti­tieto­kone kaapissa. Näissä pyörii Linux-käyttöj­ärjestelmä samalla kun niihin voidaan kytkeä erilaisia antureita GPIO pinnien avulla. Niihin saa myös Wifi-adaptereita kiinni. Eli tarkoitus on virittää Pi:n ohjel­mistoa siten että siinä pyörii DHCP-palvelin joka antaa ip-osoitteita web-sovelluksia pyörittäviin äly­puhelimiin tai tabletteihin. Pi:hen pinneihin kytken reedkytkimen ja Linuxin alla pyörivä skripti välittää reed­kytkimestä tulevia impulsseja tapahtumina websocketien avulla sovelluksiin. PI:ssä oleviin pinneihin voitasiin myös kytkeä tripin nolluskytkimia ja peruutus­vaihteen valitsemiseen liittyvä kytkin. Löytyy ymmärtäkseeni muitakin tapoja saada signaaleja auton etene­misestä kuin reedkytkimeltä. Laite pitää olla liitettynä Raspberry Pi:n muodos­tamaan langat­tomaan verk­koon ja Pi:n ip-osoite tiedossa jotta sitä voi tallentaa sovel­lukseen. Kuulostaa yksin­kertaiselta mutta saa nähdä saanko toimimaan. Jos tämä toimii voin ajatella että Pi:ssä pyörivä järjestelmä voitaisiin jakaa valmiina leyvkuvina. Se voidaan kirjoittaa SD-muistikorttiin Pi:hen laitettavaksi. Jos puhelin tai tabletti laitetaan lento­kentotilaan ja liitetään tällaiseen langattomaan verkkoon ei kai voida enää puhua yhteydenpitovälineeltä eli ei olisi sääntöjen vastainen?

Tulevaisuuden tuloslaskenta verkossa [ ylös ]

Tulevai­suudessa voitaisiin ajatella että koko tulos­laskenta pyörisi verkossa. Kun kilpailijat tulevat kilpailu­paikalle he saavat PIN-koodin jolla heidän käyttämä sovellus hakee ajo­määräystä netistä. Aikatarkastusasemien käyntiajat ja reitti­tarkastusasemien käynti­järjestys tallentuu sove­llukseen kilpailun aikana ja maalissa (ja tauolla) tiedot siirretään tulos­laskenta­sovelluksen tietokantaan ja tulos­laskenta tapahtuu itsestään ...

Kehityshistoriasta [ ylös ]

Kartturi sai lukiolta Ipadin. Oivalsin että voidaan tehdä offline-tilassa toimivia netti­sivuja auto­suunnistus­käyttöön. En siinä vaiheessa tiennyt juuri mitään HTML5:stä ja web-sovel­luksista. Laite oli tietysti varattu enkä saanut paljon aikaan. Syksyllä 2014 hankin itselleni ensim­mäisen äly­puhelimen (LG G3 S) ja aloitin kehittelyä uudestaan ja perehdyin tarkemmin siihen miten tehdään web-sovelluksia. Keväällä 2015 ensim­mäinen toimiva kelloversio oli käytössämme Lapuan harkkarissa. Toimii aika hyvin ja sen jälkeen olen silloin tällöin lisännyt ja parantanut toimin­nallisuutta ja suunni­tellut muita sovelluksia.

Tekijästä [ ylös ]

  • Martin Melin, autosuunnistanut 1979 - 1994 kart­turina isäni toimes­saan kuskina ja epä­säännöllisesti kuskina 2009 - poikani toimes­saan kartturina.
  • Harrastanut ohjelmointia ja tietokoneita melkein yhtä kauan.
  • Autosuunnistusseurani on NNSB.

Minut saa kiinni sähkö­postitse mmelin64(at)gmail.com. Seuraan keskustelua alla jos sellaista syntyy ja auto­suunnistus.netin foorumia mutta en ole naama­kirjassa ☺. Äidikielini on ruotsi joten saa antaa palau­tetta myös sivuston ja sovel­lusten kieliaususta ☺.

Keskustelualue [ ylös ]

Keskusteluun voi osallistua lu­omatta tilin Disqusiin mutta nimi ja sähkö­postiosoite on annettava jotta viestisi menisi läpi.