• Ei tuloksia

slrncpy(delta, line, MAX_NR);

dr.namellnlljsV)1;

- KIRJAA(1apahtuma,parametrit...); — tapahtuman rekisteröinti

reloobar(llne);

I while ( (what(line, "%d", Aversion) 1= 1) Il (where(llst)<3));

• KIRJAA(tapahtuma,parametrit...);

Ibloblfwln: %s‘, blaa);

loobar(nothing);

lblobl("debug‘);

revoke(line);

Kuva 2. Tiedonkeruujärjestelmä raha-auto­

maatissa, Erikoisvalvonnan toteutus.

Automaatissa on Raha-automaattiverk- koa varten toteutettu verkkoliitäntä.

Yhteys tapahtuu sähköverkon yli, LON- liitäntäkortin avulla. Käytössä on LON- protokollan tukema kysymys-vastaus (Request-Responce) -viestiliikenne.

Ohjelmatasolla verkkoliitäntä tarkoittaa moduulia, joka lähettää ja vastaanottaa viestejä VIP-linkistä [17]. Rajapinnassa on määritelty viestit vastauksineen laskintietojen kyselyä, vikailmoituksia, tilatietojen kyselyä ym. varten. Viestilii­

kenne on salattua.

Perusvalvonnan toteuttamiseksi automaatissa ei tarvita omia viestejä.

Sensijaan Erikoisvalvonnan viestit on erikseen määritelty.

Kuva 2 havainnollistaa Raha-automaatin Tiedonkeruuj ärjestelmää Erikois vai von- nan osalta.

Automaatin ja VIP-linkin välinen raja­

pinta on määritelty omassa dokumentis­

saan [17]. Viestit esitellään Tiedonke­

ruujärjestelmän osalta kappaleessa 4.4.

4.3.2 Laskimet

Toimintansa aikana raha-automaatti kerää häviämättömään muistiinsa tilastotietoa toi­

minnastaan. Yhtä tällaista tietoa nimitetään laskimeksi.

Esimerkkejä laskimista:

• Pelattujen pelien lukumäärä.

• Voitettujen pelien lukumäärä.

• Kassaan menneen rahan määrä.

• Sisäänsyötettyjen rahojen yhteisarvo.

• Ulosmaksettujen rahojen yhteisarvo.

• jne...

Kaikki laskimet yhdessä muodostavat laskinsetin. Laskinten lukumäärä vaihtelee hie­

man automaattityypeittäin. Tällähetkellä valmistettavissa automaateissa kerättävän laskinsetin koko on 28 kappaletta.

Yksittäisiin laskimiin viitataan numeroilla. Laskinten numerot pysyvät samoina vaikka laskinsetin sisältöön tulisi muutoksia tai lisäyksiä. Esimerkiksi pelattujen pelien määrä on aina laskin numero 23.

4.3.3 Perusvalvonta

Perusvalvontatoiminto perustuu automaatin osalta RA-verkko-rajapinnassa määriteltyi­

hin viesteihin. Laskintietojen kysely -viestiin on parametroitavissa mitkä laskimet halu­

taan. Laskimia voi pyytä joko yksitellen tai koko setin. VIP-linkki huolehtii Perusval- vonnasta lähettämällä tarvittavat kyselyt.

Perusvalvonnassa tunneittain kerätyt laskimet ovat

• laskin 21, eli pelattujen rahojen yhteisarvo,

• laskin 22, eli ulosmaksettujen voittojen yhteisarvoja

• laskin 23, eli pelattujen pelien lukumäärä.

Lisäksi joka yhteydenotolla kysytään koko laskinsetti. VIP-linkissä ylläpidetään laskin- setin viimeistä arvoa.

Perusvalvontaan kuuluu myös automaatin ja automaattiyhteyden tilan tarkkailu. VIP- linkki kysyy automaatin tilan määritellyllä tilakysely-viestillä. VIP-linkki seuraa automaatin tilaa tunneittain.

4.3.4 Erikoisvalvonta

Automaatin muistissa on rajoitetusti tilaa uusia ominaisuuksia varten. Erikoisvalvonta- toiminnon tulee siksi olla mahdollisimman yksinkertainen ja vaatia vähän koodia. Eri- koisvalvonnan koodin täytyy olla mahdollisimman suurelta osin identtinen kaikissa pelityypeissä. Uuden pelin ohjelmiston täytyy voida käyttää mahdollisimman paljon olemassaolevaa koodia.

Eva-tiedon puskurointia varten oleva muistitila on rajallinen. Siksi eva-tiedon generoin­

nin tulee olla parametroitavissa siten, että vain valikoitu osa tapahtumista generoidaan.

Tämä auttaa myös VIP-linkin rajoitetun talletustilan suhteen.

Uusien tapahtumien lisääminen järjestelmään myöhemmin tulee olla mahdollista kohtuullisella työmäärällä.

Automaatin ohjelmassa on toteutettu erikoisvalvontatietojen kirjausfunktio. Funktiota kutsumalla kirjautuu yksi eva-tapahtuma lähetyspuskuriin. Vain aktiiviset tapahtumat

kirjataan puskuriin (kts. seuraava kappale). Puskurin täytyttyä se lähetetään VIP-link- kiin.

Erikoisvalvonnan toteuttamiseksi automaattiin riittää, että ratkaiseviin pisteisiin ohjel­

maa sijoitetaan kutsu em. kirjausrutiiniin. Kirjauspisteiden täytyy vastata määriteltyjä tapahtumia. Tallennuskutsut täytyy sijoittaa koodiin pelikohtaisesti. Tämä on eniten työtä vaativa osa automaatin Erikoisvalvonnan toteutuksessa.

4.3.5 Eva-tiedon syntaksi Eva-tapahtumat

Ohjelmallisesti tarkasteltuna raha-automaatti on joukko tilakoneita, jotka ohjaavat automaatin laitteiden toimintaa ja toteuttavat pelilogiikan. Pelilogiikan rakenne vaihte- lee automaatista toiseen. Siksi ei ole mahdollista sitoutua keräämään tietyn tilakoneen tilasiirtymiä tms. Sensijaan on määritelty joukko tapahtumia, jotka ovat riittävän yleisiä kuvaamaan kaikenlaisten automaattien toimintaa. Tapahtumia on yhteensä 50 kappalet­

ta. Ne on lueteltu liitteessä 1.

Tapahtuma on joko pelaajan tai automaatin toiminnan aikaansaama.

Pelaajan toiminnan generoimia tapahtumia ovat esimerkiksi:

• Painiketta painettu.

• Peli käynnistetty.

• Tuplaus hylätty.

• jne...

Automaatin toiminnan generoimia tapahtumia ovat esimerkiksi:

• Voitto 5 mk.

• Voitot ja pelirahat saavat arvon nolla.

• Dataa hukattu.

• jne...

Tapahtumiin rinnastettava on myös sekunnin välein tapahtuva sekuntitikki, minuutin välein tapahtuva minuuttitikki ja tunnin välein tapahtuva tuntitikki. Lisää tapahtumia voidaan määritellä myöhemmin tarpeen vaatiessa.

Eva-asetus

Jokainen eva-tapahtuma on joko aktiivinen tai ei-aktiivinen. Aktiiviset tapahtumat kir­

jataan kun niiden kirjauspiste koodissa suoritetaan. Ei-aktiivisia tapahtumia ei kirjata.

Tapahtuman aktiivisuuden määrää voimassaoleva eva-asetus, joka on saatu linkiltä Eva_aseta-viestillä. Viestissä on lueteltuna niiden eva-tapahtumien ascii-merkit, jotka halutaan aktiivisiksi.

Eva-tapahtumat on jaettu ryhmiin, jotka on numeroitu l:stä 4:ään. Numeromerkki ase- tusmerkkijonossa asettaa koko ryhmän aktiiviseksi.

Aktivoidut tapahtumat ovat kumulatiivisia: ennestään päälle kytketyt tapahtumat säily­

vät aktiivisina. Asetusviesti, jossa on tyhjä asetusmerkkijono, nollaa tilanteen. Sen jälkeen yksikään tapahtuma ei ole aktiivinen.

Lisätiedot (kts. alla) asetetaan päälle omalla merkillään samoin kuin varsinaiset tapahtu­

matkin.

Eva-tapahtumien kirjaaminen

Kirjausfunktiossa kukin tapahtuma kirjataan lähetyspuskuriin yksilöllisessä tunnuskir­

jaimella. Joihinkin tapahtumiin liittyy lisäksi parametreja.

Tunnuskirjaimet ovat ascii-merkkejä, pois lukien 0...9 $ \ % / : ; " [ ] ja kontollimerkit.

Kontrollimerkkien ascii-koodit ovat 0-32.

Kirjausten välissä ja '/'-merkin jälkeen sallitaan olevan “white space”-merkkejä, joita ovat välilyönti, tabulaattori, rivinvaihto ja rivinalku. Vastaavat ascii-koodit ovat 32, 9,

10 ja 13. Tilan säästämiseksi näitä on suositeltavaa välttää.

Peräkkäisistä kirjauksista muodostuu eva-tietovirta, jonka automaatti lähettää ilman eri pyyntöä linkille Eva-paketteina.

Kirjausten parametrit

Parametrit ovat numeroita tai merkkijonoja. Jos parametreja on useampi kuin yksi, ne erotetaan '/'-merkeillä. Eri tapahtumiin liittyvät parametrit käyvät ilmi tapahtumaluette- losta, liittestä 1.

Kymmenjärjestelmässä olevat numerot esitetään sellaisinaan. Desimaaliluvun erottaa siitä, että se sisältää täsmälleen yhden kappaleen desimaalierottimia Binääriluvut al­

kavat '%'-merkillä, oktaaliluvut 'Y-merkillä ja heksadesimaaliluvut '$'-merkillä. Hek- sadesimaaliluvut päättyvät '/'-merkkiin, jotta a...f eivät sekoitu seuraaviin kirjausmerk- keihin.

Numerojärjestelmän saa valita vapaasti, mutta lyhyin tapa on suositeltavin.

Merkkijonoparametrit alkavat '['-merkillä ja päättyvät ']'-merkkiin. Itse merkkijono ei saa sisältää ']'-merkkiä.

Lisätiedot

Joihinkin tapahtumiin voidaan liittää lisätietoa. Se on tapa liittää tapahtumaan ylimääräisiä parametreja. Lisätietojen avulla voidaan osaltaan vaikuttaa eva-tiedon määrään. Lisätiedoilla on omat tunnuskirjaimensa ja parametrinsa (kts. liite 1). Lisätieto kirjataan varsinaisen tapahtuman kirjauksen jälkeen. Lisätiedot ovat

• aika,

• laskimet 21, 22 j a 23 sekä

• pelaajanäytön lukemat.

Aika sisältää kellonajan lisäksi tiedon päivästä. Laskimet 21, 22 ja 23 ovat samat kuin Perusvalvonnassa kerättävät, eli pelattujen rahojen määrä, voitettujen rahojen määrä ja

pelattujen pelien lukumäärä. Pelaajanäyttö kertoo automaatin näytössä olevat lukuarvot.

Sitä käytetään raha-automaatin käyttöliitymän virheiden etsintään.

Lisää lisätietoja voidaan määritellä myöhemmin tarpeen vaatiessa.

Esimerkki eva-tiedosta

Seuraavassa esimerkki automaatin tuottamasta eva-tiedosta. Kuten havaitaan, tietojen analysoiminen käyttäjän ymmärtämään muotoon on tarpeen.

Esimerkkitilanne:

Automaatti on normaalissa pelitoiminnassa. Pelaaja saapuu muutaman minuutin kuluttua, syöttää koneeseen yhden markan ja viiden markan kolikot. Hän käyn­

nistää pelin kolmen markan panoksella. Peli on kolmikiekkoinen hedelmäpeli, jonka kiekot pysähtyvät positioihin 0, 5 ja 17. Tuloksena on voitto luokassa 3, arvoltaan 10 markkaa, ajanhetkellä 13.3.1997 klo 13:30.22. Lisäpelin asemasta pelaaja valitsee voitonmaksun ja poistuu.

Automaatilla on voimassa asetus-merkkijono “kaikki tapahtumat ja aika-lisätieto”:

“01234msIPt”

Tässä tapauksessa generoituva eva-tieto on:

“QlsQ5sZlZ2s2c$bl02/с$Ы02/с$Ы02/ с$Ы00/РЗtl3 /12/30/2 2s7e0s5e5s3el7vl0w3s4c$bl01/rl0szl0T2TlTlTlsTlTlU5/lUl /5”

Toinen esimerkki eva-asetuksesta on “pelin käynnistys, voittoja rahaliikenne”:

“34pv”

Tällöin syntyvä eva-tieto on seuraavanlainen:

“QlQ5ZlZ2p3vl0T2TlTlTlTlTlU5/lUl/5”

Kappaleessa 6. arvioidaan syntyvän eva-tiedon määrää eri tilanteissa.