UI plan (finnish) - HenriPirinen/vehicle-ui GitHub Wiki

Frontend

Frontendin kehitykseen käytetään Facebookin kehittämää ReactJS kirjastoa ja Material-UI frameworkia, jonka avulla käyttöliittymässä voidaan käyttää Googlen Material Desing kaltaisia komponentteja. ReactJS kirjasto on sunniteltu webkäyttöliittymien rakentamiseen. Datan siirto palvelimien ja webkäyttöliittymän välillä toteutetaan websocketilla. WebSockettina käytetään socket.io kirjastoa frontendissä ja backendissä. Websocketin avulla saadaan jatkuva kaksisuuntainen yhteys palvelimen ja käyttöliittymän välille. Akkutilasta voidaan kerätä jokaisen kennon kohdalta lämpötila- ja jännitearvot. Jokaisen akun lämpötilasta ja jännitteestä tehdään viivadiagrammi, josta voidaan seurata lämpötilan ja jännitteen muutosta reaaliaikaisesti tai valitulta aikaväliltä. Invertterin oman web-pohjaisen käyttöliittymän kautta voidaan lukea ja asettaa sen arvoja sekä päivitää sen mikroprosessorin firmwaren. Nämä ominaisuudet on tarkoitus integroida omaan käyttöliittymään.
Käyttöliittymän kautta voidaan seurata reaaliaikaista virhelokia akustosta, palvelimesta ja invertteristä. Invertteristä voidaan lukea paljon erinlaista tietoa. Lista invertterin asetettavista ja luettavista arvoista löytyy täältä. Arduinon ohjelman, invertteri ohjelman ja raspberry piin palvelin ohjelmiston pystyy päivittämään käyttöliittymän kautta. Frontend hakee julkisista rajapinnoista karttatietoja, säätiedot ja tietoa ajotiestä.

Ylläpito

Frontendin, backendin ja elektroniikan päivitys web käyttöliittymän kautta. Arduino mikro-ohjaimet, invertterin ja käyttöliittymän ohjelmiston voi päivittää web-käyttöliittymän kautta. Käyttöliittymän kautta ladataan palvelimelle esimerkiksi uusi versio arduino koodista(.ino), joka kootaan palvelimen päässä ja tämän jälkeen se ladataan arduinolle. Arduino koodi voidaan käsitellä komentorivillä käyttämällä tätä: Arduino CLI Invertterin koodi pitää ladata suoraan binäärimuodossa. ReactJS käyttöliittymä pitää rakentaa palvelimen päässä Babel ohjelmalla.

Palvelu rajapinnat

Sää tiedot: Ilmatieteenlaitos Käyttääkseen rajapintoja käyttäjän on haettava API-avain (fmi-apikey). Palveluissa on API-avainkohtaisia hakumäärärajoitteita.

  • Yhdellä API-avaimella saa tehdä latauspalveluun enintään 20 000 kyselyä vuorokaudessa.
  • Katselupalveluun saa tehdä enintään 10 000 kyselyä vuorokaudessa.
  • Yhdellä API-avaimella saa tehdä molempiin palveluihin yhteensä enintään 600 kyselyä viidessä minuutissa.

Karttatiedot: Google Maps Google maps vaatii API-avaimen käyttöä. Alla olevat palvelut saa googlelta ilmaiseksi.

  • Javascript, Static Maps ja Street View API, 25 000 kartan latausta vuorokauden aikana.
  • Embed API, 2 000 000 pyyntöä vuorokauden aikana.
  • Directions, Distance Matrix, Elevation, Geocoding, Geolocation, Roads, Time Zone API 2 500 pyyntöä vuorokauden aikana.
  • Places API, 150 000 pyyntöä vuorokauden aikana.

Tie ja liikenne: Liikennevirasto Ei vaadi API avaimen käyttöä, ilmeisesti ei ole rajoituksia pyyntöjen määrässä.