Olio-ohjelmointi & wpf-sovellukset - Älytalo

 

Olio-ohjelmointi ja wpf-sovellukset -kurssi tuli päätökseensä ja kurssin palautustehtävänä oli tehdä "älytalo"-sovellus, josta ohjataan talon valoja, lämpötilaa ja lämmitetään / viilennetään saunaa.

Justiinsa äsken oli teams-tapaaminen, missä piti esitellä oma tuotoksensa, joten päätin sitten päivittää tännekin että mitä tuli tehtyä. Ihan koko koodia en viitsi ruveta esittelemään, koska sillon tästä postauksesta tulisi loputtoman pitkä, koska koodia on sellaset yli 262 riviä yhteensä..😅

Se miltä lopputulos ulkoasultaan näytti, oli aika yksinkertanen ja selkeä, koska aattelin että tälläsen jutun on ehkä hyvä olla just sellanen "helpon näköinen".

Toi on siis se alkunäyttö, mistä kaikkea hoidetaan - valot päälle, kirkkauksen säätö, lämpötilan säätö (ja aiempi lämpötila) ja saunan lämmitys ja viilennys + lisätehtävänä oli laittaa puhesyntetisaattori, ni lisäsin senkin. 

Puhesyntetisaattori mulla on "info"- ja "kuuntele"-napeista. Infosta se puhuu tietoa englanniksi että miten ja mistä toi sovellus toimii ja lopuksi heittää messageboxin, missä lukee suomeksi samat ohjeet.

 Ja koodi sen takana on aika lyhykäinen verrattuna koko tehtävään ja se näyttää tälle:

Aika paljon puhumista kuitenkin laitoin sille..😄 Ja huomasin samalla kun tein tota, että se puhuu tosi pötkössä ja nopeesti, plus "epäihmismäisesti", ei (tietysti) ollenkaan "hengähdystaukoa" lauseiden tai edes sanojen välissä, kunnes.. Keksin että jos laittaa pilkkuja lauseiden tai sanojen väliin niin heti alkoi puhe kuulostamaan paremmalle, eikä enää ollut niin pötkömaista tai konemaista, vaikka kone sen puhuikin.

Toinen puhepuoli tulee kuuntele-napista, jossa se kertoo onko valot päällä (jos on ni kirkkauden), lämpötilan ja saunan tilan ja se tietysti toimii parhaiten sillä tavalla, että kaikki on jo annettu sinne; on laitettu valot, lämpötila ja sauna, koska se ottaa ne tiedot siihen puheeseensa niistä arvoista.

Ja se, miten se "tietää" noi arvot mistä kertoa on koodissa iffien ja else iffien avulla toteutettu, että just "jos päällä niin.." ja jossei niin mitä, aika perus tai sillä tavalla luulen että ainoista toteutustavoista, tai ainakin yksinkertasuudeltaan helpoin, luulen.

Toi puhesyntetisaattori oli yllättävän helppo toteuttaa, kun aluksi kun luki sen tehtävänannon, että "tee puhesyntetisaattori" ni mielessä kävi että "miiitä.. kuulostaa vaikealta", mutta eipä sitten ollutkaan niin paha, mitä aattelin 😄

Tää tehtävä sinällään oli suht helppo toteuttaa, kun tavallaan piti sisällään samanlaisia teemoja kun se aikasempi auto-olio-sovellus. Pieni vaikeus oli vaan ja se vaikeus osoittautu siinä kohtaa kun saunan piti aloittaa lämmittäminen talonlämpötilasta ja se aina aloitti sen lämmityksen jostain syystä nollasta. Ja vaikka kuinka koitin kattoa mistä ja missä vika on niin en löytänyt ja päätin sitten pyytää luokkalaisilta apua. Ja kun sain apua toiselta, niin heti selkeyty ja vika, josta saunan lämmitys johtui oli se, että se sauna ei tiennyt mistä sen pitää aloittaa - eli talon lämpö ei mennytkään oikein siihen saunaan ja saunan lämmityksestä ja viilennyksestä puuttui se aste ja nopeus, joka oli puoli astetta sekunnissa lämmityksessä ja viilennyksessä aste sekunissa. Suht pieni, mutta iso virhe, jonka onneksi kuitenkin sai suht helposti korjattua.

Tältä se näytti kun se on "käynnissä", olkkarin valot päällä täydellä kirkkaudella ja sauna lämpeämässä talon lämpötilasta.

Lisäsin saunaan maximi lämpötilaksi 100 astetta, koska se oli jotenkin hassu, kun lämpesi oikeasti loputtomasti ja niin että tyylillä, jos joku sellaiseen saunaan, joka on 800 astetta menisi, niin ei tarvitsisi enää takasin sieltä saunasta tulla.. 😅


Tavallaan olisi ollut jännä nähdä ton älytalon toimintaa, josse olisi oikeesti yhdistetty joihinkin valoihin ja saunaan.. 🤔 Toisaalta, ilman tota oikeaa taloa niin tää tehtävä oli hauska toteuttaa.

Mut jee, nyt on käyty sitten olio-ohjelmointi ja wpf-sovellukset -kurssi kokonaisuudessaan ja taas tietysti opittu paljon lisää asioita ja kasvatettu osaamista😊


Kommentit