Käyttäjien mahdollisuudet vaikuttaa sukron toimintaan perustuvat
toisaalta nopeuden säätelyyn (napit +
ja -
) ja sukron väliaikaiseen
(välilyöntinäppäin) tai lopulliseen (piste) pysäyttämiseen sekä
toisaalta sukron puolelta tuleviin kehoituksiin vastata kysymyksiin
tai painaa valittua näppäintä. Joskus sukrot saattavat tilapäisesti
antaa käyttäjän toimia itsenäisesti (esim. tiedon tallennuksessa).
Käyttäjän ja sukron välistä vuorovaikutusta säädellään
sukro-ohjelmassa seuraavin keinoin.
Sukro esittää kysymyksensä prompt
-lauseella, jonka yleinen rakenne on
- prompt <Kysymys ?> {}
- default <oletusvastaus>
- answer <muistipaikka, johon vastaus talletetaan>
- length <vastauksen enimmäispituus merkkeinä>
- wait <odotusaika 0.1 sek.>
Itse prompt
-rivillä oleva kysymys tulee kohdistimen sillä hetkellä
osoittamaan paikkaan kuvaruudulla. Vastaukselle on kysymyksen perässä
varattu tila, jonka suurin mahdollinen pituus merkkeinä ilmoitetaan
length
-rivillä. Vastaustilassa on valmiina default
-rivillä annettu
oletusvastaus, joka voi kokonaan puuttua. Jos oletusvastaukseksi
merkitään muistipaikan nimi, tämän paikan sisältö näkyy
oletusvastauksena. Käyttäjän odotetaan kirjoittavan oletusvastauksen
päälle tai sitä muunnellen oman vastauksensa. Aikaa vastauksen
antamiseen on wait
-rivillä ilmoitettu määrä. Käyttäjä vahvistaa
vastauksensa ENTER-napilla. Ellei näin tapahdu, sukro valitsee
enimmäisodotusajan kuluttua senhetkisen vastauksen ja jatkaa
toimintaansa. Vastaus tallentuu answer
-rivillä ilmoitettuun
muistipaikkaan. answer
-rivi voi kokonaan puuttua, jolloin vastaus
sijoittuu sukromuistin loppuun.
Käyttäjälle on jätetty myös mahdollisuus keskeyttää vastaaminen
napilla ESC . Tällöin vastaukseksi tulee teksti (break)
.
Tarvittaessa tämä vaihtoehto on erikseen testattava ohjelmassa.
Vaikka sekä kysymys että vastaus näkyvät kuvaruudussa, ne eivät
tallennu toimituskenttään. Mikäli näin kuitenkin halutaan, kysymys on
syytä kirjoittaa tekstinä ennen prompt
-lausetta ja vastaus esim.
print
-käskyllä prompt
-lauseen jälkeen.
Näytteenä esitämme sukron IKÄ
, joka kysyy käyttäjän ikää ja
vastauksesta riippuen kommentoi sitä eri tavoin:
|
|
Jos vastaus puuttuu tai se vaikuttaa oudolta, sukro toistaa kysymyksen. Keskustelu tämän sukron kanssa voi näyttää seuraavanlaiselta:
|
|
Lyhyempiä, yhdellä napilla toimitettavia käyttäjän ohjauksia varten
sukrokieleen kuuluu on key
-lause. Sen rakenne on
- on key
- key <nappi1>: goto <viite1>
- key <nappi2>: goto <viite2>
- jne.
- wait <odotusaika 0.1 sek.>
Sukro odottaa, kunnes käyttäjä on painanut jotain nappia ja
valitsee vastaavan vaihtoehdon key
-riveiltä. goto
-käskyjen asemasta
kullakin key
-rivillä jatkoa voi osoittaa myös load
-käsky tai continue
.
Viimeksimainittu tarkoittaa jatkamista suoraan on key
-lauseen
(wait
-rivin) jälkeisestä toiminnasta.
Jos käyttäjä ei paina wait
-rivin sallimana odotusaikana mitään
nappia tai painaa nappia, jota ei esiinny key
-riveillä, sukron
toiminta jatkuu ensimmäisen key
-rivin mukaisesti.
Sukro saattaa tiedustella käyttäjän halua jatkaa toimintaa esim.
seuraavasti. Tässä on vain ote sukron listauksesta:
|
|
Koska käyttäjältä ei tämmöisessä tilanteessa ole syytä odottaa,
että hän painaisi nimenomaan isoa K-kirjainta, myös pieni k-kirjain
kelpuutetaan jatkon hyväksymiseen. Kaikki muut painallukset johtavat
E:n lailla viitteeseen Loppu
.
Joissain tapauksissa on välttämätöntä estää se, ettei käyttäjä
keskeytä sukron toimintaa sopimattomassa paikassa eikä myöskään pääse
esim. muuttamaan nopeutta napeilla +
ja -
. Tämä on tarpeen esim.
opetusohjelmissa silloin, kun ne valmistelevat jotain tehtävää ja
haluavat tehdä sen rauhassa.
Painallusten vaikutukset estetään käskyllä {break off}
ja ne
saatetaan uudelleen voimaan käskyllä {break on}
.
Tällä käskyparilla on tärkeä tehtävä myös näppäimistösukroissa,
joilla muutetaan näppäinten merkitystä jotain erikoissovellusta
varten. Tästä kerrotaan lisää myöhemmin.
Huolimaton {break off}
-käskyn käyttö johtaa vaikeuksiin. Esim.
seuraava sukro jää kiinni ohjelmakierrokseen, jota ei voi keskeyttää
napilla piste. Se onnistuu vain painamalla ctrl-C
-näppäinyhdistelmää:
* TUTSAVE LOUKKU
+ A: {break off}{goto A}{end}
Monesti sukroja tehdään avustamaan sellaista käyttäjää, joka ei
hallitse Survon peruskäyttötapoja, mutta joka esim. tarvitsee keinoja
tietojen tallettamiseen Survon havaintotiedostoihin. Ajatus on tällöin
se, että käyttäjä voi aloittaa työskentelyn yksinkertaisella sukron
aloituskomennolla, joka erinäisten kysymysten jälkeen johdattaa hänet
varsinaiseen talletusvaiheeseen. Tämä saattaa tapahtua esim. FILE
SHOW
-operaatiolla. Normaalisti sukro ei kuitenkaan salli käyttäjän
omaa sooloilua vaan hallitsee työtä talletuksenkin aikana.
Jotta käyttäjä voisi kuitenkin toimia tuossa vaiheessa
itsenäisesti, sukro saadaan irtautumaan työn ohjauksesta tilapäisesti
antamalla ennen FILE SHOW
-komentoa (tai vastaavaa) ohjelmassa käsky
{interaction on}
. Tällöin sukro lepää koko tallennuksen ajan. Vasta
kun käyttäjä lopettaa oman toimintansa (esim. F8-napilla FILE SHOW
-tallennuksessa), sukro jatkaa. Tällöin on hyvä antaa käsky
{interaction off}
, joka palauttaa sukron normaaliin toimintatapaan.
Koodi voi näiltä osin olla seuraavanlainen:
FILE SHOW {print Wdata}
{interaction on}{act}{interaction off}