Prototyypin toteutus -vaiheen edistymisraportti
v1.0
04.03.96
Projekti on kokonaisuutena edistynyt täysin suunnitelmien mukaan. Kaikki ryhmän jäsenet ovat käyttäneet huomattavan osuuden ajastaan projektiin. Järjestelmäsuunnitteluvaiheessa tehdyt suunnitelmat osoittautuivat varsin kelvollisiksi, joten niihin ei ole tehty oleellisia muutoksia, vaan järjestelmää on toteutettu sellaisena kuin se JS-vaiheessa hahmoteltiin. Yleisesti suurin osa aikaa tässä vaiheessa on kulunut koodaukseen. Projekti on edellä aikataulustaan siinä mielessä, että järjestelmän osista valmiina ei ole ainoastaan "keskeiset osat", kuten PT-vaiheen työsuunnitelmassa asetettiin tavoitteeksi, vaan jossain määrin valmiina on suurin osa järjestelmän osista. Sitävastoin dokumenttien osalta projekti on ehkä hieman jäljessä, koska kaikkea toteutetttua ei ole saatu vielä kunnolla dokumentoitua. Aikaa työhön on kulunut suunniteltua huomattavasti enemmän, mutta toisaalta tässä vaiheessa tehtiinkin hiukan enemmän kuin aluksi ehkä ajateltiin, (tehtiin siis jo seuraavan vaiheenkin työtä).
Suurimmaksi ongelmaksi on muodostunut projektin yhteistyöosuus Tampereen teknillisen korkeakoulun kanssa. Jostain syystä Tampereelta ei ole saatu testiohjelmia niin helposti ja nopeasti, kuin alussa oletimme. Suurimpia vaikeuksia on ollut myöhässä saadun testiohjelman toiminnan selvittäminen ja korjailu (molemmat tehtäviä, jotka eivät alkuperäisessä suunnitelmassa kuuluneet meidän tehtäviimme). Pääosin edellä mainitusta syystä ohjelman toiminnan testaaminen on ollut jossain määrin hajanaista.
Käyttöohjeen päivitys ajan tasalle jäi seuraavaan
vaiheseen.
Eri osien edistymiset lyhyesti:
Prosessori
Prosessori jakautui kahdeksi selvästi erilliseksi osaksi, toisen osan muodostavat CPU, IO-laitteet ja liitäntärima, eli todellisessa autossa olevia fyysisiä osia mallintavat luokat. Toisen osan muodostavat koodin debuggausta varten toteutetut lokitulostus- ja breakpointien asetus ominaisuudet.
Mikrokontrollerisimulaattoriin löytyneestä valmiista koodista löytyi muutamia virheitä ja ne
korjattiin. Keskeytykset, IO-luokka ja liitäntärima on toteutettu, ainoastaan muistinsuojaukset
ja muutamia pieniä lisäyksiä puutuu. (Osuuden dokumentointi on kesken, koska tekijä joutui
sairaalaan.)
Debuggausominaisuudet
JS-vaiheessa modulista ulospäin näkyviksi suunnitelluista toiminnoista on toteutettu kaikki muut paitsi lokitulostustietojen asettaminen niin, että CPU:n luku- ja kirjoitusoperaatiot tallentuvat lokiin. Lisäksi osa toiminnoista on vielä hieman rajoittuneita (esim. Rekisteriehdoissa ei voi vielä käyttää akkuja a ja b). JS-vaiheen suunnitelmissa esitetyt funktiot on jaettu useampiin paloihin, eli siis ulkoapäin (=käyttöliittymä modulista) kutsuttavia funktioita on enemmän, mutta toimintoja ei ole sen enempää kuin suunnitelmassakaan. Alustavassa suunnitelmassa olleen Parseri-luokan tilalta on toiminnot jaettu luokkiin Loki, Breakpoint ja RekEhdot. Rekisteriehtojen asettamisesta ja tarkastamisesta tuli ehdottomasti monimutkaisin osa modulia. Toiminnon toteuttamiseksi tehtiin vielä luokan RekEhdot käytettäväksi "apuluokat" Ehto, Pino ja Lista, näistä Ehto on virtuaalinen kantaluokka luokille Pienempi, Suurempi, EriSuuri ja YhtaSuuri. Toteutuksesta tuli ehkä turhankin työläs, koska pyrittiin siihen, että jos kerran toteutetaan käyttäjän antamien rekisteriehtojen tarkastus, ei ole syytä lähteä asettamaan erilaisia rajoituksia sille minkälaisia ehtoja saa antaa ja missä järjestyksessä. Tällä hetkellä koodi on vielä hieman sekavaa ja kommentoimatonta. Suurin osa virhetarkastuksista puuttuu. Modulin testaus on pahasti kesken.
Käyttöliittymä
Käyttöliittymän ikkunat ja käyttäjälle
näkyvä toiminnallisuus saatiin vaiheen aikana toteutettua.
Toteuttamatta jäi radan parseri (nyt rata on hard koodattuna) ja
käyttäjän syötteiden kunnollinen tarkistus.
Seuraavaan vaiheeseen jäi myös värikartan varauksen
parantaminen. Tällä hetkellä ohjelma toimii ainoastaan
sellaisissa näytöissä joissa on standardi värikartat
määritelty (useimmissa on) tai sitten kahdeksan bittisissä
pseudo-color näytöissä (pikku vikoja, helppo korjata --Vesa Vierikko, Katsastus).
Toimilaitteet
Toimilaitteiden perustoiminnallisuus tuli vaiheen aikana toteutettua.
Seuraavassa vaiheessa niiden toimintaa tullaan parantamaan paremmin
todellisuutta vastaavaksi. Vaiheen lopussa jouduttiin toteuttamaan
vielä yksi uusi anturi, kaynnistysnappi.
Toimilaitteiden testaus viivästyi jonkin verran testiohjelmaongelmien
vuoksi.
Fysiikkamalli
Fysiikkamalliin prototyypin toteutus -vaiheeseen suunniteltu renkaan
sutimisen toteutus siirtyi seuraavaan vaiheeseen. Muut fysiikkamallille
kaavaillut työt suoritettiin ajallaan.
Fysiikkamallin testaus viivästyi jonkin verran testiohjelmaongelmien
vuoksi.
Ajankäyttö
Ajankäyttöä seurattiin tekemällä vaiheen alussa työsuunnitelma arvioituine
tuntimäärineen excel-taulukkoon ja syöttämällä sinne lopuksi toteutuneet tunnit.
Suunnitellut ja toteutuneet tunnit prototyypin toteutus vaiheessa.