next up previous contents
Next: Reaaliaikakello (labtod.c, labtod.h) Up: Rekisteröintiohjelmiston toteutus Previous: Globaalien parametrien hallinta (global.c,

Rekisteröinti (aquir.c, aquir.h)

Tämä moduuli sisältää funktiot erilaisten rekisteröintisekvenssien suorittamiseen. Tiedosto aquir.h määrittelee makrot, jotka määräävät useiden rekisteröintiin liittyvien parametrien minimi- ja maksimiarvot sekä LabMaster-kortin käyttöön liittyviä vakioita. Lisäksi tiedostossa määritellään rekisteröintiin liittyviä tietotyyppejä sekä moduulin määrittelemien globaalien funktioiden prototyypit ja esitellään moduulin määrittelemät globaalit muuttujat. Jotkut otsikkotiedoston määrittelemistä tietorakenteista sisältävät tietotyyppejä, jotka on määritelty moduulin dataq otsikkotiedostossa, joten jo otsikkotiedosto aquir.h riippuu moduulista dataq. Niinpä kaikki moduulia aquir käyttävät moduulit tulevat riippuviksi myös moduulista dataq.

Tiedosto aquir.c sisältää moduulin varsinaisen toteutuksen. Moduuli sisältää funktiot seuraavien toimintojen suorittamiseen:

Lisäksi moduuli määrittelee globaalin muuttujan aqui_error_code, joka sisältää viimeiseksi suoritetun operaation aikana mahdollisesti tapahtuneen virheen koodin.

Rekisteröintisekvenssin määrittävien tietorakenteiden varaukseen käytettävät funktiot käsittelevät suoraan moduulin global määrittelemiä globaaleja muuttujia. Funktiot olettavat, että kaikki tietorakenteet ovat käytettävissä, kun niitä kutsutaan eli kerralla varattuna voi olla vain yksi rekisteröintisekvenssi.

Rekisteröintisekvenssien suoritukseen käytettävät funktiot käyttävät moduulien labtod ja labutil funktioita LabMaster-kortin käsittelyyn, mutta manipuloivat myös suoraan LabMaster-kortin I/O-portteja. Johtuen LabMaster-kortin I/O-porttien erikoisista käsittelyvaatimuksista kaikki I/O-porttien manipulointi tapahtuu moduulin util määrittelemien funktioiden kautta. Näin ollen aquir riippuu myös moduulista util. Askelmoottoreiden käyttöön liittyvä LabMaster-kortin käsittely tapahtuu moduulin stepper funktioiden avulla. Rekisteröintisekvenssin tallennus käyttää moduulin dataq määrittelemiä funktioita rekisteröintiparametrien tallennukseen. Rekisteröintisekvenssien lukemiseen käytetään sekä moduulin dataq että moduulin parlex palveluita.

Rekisteröinti on toteutettu odottavan I/O:n avulla. Jotta keskeytykset eivät aiheuttaisi odottamattomia viiveitä rekisteröintiin, esimerkiksi näppäimistökeskeytys on kytketty pois päältä rekisteröinnin aikana. Näin ollen rekisteröinnin peruuttaminen on mahdotonta rekisteröinnin aloituksen jälkeen. Nykyinen toteutus ei tue vaatimuksissa esitettyä rekisteröintiä usealla kanavalla.


next up previous contents
Next: Reaaliaikakello (labtod.c, labtod.h) Up: Rekisteröintiohjelmiston toteutus Previous: Globaalien parametrien hallinta (global.c,
Antti Miettinen
9/3/1997

Valid HTML 3.2!