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.