You are on page 1of 62

Generiek Template/Gui voor

een interactieve quiz voor het iDTV Platform

Project aangeboden door


Tim Bogaert
voor het behalen van de graad van
Bachelor in de
Multimedia en Communicatie Technologie
Academiejaar 2004-2005
1. Voorwoord

Aan het einde van mijn studie Multimedia & Communicatie Technologie gekomen
restte mij alleen nog de stage. Voor deze stage was ik op zoek naar iets nieuws en
uitdagends en heb dit dan ook gevonden. 3 maanden ging ik werken bij de VRT in
Brussel op het iDTV kenniscentrum.

Op het stage aanzoek waren de vereisten Java en XML, wat me zeker boeide. Dan
kwam hier nog MHP bij. Deze specificatie (geschreven in Java) wordt enkel gebruikt
bij Interactieve Digitale Televisie en ik zag er reeds naar uit om dit te bestuderen en
toe te passen.

Tijdens deze uitdagende stage heb ik enorm veel bijgeleerd over het hoe en wat van
iDTV. Ook het traject dat je moet afleggen om aan een project te werken dat vanaf
het begin moet worden aangemaakt is iets dat heel wat meer inhoudt dan ik
oorspronkelijk dacht.

Dankzij mijn stagebegeleider Dhr. Rousseaux en zijn collega Dhr. Van Aert heb ik
enorm veel bijgeleerd. Bedankt aan alle mensen die mij steeds hebben gesteund
tijdens deze stage.

Tim Bogaert

1
2. Index
1. Voorwoord .............................................................................................................................. 1
2. Index ..................................................................................................................................... 2
3. Inleiding ................................................................................................................................. 4
3.1 Opdracht........................................................................................................................... 4
3.2 Contact informatie ............................................................................................................. 5
Student .............................................................................................................................. 5
Begeleider .......................................................................................................................... 5
Verantwoordelijke................................................................................................................ 5
3.3. Organigram...................................................................................................................... 6
4. Analyse................................................................................................................................... 7
4.1 Inhoud.............................................................................................................................. 7
4.2 Wat nog? .......................................................................................................................... 7
Afstandsbedieningstest ........................................................................................................ 7
Achtergronden .................................................................................................................... 7
5. Structuur Applicatie ................................................................................................................. 8
5.1 MHP ................................................................................................................................. 8
5.2 UML Schema ..................................................................................................................... 8
5.3 De start van de Structuur Manager...................................................................................... 8
5.4 Dagverslag ........................................................................................................................ 8
Maandag 11 april................................................................................................................. 8
Dinsdag 12 april ................................................................................................................ 10
Woensdag 13 april............................................................................................................. 10
Donderdag 14 april ............................................................................................................ 11
Vrijdag 15 april.................................................................................................................. 11
Maandag 18 april............................................................................................................... 12
Dinsdag 19 april ................................................................................................................ 13
Woensdag 20 april............................................................................................................. 13
Donderdag 21 april ............................................................................................................ 14
Vrijdag 22 april.................................................................................................................. 14
6. Content Manager................................................................................................................... 15
6.1 Introductie ...................................................................................................................... 15
6.2 dagverslag ...................................................................................................................... 15
Maandag 25 april............................................................................................................... 15
Dinsdag 26 april ................................................................................................................ 15
Woensdag 27 april............................................................................................................. 16
Donderdag 28 april ............................................................................................................ 16
Vrijdag 29 april.................................................................................................................. 16
Maandag 2 mei 2005 ......................................................................................................... 16
Dinsdag 3 mei ................................................................................................................... 17
Woensdag 4 mei ............................................................................................................... 17
7. Xlets en MHP......................................................................................................................... 18
7.1 Intro............................................................................................................................... 18
7.2 Wat is MHP?.................................................................................................................... 18
7.3 Dagverslag ...................................................................................................................... 18
Maandag 9 mei ................................................................................................................. 18
Dinsdag 10 mei ................................................................................................................. 19
Woensdag 11 mei.............................................................................................................. 19
Donderdag 12 mei ............................................................................................................. 20
Vrijdag 13 mei................................................................................................................... 21
Dinsdag 17 mei ................................................................................................................. 22
Woensdag 18 mei.............................................................................................................. 22

2
Donderdag 19 mei ............................................................................................................. 23
Vrijdag 20 mei................................................................................................................... 24
Weekend 20 en 21 mei ...................................................................................................... 24
8. Settopbox ............................................................................................................................. 25
8.1. Intro.............................................................................................................................. 25
8.2. Dagverslag ..................................................................................................................... 25
Maandag 23 mei................................................................................................................ 25
Dinsdag 24 mei ................................................................................................................. 27
Woensdag 25 mei.............................................................................................................. 28
Donderdag 26 mei ............................................................................................................. 29
Vrijdag 27 mei................................................................................................................... 30
9. Appendix UML Schema’s en opbouw applicaties ....................................................................... 32
9.1 Structuur Applicatie.......................................................................................................... 32
UML Schema ..................................................................................................................... 32
Opbouw............................................................................................................................ 32
9.2 Content........................................................................................................................... 33
UML Schema ..................................................................................................................... 33
Opbouw............................................................................................................................ 33
9.3 Platform Convertor........................................................................................................... 34
9.4 Xlet ................................................................................................................................ 34
10. Appendix – MHP Emulators................................................................................................... 35
10.1 XletView........................................................................................................................ 35
10.2 IRT ............................................................................................................................... 36
11. Appendix – MILO StreamEvents ............................................................................................ 37
11.1. Intro ............................................................................................................................ 37
11.2. Aanmaken Applicatie ..................................................................................................... 37
11.3 . Toevoegen van Event Object ........................................................................................ 38
11.4 Event Object name aanpassen ....................................................................................... 38
11.5 Aanmaken van een stream Event .................................................................................... 39
11.6 Do it now Event ............................................................................................................. 39
11.7 Events toevoegen aan de applicatie ................................................................................. 40
11.8 Controle van de Stream Events ....................................................................................... 40
11.9 Do-It Now Events afvuren............................................................................................... 41
11.10 Controle in de settopbox logs ........................................................................................ 41
12. Appendix – Planning laatste 2 weken..................................................................................... 42
13. Appendix – Analyse.............................................................................................................. 43
13.1 Algemeen...................................................................................................................... 43
13.2 Probleem....................................................................................................................... 43
13.3 Oplossing ...................................................................................................................... 43
13.4 Overzicht....................................................................................................................... 44
13.5 Overzicht Talen.............................................................................................................. 45
13.6 Analyse ......................................................................................................................... 45
13.6.1 Wat bevat een quiz nu eigenlijk? .............................................................................. 45
13.6.2 Dieper ingaan op een quiz........................................................................................ 45
13.7 Verwoording van de functionaliteiten ............................................................................... 49
13.7.1 Algemene structuur ................................................................................................. 49
13.8 Analyse – Quizzen .......................................................................................................... 51
Algemeen ......................................................................................................................... 51
Kenmerken ....................................................................................................................... 51
Problemen bij interactiviteit ................................................................................................ 54

3
3. Inleiding

3.1 Opdracht

Toen ik aankwam kreeg ik een duidelijke opdracht. Ik zou 3 applicaties moeten


maken die samen als doel het tot stand brengen van een interactieve quiz voor het
iDTV platform zouden hebben.
De eerste 2 applicaties zouden de structuur en de content van de quiz moeten
kunnen veranderen. De 3e zou een module zijn die deze informatie converteert naar
iDTV.

De uitdaging om een applicatie te maken die een heel groot deel van de bestaande
en ook nieuwe quizzen zou kunnen maken is enorm groot en niemand wist of dit wel
mogelijk was. Daarom zou eerst een grote analyse gedaan worden. Indien het na
deze analyse mogelijk bleek zou het project groen licht krijgen en gemaakt worden.

Wat moest elke applicatie precies bevatten:


• Structuur Manager
o Hier moest je de algemene quiz kunnen vormgeven.
o De algemene gegevens van de quiz
o Hoeveel rondes zijn er, welke timers worden gebruikt,...
o Hoe ziet de quiz er visueel uit

• Content Manager
o Wat zijn de vragen
o Wat zijn de antwoorden
o In welk vak wordt de tekst getoond op het scherm
o Welke hints zijn er, welk extra beeldmateriaal

• Metadata
o Hier wordt alle informatie opgeslagen die door de structuur en content
manager zijn aangemaakt.

• Module iDTV
o Applicatie die de metadata converteert naar een MHP Applicatie. Deze
kan dan naar de settopbox gestuurd worden

Een uitgebreidere projectomschrijving kan je vinden in appendix 13 - Analyse

4
3.2 Contact informatie

Student
Tim Bogaert
Vuurkruisenstraat 29
9240 Zele
Tel: 052/44.71.96
Gsm: 0473/33.92.62
E-mail: tim.bogaert@howest.be

Begeleider
Koen Samyn
E-mail: Koen.Samyn@howest.be

Verantwoordelijke
Sven Rousseaux
E-mail: Sven.Rousseaux@vrt.be

5
3.3. Organigram

Gedelegeerd
bestuurder
Tony Mary

Financiën Televisie Radio S,T en I HR & FM

Willy Wijnants Aimé Van Hecke Frans Leven Harry Sorgeloos Hugo De Vreese

Operationele Beleids-
Activiteiten ondersteuing

Jan Cuypers Marketing

Canvas/ Ketnet
Eén

Ontwerp en
Ontwikkeling

iDTV

Sven Rousseaux
Jeroen Van Aert

Stage:
Tim Bogaert

6
4. Analyse

4.1 Inhoud

De bedoeling was om in een periode van 3 weken alle quizzen die beschikbaar waren
op de kabel te analyseren. Wat zijn de hoofdkenmerken van een quiz, uit welke
timers bestaat deze, hoe zit het antwoordensysteem in elkaar, hoe zit het met de
extra’s, is een vraag steeds zichtbaar, is er geluid en video bij de vraag, hoe wordt er
een antwoord gekozen, ...

Na 3 weken was er een resultaat van 27 bestudeerde quizzen. In dit resultaat kun je
zien welke de hoofdkenmerken zijn van elke quiz. Elk kenmerk is opgedeeld in een
categorie en er is bekeken of dit frequent voorkomt of heel zelden.

Daarna is er een selectie gemaakt van wat er geïmplementeerd zou worden en wat
niet. Uit deze analyse werd dan een UML Schema gemaakt van de ‘Structuur’ en de
‘content’ applicatie en wat dit als resultaat zou geven als metadata zodat er modules
kunnen geschreven worden die dit omzetten naar een platform.

De uiteindelijke versie vind je in Appendix 13 - Analyse

4.2 Wat nog?

Naast deze analyse heb ik nog twee kleinere projecten gemaakt.

Afstandsbedieningstest
Jeroen gaf me de opdracht om zoveel mogelijk afstandsbedieningen te testen met
een infra-rood ontvanger op de computer. Zo kon hij zien welke afstandsbediening
het beste en duidelijkste signaal doorgaf.
Voor deze opdracht ben ik met mijn laptop en een infra-rood ontvanger langs mijn
familie rondgeweest en steeds hun televisiebakjes getest en de resultaten uitgetypt.

Achtergronden
Jeroen was op dit moment bezig met een iDTV testproject voor VRT Nieuws. Ze
zochten hiervoor een goede achtergrond en ik heb toen een 8-tal testexemplaren
gemaakt.

7
5. Structuur Applicatie

5.1 MHP
In de paasvakantie ben ik de laatste vrijdag (8 april) naar het werk gekomen omdat
er dan een paar powerpoints van MHP werden getoond. Deze taal wordt gebruikt
voor applicaties die op een settopbox werken en ik zou deze nodig hebben voor de
iDTV Module te maken.

Over MHP bestaat er een interessante website waarop een paar tutorials en code
voorbeelden staan:

http://www.mhp-interactive.org

Op deze dag heb ik ook xletView gedownload, samen met de MHP Stubs.
xletView is een opensource project dat MHP xlets kan draaien. Het grote voordeel is
dat dit een gratis programma is, maar er zijn wel enkele nadelen.
XletView heeft maar een partiële implementatie. Dus wanneer xletView een
foutmelding geeft kan het toch zijn dat dit werkt op een settopbox en omgekeerd.

De MHP Stubs is een jar file die alle interfaces bevat. Deze kan je gebruiken bij het
compilen van een xlet. (xlet = MHP Applicatie).

5.2 UML Schema


Maandag 11 april is de finale versie van het UML Schema afgewerkt. Hierin werd de
structuur en content beschreven.
Daarna is het groen licht gegeven voor het programmatie werk.

5.3 De start van de Structuur Manager


Op 11 april ben ik begonnen met de ‘Structuur Manager’.
Deze zal bestaan uit verschillende tabbladen met daarin de verschillende opties voor
de structuur. Er werd me duidelijk gemaakt dat dit zo dynamisch mogelijk moest
opgebouwd worden. De bedoeling is dat er enorm veel keuzemogelijkheden moeten
zijn en de applicatie moest eenvoudig uitgebreid worden.
Ik mocht zelf kiezen in welke taal ik alle applicaties schreef en heb dus maar gekozen
voor c#.

5.4 Dagverslag

Maandag 11 april
Het algemene tabblad werd afgewerkt met de volgende opties.
• Naam van de quiz
o Hoe ga je de quiz noemen.

8
• Formaat
o Eerst had ik de keuze gegeven tussen slechts 2 formaten,
namelijk PAL en NTSC. Mijn stagebegeleider maakte me
hierop attent dat de quiz later eventueel op nog andere
formaten zou komen (zoals HDTV) en daarom heb ik
ervoor gezorgd dat je formaten kan toevoegen of
verwijderen.
Deze worden opgeslagen in een xml file in de applicatie.
• Achtergrond
o Bij iDTV bestaat je TV uit 3 lagen. Namelijk de
achtergrondlaag, de videolaag en de graphics laag. De
graphics laag is by default transparant. Wanneer je wil dat
je videolaag niet gezien wordt kan je dit resizen naar 0,0.
De achtergrond laag bevat ofwel een iFrame of een egaal
kleur, maar die egale kleur blijkt niet volledig te werken
op de settopbox die wij gebruiken.
• Ratio
o De standaard 4:3 en 16:9 is een belangrijke keuze. Bij 4:3
en 16:9 heb je namelijk non-square pixels. Op een
computerscherm heb je square pixels. Vanaf photoshop cs
kan je dit simuleren en zo de juiste verhoudingen
tekenen. Een cirkel wordt dan gezien als een cirkel en niet
als een ei-vorm.
• Startbedrag
o Bij vele quizzen is er reeds een startbedrag aanwezig. Dit
kun je hier invullen. Natuurlijk is er een controle op de
numerische waarde van de textbox. Wel opmerkelijk is dat
de isNumeric die je in vb.net terugvindt niet hebt bij c#.
Heb deze dan maar zelf geschreven (werkt met regex).

Problemen:
Er was een probleem met het tweemaal inladen van een XML document
omdat ik op 2 verschillende forms werkte. Heb het XML Document dan
statisch gemaakt zodat ik het maar 1 maal diende aan te roepen.

Vroeg me af hoe de layerstructuur zou werken in visual studio.net. Wist niet of


de z-layer te bepalen was zoals je in css had. Of werd dit bepaald door welk
object je eerst plaatste. Dit zou ik morgen onderzoeken.

Mijn stagebegeleider Mr. Rousseaux vertelde me dat ik het mocht proberen om dit te
programmeren. Na deze grondige analyse is het nog steeds mogelijk dat dit een ‘no-
go’ project wordt, maar het is het proberen waard. Er is me ook verteld geweest na
de programmatie een gespecialiseerd iemand in quizzen te laten komen om de
applicatie te testen en eventueel hierop een nieuwe quiz te maken.

9
Dinsdag 12 april
Vandaag het schermentabblad voor mijn rekening genomen. Welke schermen zijn er,
waar komen ze voor, in welke volgorde? Deze schermen worden volledig dynamisch
ingeladen uit de instellingen xml. Voor elke user control is er de mogelijkheid om een
image in te laden en deze op het tv scherm te toveren. Je kan meteen zien waar
precies de image wordt getoond aan de hand van een panel die automatisch picture
boxen inlaadt. De z-index kan veranderd worden door ze onzichtbaar en terug
zichtbaar te maken.

Heb het ook mogelijk gemaakt de images te resizen in design time. Hierdoor krijg je
een perfect beeld van hoe het resultaat er gaat uitzien.

Vandaag ook een sleutel van het lokaal gekregen aangezien beide collega’s naar een
meeting waren.

Problemen:
Had heel wat problemen met de user controls wanneer het formaat aangepast
werd. Dan veranderde de hoogte en breedte van het panel en klopte de image
grootte en positie niet meer. Dit is opgelost door het formaat te locken na
bevestiging van het algemene tabblad.
Het idee van in tabs te werken is gebleven ook al worden bepaalde tabs
gelocked vanwege de mogelijkheid om wel nog de data te zien, maar niet
meer te veranderen. Je kan eventueel cancellen. Dan hebben de volgende
tabs hun informatie wel verloren, vanwege de onstabiliteit van de formaten.

Woensdag 13 april
Afwerking van de schermen.
Na een controle van mijn stagebegeleider kwam hij tot de volgende conclusies.

De background layer moest hernoemd worden aangezien je anders kon denken dat
het de background layer was en niet de background net boven de video layer.
Een kleine presentatie gekregen over de precieze werking van de verschillende lagen
in MHP. (namelijk background, video en graphics)

De integratie van safe margins. Elke televisie snijdt een bepaald deel van het video
gedeelte weg. Hetgene waar men een grote zekerheid van weergave bij heeft noemt
men de veilige zone. Deze zone wordt weergegeven door safe margins. Dit houdt in
dat er een bepaald percentage links, rechts, onder en boven kan worden
weggesneden. Gemiddeld is dat ongeveer 5% van alle zijden. Maar ik moest ervoor
zorgen dat je dit percentage aantal kon aanpassen.

Problemen:
C# componenten en transparantie zijn elkaar niet gezind. Wanneer je namelijk
transparantie aanzet op een control gaat deze de achtergrond nemen van de
control waarin hij geladen is en niet de achtergrond van de control die er
meteen achter staat. Als je dus met vele controls werkt geeft dit vreemde
effecten. Een safe margin die getekend was op een panel met daarin een

10
image en waarboven je dan een picturebox zette met transparantie had als
gevolg dat enkel de background van de panel en de margins die op die panel
getekend waren verdwenen. Heb dit eerst zo gelaten.

Donderdag 14 april
Categorieën tabblad aangemaakt. Hier kunnen categorieën aangemaakt worden voor
de bepaalde vragen. (Bijvoorbeeld een makkelijke en een moeilijke vraag)

Een categorie kan toegevoegd worden, bewerkt en verwijderd. Dit is uniek voor elke
quiz dus er is geen standaard categorie die geladen wordt. De categorieën zorgen
voor de puntentelling.

Rondes tabblad aangemaakt. Hierin kan je dynamisch rondes toevoegen en


verwijderen. Deze worden één per één toegevoegd of verwijderd. Samen met elke
user control van de ronde wordt er tegelijk ook een user control aangemaakt voor de
Timer. Wanneer je een ronde control verandert wordt de timer usercontrol meteen
veranderd met behulp van Events. Elke keer de timer wijzigt wordt er een event
afgevuurd vanuit de ronde en wordt dit opgevangen door het hoofdform. Deze form
zorgt er dan voor dat de user control vervangen wordt.

Problemen:
Een vreemde situatie die ik voorhad is wanneer je een dynamische user
control toevoegt terwijl je reeds op een scrollable panel gescrolled hebt dat hij
niet de top en left van de user control, maar van de zichtbare panel neemt.
Heel wat opzoekingswerk wanneer je dit niet weet. Je kan dit eenvoudig
corrigeren met autoscrollPosition.X en .Y.

Eerst had ik bij het toevoegen of verwijderen een volledige refresh van de
user controls in dat panel. Dit was natuurlijk niet bijzonder gebruiksvriendelijk.
Ook bij de timers werd bij een wijziging de volledige panel gerefreshed. Dit
heb ik opgelost met een beetje meer code.

Vrijdag 15 april
Vandaag kwamen de extra’s aan de beurt. Deze worden met een toolbox dynamisch
ingeladen vanuit de instellingen.xml. Bij het klikken op de toolbox wordt dan een
usercontrol geladen met de nodige instellingen en ook uitgeladen vanuit de
instellingen.xml.

Tijdens het werken aan de graphics vroeg mijn stagebegeleider om de hele applicatie
eens te tonen. Het zag er vrij goed uit, maar hij had enkele opmerkingen bij het
schermentabblad.
1. De transparantie is niet sourceOver bij panels en pictureboxen.
2. Geen grid te bespeuren voor eenvoudige plaatsing van schermen.
3. de safe margin staat onder de schermen.
4. geen grid, dus ook geen snap to grid.
5. geen drag and drop functie van de schermen.

11
Er stond me dus nog heel wat te doen. Ik heb de extra’s even gelaten voor wat ze
zijn en ben begonnen met opzoekingswerk naar hoe ik de transparency beter kan
krijgen. Samen met mijn stagebegeleider en zijn collega heb ik enkele nuttige links
gevonden.

Na enige tijd zoeken heb ik ook op microsoft een interessante applicatie gevonden.
Deze is eigenlijk puur GDI+.

Hier worden de images stap voor stap getekend op het scherm en er wordt dus niet
gewerkt met panels, pictureboxen en dergelijke. De applicatie wordt steeds
hertekend, waardoor de transparency geen probleem vormt.

Deze middag ben ik de hele tijd bezig geweest met het bestuderen van hoe de GDI+
precies werkt. Ik ben ook begonnen met een user control te maken die de grid
tekent en automatisch images tekent op de grid. Hierdoor hoef ik deze maar toe te
voegen aan de applicatie, wat het eenvoudig maakt om eventueel ergens anders te
implementeren.

Maandag 18 april
Verder werken aan de custom control die ervoor zorgt dat er een panel getekend
wordt met een instelbaar grid en een instelbare safe margin. De safe margin moet
steeds boven andere objecten zichtbaar zijn.

Na vandaag kon je dit met de custom control:


• een panel wordt getekend met daarop een grid
• het panel is dynamisch opgebouwd. Je geeft een schermbreedte en formaat
op. Het paneel berekent zijn grootte automatisch.
• Grid lijnen. Je geeft hier de pixelgrootte op en de gridlijnen worden
automatisch aangepast aan de grootte van het panel.
• Images toevoegen. *.png, *.jpg en *.gif zijn ondersteund door MHP.
• De alpha waarde van images blijft steeds bewaard
• Images slepen. Wanneer je een image selecteert en sleept gaat deze mee met
je muis. De x en y waarde worden rechtstreeks via een event op de form
getoond zodat je makkelijk kan zien op welke positie de image nu is.
• Alle images verwijderen.
• Geselecteerde image deleten
• Auto snap ability. (Deze is vrij processor belastend)
• events. Wanneer de image veranderd wordt van positie, wordt een event
getriggerd die het image object meegeeft en de positie. Ook wanneer een
andere image geselecteerd wordt, wordt een event getriggerd. Dit is nodig om
de delete knop te enablen aangezien hij anders een image zou deleten die er
niet meer is.
• Double buffering. Hierdoor krijg je het geflikker niet bij het verslepen van een
image.

12
Dinsdag 19 april
De panel is nu bijna afgewerkt. Er zijn verschillende extra methodes geschreven die
de geselecteerde image kunnen bewerken.
De autosnap is geoptimaliseerd, maar blijkt nog steeds een beetje te veel
processorkracht in te nemen. Hij overloopt nu elke lijn nog steeds en gaat hier kijken
voor elke lijn binnen de 5 pixels of hij daarop ligt. Zal deze dus opnieuw moeten
herschrijven.

Je kan nu images zichtbaar en onzichtbaar zetten als het te druk wordt op het
scherm. Dit is gedaan door een extra property aan het image object mee te geven.

De z-index kan worden veranderd. Dit werd gedaan door de image te verwijderen uit
de collectie en meteen weer toe te voegen op het eind van de collectie.

De grid lijnen en safe margin kunnen nu af en aan gezet worden en je kan bepalen
hoe groot deze moeten zijn. Ook de kleur hiervan is te bepalen.
Achtergrond image wordt in de panel geladen.

Optie om te centreren over de X-as en de Y-as.

Een tweede statusbar bijgezet die de x en y waarde van de mousemove laat zien en
bij verkleinde versie automatisch omrekent naar de werkelijke waarden.

Problemen:
Had een bug bij het verwijderen van een image. Wanneer je een image
selecteert komt hier een kader rond, maar deze verdween niet bij het deleten
omdat deze niet tot het image object behoorde. Gezorgd voor een boolean die
de zichtbaarheid van de kader controleert.

Woensdag 20 april
Vandaag opnieuw begonnen aan de autosnap. Deze keer veel minder processor
belastend. Er wordt slechts naar de twee dichtste gridlines gekeken in plaats van alle
gridlines.

De extra toepassing waar ik vorige week vrijdag aan begonnen was is nu ook
afgewerkt. Heb de toolbox veranderd van pushbuttons naar togglebuttons aangezien
je maar 1 maal een extra van een bepaald soort kan kiezen.

Problemen:
Was van plan om een video te kiezen als mogelijkheid om te tonen hoe dit
was met de schermen erboven, maar GDI+ kan blijkbaar niet tekenen over
een video tenzij het gebeurd met windows media player.

De autosnap werkt enkel met de linkerbovenhoek. Dit geeft conflicten als je


ook de rechterbovenkant en onderkanten doet als je gridlines bijna even groot
zijn als je image.

13
Donderdag 21 april
presentatie van Microsoft Information Bridge Framework gedaan ‘s morgens voor
mijn collega’s. Het resultaat hiervan was goed. Daarna verderwerken aan de
structuur applicatie. Proberen herschrijven van de mousemove aangezien die heel
wat cpu gebruikt, maar zelfs bij de simpelste invalidate van een beperkte region ging
de cpu de hoogte in, dus heb ik ze zo gelaten.

Opslaan mogelijkheid aangemaakt. Ook een reset functie geschreven zodat het
meteen mogelijk is een nieuwe quiz te starten.
Alle instellingen van de structuur Manager worden opgeslagen in een zelf gekozen
xml file.

Mogelijkheid toegevoegd om zowel de werkelijke als de verkleinde versie van het


scherm te laten zien omdat je enkel met de verkleinde versie nooit accuraat kan
werden door de afrondingen van de x en y waarde.

Vrijdag 22 april
Kreeg deze week de opmerking dat ik erg weinig commentaar schrijf. Mijn
stagebegeleider zei dat dit heel belangrijk was omdat code geheel nutteloos wordt
zonder commentaar. Wanneer er iemand anders mijn project overneemt en hierop
moet verder schrijven gaat deze er helemaal niet wijs uit geraken. Vandaar heb ik
deze morgen bijna elke methode becommentarieerd. Heb ontdekt dat er een tooltje
in visual studio.net zit dat automatisch de code die met /// geschreven is genereert
in een comment doc.

Deze middag een nieuwe evaluatie gekregen van mijn project. Enige opmerking was
dat ik geen mogelijkheid had om text toe te voegen aan de grafische interface. Deze
middag bezig geweest aan de mogelijkheid om dus ook textboxen mee te geven aan
de form. Hier worden dan de coördinaten en de breedte en hoogte meegegeven
zodat dit in de content gebruikt kan worden.

Ook even bezig geweest met een soort toolbox implementatie die gewone controls
op de form kon slepen. Achteraf gezien geen goed idee omdat labels en textboxen
en dergelijke niet dezelfde kenmerken hebben als bij java 1.1. Ook was er het
probleem van de transparantie dat dan weer boven zou komen. Er moet rechtstreeks
gepaint worden en dan zouden de controls hier fout op geven.

Optimalisatie van de plaats en tabpositie

14
6. Content Manager

6.1 Introductie
De content manager werkt volledig apart van de structuur manager. Deze twee
applicaties kunnen dus door twee verschillende mensen gemaakt worden. Hierin
komt alle content die de quiz bevat op basis van de structuur die reeds is
aangemaakt.

6.2 dagverslag

Maandag 25 april
Beginnen aan de content manager. Deze manager zou de verschillende ronden per
tabbladen laten zien en per tabblad de vragen met daarbij de antwoorden.
Ook zal er een scherm aanwezig zijn waar het mogelijk is tekst in te vullen of een
vraag of de timer of dergelijke.
De mogelijkheid moet toegevoegd worden om fonts uit te lezen van een xml file die
verwijzen naar een pfr bestand. Het formaat waarmee settopboxen werken is het
PFR formaat. Deze kan je eventueel op een settopbox zetten. Om het font op
computer te simuleren maakt men soms van het PFR formaat een TTF formaat.

Dinsdag 26 april
Het is nu mogelijk om een structuur bestand te openen en dit te bewerken.
Dat wil zeggen:
- je kan de tekstvakken opvragen en zeggen welke tekst er in moet komen
- je kan de kleur van de tekst kiezen
- je kan de grootte in pixels van het lettertype kiezen
- voorlopig is enkel het font 'Tiresias' beschikbaar
- je kan standaard waarden toevoegen (= dynamisch tekstvak)
- kleine kader rond het tekstvak getekend voor betere afbakening op witte
achtergrond
- mogelijkheid tot opslaan van het geheel in een xml file.

De toevoegmogelijkheid van dynamische velden wordt ingelezen door een


instellingen.xml. Wanneer je ze toevoegt wordt dit weergegeven als "<naam van het
veld>". Later kan ik hierop mijn regex baseren die de patronen &lt; en &gt; herkent.

De 'open' functie is ook aangepast zodat ze enkel bestanden kan lezen met de
extensie "*_structuur.xml"

De structuur gegevens worden overgepompt naar de content xml zodat ik de


structuur xml niet meer nodig heb hierna.

15
Problemen:
het doorgeven van de antwoorden en vragen via de usercontrol. en de user
controls van de ronde naar de form. Aangezien ik niet wou dat hij steeds elke
user control moest doorlopen en dan steeds de antwoorden en controleren of
deze nummers gelijk waren heb ik gezorgd dat de rondes in een hashtable
opgeslagen werden.
Hierdoor kon ik rechtstreeks de goede ronde opvragen. Bij de vragen en
antwoorden heb ik 2 arraylists gedeclareerd die opvraagbaar zijn via de
usercontrols van ucRonde en ucVraag. Hierdoor kan ik per ronde ook
opvragen welke antwoorden en vragen hiervoor beschikbaar zijn.

Dan nog het opslaan als...Ik wou het zo maken dat er automatisch
_structuur.xml en _content.xml achter het bestand werd gezet.
Dit geeft echter een probleem als je wil overschrijven van een file aangezien
je dan de bepaalde file niet overschrijft maar renamed.
Dit was eenvoudig opgelost door het controleren van de naam, wel beetje
tricky aangezien hij automatisch renamed naar .xml als je een filter
inzet die "*_structuur.xml" is.

Woensdag 27 april
Presentatie van het Information Bridge Framework op school.

Donderdag 28 april
Jobhappening voor 3MCT op school.

Vrijdag 29 april
verder afwerken van de content manager. Kleine probleempjes beter maken.
De align van de tekst in de content manager aanpassen zodat het ook mogelijk is
center, left en right align te doen.
Bezig geweest aan een custom control die voor die aligning zorgt. Deze control erft
van button maar wordt volledig opnieuw getekend zodat de aligning er uit ziet zoals
je in onder andere Microsoft Word hebt.

Maandag 2 mei 2005


Maken van de custom control 'ucAligneer'. Deze zorgt ervoor dat er 3 align buttons
gemaakt worden en maakt een event die ervoor zorgt dat de form weet wanneer de
align verandert en dus kan meegeven aan de panel die de tekst verandert.
De align invoer blijft bewaard per tekstveld.

Onderzoek naar eventueel sneller verplaatsen van de image. Wanneer je een panel
versleept op een egaal vlak is dit niet processor belastend, maar wanneer die panel
over een background wordt gezet gaat de processor naar 100%. Niet erg efficiënt.
Proberen oplossen met enkel een kader te laten verslepen, maar de belasting bleef
dezelfde.

16
Hints aanmaken. Deze optie had ik over het hoofd gezien wanneer ik deze middag
een paar quizzen testte om na te maken.
Deze optie wordt in de structuur en de content aangepast. In de structuur moest ik
ervoor zorgen dat de puntenverliezen werden veranderd en welk soort hint het
precies was per ronde. In de content wordt per vraag gekeken welke soort hint het
inhoudt. Wat is de tekst, na hoeveel seconden komt hij tevoorschijn.
De update van de content is reeds gebeurd.

Dinsdag 3 mei
Content Manager is afgewerkt.
Studie van MHP.

Woensdag 4 mei
Studie van MHP
XletView bekijken en test applicaties aan de praat krijgen.

PHP en JSP pagina maken die een simpele berekening uitvoeren. Dit was gemaakt
voor een test project op iDTV waar de settopbox verbinding maakt met de server,
daar een berekening uitvoert en deze terugstuurt.

17
7. Xlets en MHP

7.1 Intro
Na de structuur en content Manager diende er nog een module geschreven te
worden die de xml uitkomst vertaalt naar iDTV. Deze module zou een xlet worden
die dan begrijpbaar is door een settopbox.

7.2 Wat is MHP?


MHP is een open standaard voor interactieve TV Middleware. Applicaties worden
geschreven in Java of in HTML. De specificatie van MHP kan je gratis downloaden.

De populairste is DVB-J (java). Deze zijn ook bekend als Xlets. Deze zijn een beetje
zoals applets voor webpagina’s. Zoals een applet heeft de xlet interface een start en
stop methode. De startklasse moet dan ook de xlet implementeren.

MHP werkt enkel met Java 1.1!

7.3 Dagverslag

Maandag 9 mei
Dit weekend dacht ik dat het probleem dat ik vorige week had met het inlezen van
de xml een java probleem was. Aangezien je maar versie 1.1 mag gebruiken dacht ik
dat de xmlReader hier nog niet geïmplementeerd was. Ben dan op zoek gegaan en in
de bib een boek gevonden over sax-readers. Hierin werden enkele parsers
beschreven die ik dan deze morgen zou uittesten. Deze morgen heb ik dan nog
problemen gehad met de javac te laten compilen in 1.1, maar deze bleef hier fout bij
geven. Uiteindelijk eclipse gedownload en geïnstalleerd. Hier kon ik de optie 1.3
aanduiden en als target 1.1.

Hierna heb ik nog eens geprobeerd om mijn oude code te compileren. Want als dit
nu goed zou compileren zou het eigenlijk een compiler fout moeten geven. Dat deed
het dus niet en dus heb ik me nog eens toegelegd op de code. Nu blijkt dat MHP het
maar niets vindt om met IO te werken. Heb deze dan eens veranderd naar een URL
en dat blijkt dus te werken.. :)
Een code regel dus waar ik 3 dagen naar op zoek geweest ben. Goed, nu kon ik
eindelijk de xml uitlezen. Heb vandaag de schermensoorten uitgelezen. Deze gepaint
op het scherm samen met de tekst bestanden.
De tekst in java werkt wel helemaal anders als windows. Bij java is de x en y links
onderaan. Bij c# links bovenaan.
Bij c# is mijn font in pixels en bij java is dit blijkbaar niet mogelijk. Enkel points.

Vandaag ook het programma IRT gekregen. Dit is hetzelfde als xletView, maar wel
volledig en helemaal niet gratis.

18
Xlets moeten gedropt worden in een eigen carrousel (bij mij 0.0.2)
C:\Program Files\IrtMhpRI\windows\mhpri\runtime\fileio\dsmcc\0.0.2

Als je een applicatie bijmaakt moet je de Applications.cfg aanpassen


namespace.klasse;350;9 = Naam zichtbaar in irt;dvb://carrousel

in mijn voorbeeld
be.vrt.stage.QuizMHP;353;9 = VRT: Quiz Applicatie;dvb://0.0.2

Dinsdag 10 mei
Zat vandaag hele dag alleen op bureau omdat mijn begeleiders een cursus deden
hier op het bedrijf zelf. Bijna hele dag bezig geweest met het onderzoeken van dat
IRT programma en hoe verschillende xlets draaiende te krijgen.
Blijkbaar lag het aan xletview dat de IO niet werkte aangezien deze op de IRT wel
werkt. Heb dan een xlet geschreven waarin xml werd uitgelezen, maar toen Jeroen
dit zag had hij een ander voorstel.

Het zou erop neerkomen dat het programma als een 'module' zou geschreven
worden in c#. De module die ik maak zou dus java code aanmaken en compileren.
Daardoor zou de xml niet uitgelezen moeten worden in java en dus zonder xml
verscheept kunnen worden via een carrousel. Er kunnen dan andere modules
geschreven worden die bijvoorbeeld html genereren voor DVB-HTML.

Heb www.mhp-interactive.org bekeken. Hierop staat een tutorial van de MHP.


De api van mhp heb ik teruggevonden in het irt programma. De mhpstubs heb ik van
mhp-interactive. Dit is een jar die de klassen bevat die de settopbox gebruikt om de
gecompileerde java te runnen.

Woensdag 11 mei
Het maken van de quiz met hardgecodeerde objecten. Ben bezig met een xlet aan te
maken in java die de quiz op een degelijke wijze laat zien.
Ben nog niet meteen begonnen aan het schrijven van c# die die java code genereert
aangezien ik eerst gewoon in java wil testen of dit wel zou werken.

Voorlopige implementatie van de quiz:


• Intro scherm geschreven. Laat tekst zien die je wil in het midden van het
scherm via een HText (Havi component)
• HoofdXlet. Wordt gestart wanneer je de 'ok' toets van afstandsbediening
indrukt.
• HoofdXlet beheert Quiztekenen, de keylisteners worden daar naar
doorgestuurd
- hierin worden de vragen en antwoorden getekend
• 2 implementaties reeds geschreven om te antwoorden. Namelijk de cijfers en
de kleuren
• Wanneer je rechtse pijl duwt ga je naar volgende vraag

19
• 4 kleuren van antwoorden : gewoon, geselecteerd, goed antwoord en fout
antwoord.
• Timer:
- Beslist hoe lang je kan antwoorden op de vraag
- pauzetijd: beslist hoe lang de vraag (+ of het antwoord goed of fout is)
zichtbaar is na het verlopen van de timer
- Geeft steeds door aan de hoofdXlet wanneer er een seconde voorbij is.

• hoofdxlet beheert wanneer de tijd verlopen is en wanneer hij de volgende


vraag of ronde moet weergeven.
• is de tijd verlopen en is er nog niet geantwoord dan zal hij een fout antwoord
genereren.

in irt wordt het resourcepath gewoon meegegeven als de root van de carrousel
String resourcePath = "/be/vrt/stage/";

Een graphicslayer bevat een scene. Hieraan kunnen componenten toegevoegd


worden. Eerst wordt de HELP aan de scene toegevoegd. Aan die scene wordt dan
ook de HText toegevoegd.
Wanneer de quiz geladen wordt worden deze beide geremoved van de scene en
komen de vragen erop.

Donderdag 12 mei
Hoe een xlet manueel destroyen?
Exitten
Scene disposen en op null zetten
Context.notifyDestroyed();

Vandaag heb ik de images toegevoegd aan de quiz. Deze worden in een nieuwe
component aan de scene toegevoegd.
Een component alleen hertekenen gaat niet. De hele scene wordt hertekend. Omdat
je dus elke keer moet herpainten is dit vrij intensief. De images worden wel slechts 1
maal geload en zo steeds op de scene gezet.
Het help scherm is uitgebreid naar een eindscherm. Dit is dezelfde component waar
je nu de tekst van de HText component kan veranderen.

Structuur en Content applicatie aangepast met de 'special' feature. Dit houdt in dat
een tekstvak bijvoorbeeld een vraag inhoudt (of antwoorden, thema, timer). Deze
eigenschappen van het tekstvak worden dan gebruikt in de paint methode van de
component waar antwoorden en dergelijke worden getekend om de correcte
plaatsing van de tekst weer te geven.
Opletten. De g.drawString in java is niet hetzelfde als in c# waardoor er een conflict
was. In java is de y coördinaat namelijk de onderkant van de tekst. In c# is dit de
bovenkant. Opgelost door de FontMetrics. Deze kan de hoogte en de descent
opvragen. De y property in c# is dus hetzelfde als de y property in java min de
getHeight() + getDescent();

20
Wat ik nog veranderd heb in de content manager is de manier waarop de images
worden behandeld in xml. Vroeger werd het gehele path mee gestuurd. Nu wordt het
iets anders gedaan. Enkel de naam wordt opgeslagen in de xml file (via de FileInfo
klasse). En de image wordt gekopieerd naar de folder waarin de Content file wordt
opgeslagen. Hierdoor gaat het makkelijker worden om te weten welke files nodig zijn
om in de carrousel mee te sturen.

Ook de kleuren worden aangepast bij de vragen, timer, thema en antwoorden. Ik


had nog 'n klein probleempje bij het veranderen van de setFont. Ik zou de size
moeten aanpassen, maar dan moet ik ook het lettertype aanpassen en een nieuw
font aanmaken op die irt bleek dit niet vanzelfsprekend aangezien er plots heel wat
vertraging ontstond.
De background van de Help functie is ook iets aangepast en werkt nu met alpha
waarden. De kleuren in MHP zijn DVBColors.
Bij de help functie is er een kleine achtergrond in het midden van het scherm waar
het rondom nog transparant is. Bij de gewone quiz is er nog een doorschijnende
achtergrond. Deze optie zal ik best nog laten kiezen in de structuur van de applicatie.
Sommige quizzen willen namelijk een gewone achtergrond en andere geen.

Een andere aanpassing die ik gedaan heb is de 4 verschillende kleuren bij het raden
van het antwoord: gewone staat, ok staat, fout staat en geselecteerde staat. Dit ook
best nog aanpassen in de content manager waar je nu enkel het kleur kan kiezen
van de gewone staat.

Vandaag vrij veel bugs tegengekomen. Niet zo eenvoudig om te debuggen zo een


xlet omdat die irt op mijn pc ongelooflijk traag draait. Wil binnenkort wel eens mijn
voorlopige xlet op de tv laten draaien.
Jeroen is op dit moment met een xlet bezig en deze stuurt die via een seriële kabel
door naar een settopbox (degene van telenet). Deze kan dan op de tv bediend
worden.

Als je op irt werkt moet je de volgende shortcuts weten als je een afstandsbediening
wil simuleren:
- de cijfers zijn de cijfers
- de letters de letters
- de kleuren zijn F5,F6,F7,F8
- exitten van het programma : F1

Vrijdag 13 mei
Deze morgen begonnen met de implementatie van de hints. Even nagedacht over
hoe het eenvoudigst de hints implementeren en wat het minste processorwerk zou
leveren.
Een aparte klasse gemaakt die de timer van de hints controleert. Deze enkel laten
afvuren wanneer de hint getoond moet worden.
Toen een bespreking gehad met de stagebegeleider over de volledige werking van
het project en hoe ver ik precies zat.

21
Daarna heeft hij me een presentatie laten zien van MHP. Hierin zat de werking van
de xlet en een bespreking van de havi componenten.
Een handig iets aan de havi componenten is het automatisch moven van de focus.
Dit kan ik gebruiken voor buttons te maken.

Dinsdag 17 mei
Na een hele dag programmeren schrijf ik zelf al een ; achter een gewone zin :)

Deze morgen ervoor gezorgd dat de hints goed zichtbaar zijn. De routine
herschreven zodat er geen tweede timer gebruikt wordt. Dit zorgde voor een
vertraging en geen correcte timing met de andere timer. Nu luisteren de hints
gewoon naar de hoofdtimer van de vraag.

Extra timer implementatie. Hierin wordt een timer over de hele ronde gebruikt.
Wanneer je antwoordt wordt de score meteen berekend en krijg je de volgende
vraag.

Implementatie van de pauze voor een vraag. Bij de pauze zie je enkel de vraag en
nog geen antwoorden. De timer gaat dan ook nog niet af. (in mijn code noemt deze
'voorTijd'). De pauzeTijd wordt nu per ronde meegegeven. Niet per quiz. Zo is het
mogelijk om een andere pauze per ronde te hebben. Dit geldt ook voor de voorTijd.
Mogelijkheid om een background zichtbaar te maken of niet. Deze background
neemt het hele scherm in.

TODO: Wanneer er geen background zichtbaar is, is dit nu een half doorschijnende
laag. Ik moet er nog voor zorgen dat je het kleur kan kiezen en
de transparantie.

Structuur en content applicatie zijn aangepast voor de wijzigingen van de hints en


timer structuur.
Bij de antwoorden staan nu images voor het antwoord. De rode knop is bijvoorbeeld
een rode knop etc. Deze images worden uitgelezen uit de carrousel. (naamgeving:
rood, geel, blauw en groen.png)

javac compiler via command prompt uitgetest en moet via classpath gebeuren omdat
je anders de klassen die de bepaalde klasse gebruikt niet vindt (deze zitten in een
package).

Woensdag 18 mei
structuur en content applicatie zijn verder in orde gemaakt. Hier zaten nog enkele
problemen in. Verder is het timertype in de structuur applicatie aangepast omdat er
nu een pauze en voortijd bestaat en er enkele opties overbodig zijn.
De content applicatie heeft een extra tabblad dat er voor zorgt dat je de 3 kleuren
voor de selectie, goed antwoord en fout antwoord kan kiezen. Ook de achtergrond is
geoptimaliseerd. Je kan nu kiezen tussen een achtergrond of een kleurvlak. Bij dit

22
kleurvlak kun je de alpha waarde kiezen zodat dit volledig doorzichtig of volledig
ondoorzichtig is.
Deze middag begonnen aan de module waarin c# java code genereert die de xml
uitleest en vertaalt naar een java class die dan wordt uitgelezen door reeds
aangemaakte code die de quiz beheert.
Deze avond is deze module afgewerkt. Hier moet wel nog een GUI voor geschreven
worden die meteen modules kan bijvoegen voor andere applicaties gebaseerd op
dezelfde data.

Nadat de broncode van de module was geschreven en ik dit wou compileren met een
1.1.8 compiler in de command prompt gaf deze een foutmelding. Hij kon namelijk de
util.list niet vinden...Blijkbaar geeft eclipse geen compilerfout hierop ook al zet je de
compliance op 1.1. Ook werkt dit op de IRT nog steeds aangezien die blijkbaar de
jdk 1.4 gebruikt. Nu die util.list moest ik dus vervangen. Daardoor moesten alle Lists
en Arraylists vervangen worden. Welke collectie klasse ik daarvoor gebruikt heb is de
Vector. Hierdoor moesten alle klasses veranderd worden en dus ook de module
generator. Uiteindelijk was dit niet zoveel werk omdat de vector en arraylist dezelfde
methodes gebruiken voor het halen en het toevoegen van objecten in hun lijst.

Donderdag 19 mei
Deze morgen begonnen met te bekijken hoe het makkelijkst gecompileerd wordt via
de command prompt. Dit moest compileren met een zo laag mogelijke versie, maar
blijkt dat de 1.1.8 jdk moeilijkheden gaf om via de command prompt klassen in te
laden dus heb de jdk1.3 gebruikt. Deze heb ik als variabele in de app.config
gestoken aangezien deze per computer een andere locatie kan hebben. Dan gekeken
hoe te compileren via de command prompt in c#. Dit bleek dan via de
System.diagnostic.process te gaan zodat je de cmd.exe kon oproepen en daar kan je
dan een variabele mee meegeven. Een klein probleempje was als er spaties in de
naam zaten, maar dit is simpel opgelost door quotes. Dan kun je bij je variabele ook
nog kiezen of je /c of /k ervoor zet. Bij /k blijft het cmd openstaan, bij /c sluit deze
na bewerking. Wel jammer dat je even een zwart venster ziet, maar dit is niet
meteen te vermijden. Nog een paar foutjes weggehaald in de content klasse. Deze
was nog niet volledig upgedate volgens de structuur die upgedate was.

Daarna ons lokaal opgeruimd en alles in dozen gestoken aangezien morgen onze
verhuis gebeurt. We verhuizen naar 5L71.
We hebben hier ook 2 racks staan die eigenlijk een hele tv uitzender is met alles
erop en eraan: carrousel, modulators, etc...Veel geld :)
Volgende week gaan we een test doen met de xlet naar de settopbox te verplaatsen.
Ook zal ik daarna de triggering moeten implementeren. Hierdoor kan de vraag
eindigen door triggering. Deze triggering kan men enkel uitvoeren in een echte
situatie waardoor we van de 2 racks zullen gebruik moeten maken. Interessant want
dit wil ik echt wel eens zien werken :)
Op IRT kan je dit niet testen omdat deze geen triggering kan veroorzaken. Hopelijk
werkt m'n xlet op de settopbox eerst en vooral :)

Morgen verhuisdag!

23
Vrijdag 20 mei
Het verhuisteam was ‘s morgens bezig met ons lokaal. Daarna alles uitgepakt en in
orde gezet. In de namiddag een format van een pc moeten doen en windows 2000
erop gezet. Dan een voorbeeldcode van Jeroen gekregen over eventTriggering vanuit
de studio naar een xlet. Dit weekend eens toepassen op mijn applicatie.

Weekend 20 en 21 mei
Documentatie geschreven en voorpagina gemaakt.
Mijn xlet aangepast zodat deze reageert op eventTriggering. Op IRT geeft dit wel
een foutmelding aangezien deze niet in verbinding staat met de carrousel.

24
8. Settopbox

8.1. Intro
Een Xlet moet op een settopbox komen zodat deze in elke huiskamer, die er eentje
in het bezit heeft, kan afgespeeld worden.
Een settopbox is een klein bakje (ongeveer 30cm x 20cm) dat je aansluit op je kabel.
Dan verbind je je settopbox en je TV met een scart kabel. Bij een settopbox krijg je
een afstandsbediening en een draadloos keyboard.

Op de VRT hadden we 3 settopboxen. 2 van Philips die gebruikt zullen worden door
Telenet en nog 1 van Nokia die signalen vanuit de lucht kan plukken.

8.2. Dagverslag

Maandag 23 mei
Een gouden tip: Denk niet dat je applicatie gereed is wanneer deze op de IRT werkt!

Vandaag werd mijn applicatie op de settopbox getest.


Eerst alle tools gekregen van Jeroen om een seriële verbinding te maken met de
settopbox. Op mijn laptop is er geen seriële poort dus werk ik ook met de andere pc
op mijn bureau.

Wat is nu de precieze werkwijze om te testen op de settopbox:


1) een folder 'Xlets' aanmaken op de pc met seriële poort.
2) Hierin de class files van het project zetten
3) de file xlets.dat wijzigen zodat het startup path verwijst naar het goeie
bestand (zoals in de applications op IRT)
4) de seriële poorten van de settopbox en de computer verbinden met elkaar
5) stbproxy starten (deze zorgt voor de seriële communicatie)
6) command prompt openen
7) volgende regel invoeren: stupload localhost xlets.dat Xlets
8) baretail openen indien je de uitvoer van de settopbox wil zien.

Wat ik dus moest doen was mijn class files naar de andere computer overzetten elke
keer ik iets wijzig in de code. Dan de class files uploaden naar de settopbox waar ik
de applicatie kan runnen.

Problemen: na het uploaden geeft de settopbox vaak de fout Xlet already in use.
Oplossing: - ofwel enkele keren aan en af zetten
- ofwel power uittrekken en opnieuw uploaden

Na de installatie en know how van het overzetten kon ik beginnen met het testen
van mijn applicatie.

25
Dit ging niet zo soepel en ik kwam de volgende problemen tegen:
- Foutmelding over color.BLACK, ...
Oplossing : black moest met kleine letters ipv hoofdletters (dit geeft
nochtans geen compiler fout in de stubs)

- Foutmelding over Vector methods


Oplossing : Volgens de JDK1.4 is de methode clear(), get(int) en
add(object) mogelijk, maar blijkt dat de JDK1.1 deze niet toelaat! Elke
vector methode moest dus vervangen worden door respectievelijk
removeAllElements(), ElementAt(int) en addElement(Ojbect). Deze
moeten nog vervangen worden in de module die java genereert.

- Foutmelding over de streamEvents


Dit is omdat er nog geen carrousel is gemaakt om de objecten in te
bewaren. Dit zou moeten opgelost zijn na de milo test.

- Timer:
Deze bleek niet goed meer te werken bij het vaak repainten van het
scherm. Je kon dus niet betrouwen op het feit dat deze echt elke
seconde een event afvuurt en volledig uitwerkt.
Oplossing : Jeroen had dit vroeger ook voorgehad bij een applicatie. De
oplossing is vrij eenvoudig. In plaats van dat je de timer om de seconde
laat vuren laat je deze vlugger afvuren. Bijvoorbeeld om de 200
milliseconden. Dan kijk je elke keer of je tijd al 1 seconde gepasseerd
is. Is de 1 seconde gepasseerd, dan voer je je acties uit. Anders niet.

- Repaint: Dit was blijkbaar veel te zwaar om telkens de componenten te


hertekenen bij het passeren van een seconde. Daardoor was er een grote
vertraging op de keylistener, de timer en de antwoorden
Oplossing :
- Van de images die getekend worden heb ik 1 container gemaakt die
aan de scene wordt gehangen. Deze container bevat voor elk
scherm een nieuwe component met de bounds beperkt aan de
image. Op zich maakt dit nog niet zo veel uit want de component
met antwoorden etc bevat het hele scherm. Wanneer ik echter de
antwoorden etc. nog ga opsplitsen in verschillende componenten
zou dit wel wat tekenwerk besparen.
- Bij elke seconde van de timer werd er een repaint gedaan omdat de
seconden moesten gezien worden. Hier heb ik een region aan
toegevoegd zodat de repaint enkel het scherm van de timer
hertekent.
- De backgroundImage verwijderd. De jpg die over heel het scherm
gestretched wordt blijkt enorm veel kracht van de settopbox te
vergen. Ik heb dit opgelost door gebruik te maken van background
en videolayer. De videolayer wordt geresized zodat deze niet het
hele scherm vult en op de backgroundlayer wordt een iFrame gezet.
Dit ga ik wel moeten aanpassen in de structuur form.
Een jpg, gif of png op de backgroundlayer zetten gaat niet. Enkel

26
een kleur of iFrame, maar enkel een kleur blijkt ook niet te werken
op deze settopbox. Je kan jpg's converteren naar iFrames met het
programma TMPGenc.
- Font: Blijkbaar ondersteunt de settopbox maar enkele font groottes.
Moet dit nog verder onderzoeken.

Het testen gaat bijzonder traag aangezien het nogal wat tijd vraagt om het hele
project steeds op de settopbox te zetten.

Het VNC programma op de andere computer gezet zodat deze eenvoudig kan
bestuurd worden.

De test voor de streamEvents zal pas tegen vrijdag worden gedaan aangezien Jeroen
deze week cursus heeft en ik milo nog niet voldoende onder de knie heb om dit
volledig te besturen.

TODO: De size van het tv beeld wordt gedaan met een x,y, breedte en hoogte, dus
kan deze implementeren als een tekstvak in de structuur applicatie.
Dit zou dan de plaats zijn waar het scherm zich bevindt.
TODO: Fonts uitmeten en werkende krijgen zonder foutmelding...MHP specs
daarvoor eens bekijken
TODO: kijken wat beste manier is om een achtergrond op mijn applicatie te zetten.
Ook eens kijken hoe zwaar een kleur is over mijn video signaal.
Eventueel hoef ik dan geen backgroundlayer te gebruiken bij een egaal kleur.

Dinsdag 24 mei
Onderzoek naar de fonts.
Heb in de MHP Specification gelezen dat de volgende fonts zeker ondersteund
worden:
• 36
• 31
• 26
• 24
Na verder onderzoek denk ik dat mijn log eigenlijk geen fout weergeeft. Het
volgende wordt gedisplayed:
PFR: /system/fonts/Tires-o_802.pfr fontsize (Tiresias, 350 glyphs)

Dit is dus geen foutmelding, maar er wordt gewoon in de log van de settopbox gezet
dat de font grootte veranderd is.

Hierna de videoresizing in orde gemaakt. In de structuur moest hier niet meteen iets
veranderd worden en er moest enkel een plugin in de content manager gezet
worden. de Java writer is ook aangepast zodat deze de oude vector methodes
verandert in jdk1.1 compatibele code.

Dan mijn xlet aangepast zodat de video op de goede positie wordt gezet en
geresized. Wanneer er geen videoscherm is wordt de video geresized op punt 0,0 en

27
breedte en hoogte 0. Wanneer er geen background aanwezig is vult de videolayer
het volledige scherm en is er mogelijkheid om een kleur over de video te tekenen
(het is mogelijk om de alpha waarde hiervan in te stellen).

De achtergrond werkt enkel met iFrames en aangezien het heel veel tijd vraagt om
TMPGenc steeds te openen om iFrames te maken van jpg's heb ik dit
geïmplementeerd in mijn code. Wanneer je nu de quiz naar een xlet converteert
wordt automatisch van je achtergrond een iFrame gemaakt, handig nietwaar :)

Je moet er wel voor zorgen dat je image de grootte heeft van je formaat (bv PAL)
omdat het anders niet altijd goed wordt weergegeven op de TV.

Ter informatie: TV's kunnen beter overweg met iFrames en een iFrame op het
scherm tekenen duurt niet zo lang als steeds een jpg op de graphics layer zetten.

Op het einde van de werkdag nog gezien dat er een foutje is bij het plaatsen van de
controls als die over elkaar liggen. Dit zou omgekeerd moeten zijn en heb dit
opgelost door de for lus om te keren, maar hier is blijkbaar nog een probleempje in
geslopen aangezien mijn irt hierop crashte. Nog eventjes oplossen dus...

Woensdag 25 mei
Deze morgen een gloednieuwe quiz getest die alle fasen overloopt. Had een beetje
schrik dat de background layer niet precies zou gepositioneerd worden tov de
geresizede videolayer maar dit is gelukkig wel het geval.

Een bug uit de content applicatie gehaald. Wanneer je de content file in dezelfde
folder als de images bewaarde dan gaf deze een foutmelding. Opgelost door elke
keer te checken of deze image reeds in de folder zit via de exists methode in fileInfo.

Tot de constatatie gekomen dat een iFrame van veel betere kwaliteit is dan een jpg
op de graphics layer.

Implementatie van een nieuwe timer, namelijk het opnemen van de tijd. Hiervoor
een extra property voor het Ronde object gemaakt.

Deze middag gezorgt dat het intro scherm en het eindscherm beter wordt
weergegeven. De HText wordt nu niet over het hele scherm gecentreerd maar enkel
op de getekende achtergrond. Je kan nu als extra parameter meegeven hoe je het
wil aligneren.
0 = links
1 = midden
2 = rechts

Extra modulevariabele inset zorgt voor de randen rondom het scherm die zeker
zonder tekst blijven.

28
Daarna een volledige quiz gemaakt zoals 'één jaar gratis': 3 rondes, elke keer minder
antwoorden en elke keer een andere score en timer eraan gekoppeld.

Enig probleempje dat ik hier nog mee had was de weergave van de PNG. Deze bleek
aan de zijkant vreemde pixels te tonen.
Ook had ik een lijn van slechts 1 pixel op mijn graphics layer en deze was steeds aan
het pinken. De reden hiervan is de interlacing, waardoor een lijn minstens 2 pixels en
zelfs best meer moet zijn.

Ook moet je er voor zorgen dat je images niet te veel kleuren hebben op de graphics
layer want dit wordt niet zo goed weergegeven. Op de backgroundlayer is dit geen
probleem.

TODO:
- nadenken over welke quiz ik wil maken zodat ik hier aan het nodige
bronmateriaal kan geraken.
- Foto's nemen van Milo om te tonen tijdens de presentatie

Aandachtspunt: De grootte van een image op de graphics layer kan voor enorme
vertraging zorgen. Een image groter dan 10kb is zeker niet aan te raden.
Een iFrame mag wel groter zijn omdat deze niet steeds hertekend dient te worden.

Donderdag 26 mei
Deze morgen de mogelijkheid bekeken om mijn images te schalen in de structuur
applicatie. Dit zal echter niet goed lukken omdat de images gewoon op het scherm
worden getekend en ik dus geen gewone labels of dergelijke aan het imageobject
kan zetten.

Jeroen kwam op het idee om een nieuwe trigger te implementeren. Dit gebeurt ook
via events en zorgt ervoor dat de vraag en het antwoord niet zichtbaar zijn. Wanneer
je de vraag zichtbaar wil maken dan wordt dit afgevuurd met een trigger en
hetzelfde geldt voor het antwoord.

Vandaag de comments van de content manager, de platform manager en de xlet


aangemaakt.
Javadoc gegenereert en voor de drie c# applicaties de comment builder van visual
studio.net

Pixel verhouding tov square pixels


- 1,066 voor PAL
- 1,422 voor PAL Widescreen

Deze middag ervoor gezorgd dat alle timers getest werden. Daarna een controle van
de stagebegeleider gehad.

29
Er moeten heel wat wijzigingen gemaakt worden. Heb deze allemaal in een Word
document gezet met de minimum tijd en de maximum tijd die ik ervoor nodig zou
hebben. Morgen controleren we samen en zeggen we wat door zal gaan en wat niet.

TODO: van opname timer een boolean maken.Dit zorgt ervoor dat je bij elk soort
Timer de tijd kan opnemen.

Vrijdag 27 mei
Testen voor streamEvents op Milo. Milo is een simulatie van een TV uitzending. Dit
bevat alles wat je nodig hebt om TV signalen uit te zenden. Erg grote en dure
apparatuur met het geluid van een vliegtuig.

Deze morgen klein stroomprobleempje gehad. Wanneer we Milo wilden opstarten


kwam de hele kamer zonder elektriciteit te zitten. Twee techniekers zijn toen
opgetrommeld en toen bleek dat er teveel stroom werd verbruikt in onze kamer door
alle pc's, tv's en die Milo.

Voorlopig een verlengkabel naar een andere kamer gelegd, maar er wordt een nieuw
circuit aangelegd (waarschijnlijk volgende week).

Mijn computer moest dan verbinding leggen met Milo, maar dat werd een
netwerkprobleem omdat er een switch in de rack zat, maar dan heb ik geen
netwerkverbinding meer met de andere pc. Dus kleine netwerkkaart in laptop
gekoppeld zodat ik op twee netwerken verbinding heb.

Connecteren naar Computer 192.168.1.12


Hierop staat coral MHP die bepaalt welke xlets er draaien en welke events erop zitten
Op 192.168.1.13 staan de logs van de settopboxen.

Er is een probleem met het path van de events. Hopelijk lossen we dit deze middag
op.

Om 12u. naar de repetitie van ‘De kampioenen’ gaan kijken (de 200ste aflevering).
Iets na 13u. terug aan het werk en verder zoeken naar wat het probleem met de
events is.

Nagedacht over de werkwijze van de streamevents en tot de conclusie gekomen dat


er zeker een object moet aangemaakt worden en dat we dit niet kunnen inladen. We
wilden zeker zijn dat onze naamgeving wel klopte en daarom een kleine functie
geschreven die de files in de root directory en de package uitlas.

Daar bleek dan te staan dat het streamevent 'object0002' ipv 'MYEVENT' heette.
Gekeken waar dit ingesteld zou worden in coral MHP en uiteindelijk gevonden in het
tabblad location als je een object toevoegt.

30
Met de volgende opties dan de xlet terug in de carrousel gestopt en doorgestuurd
naar de settopbox. En deze kreeg de events die afgevuurd werden perfect binnen!
De vreugde was groot :)

Applicatie aangepast zodat er naar 3 triggers wordt geluisterd.


1. naam: volgendeVraag: zorgt dat de volgende vraag wordt aangeroepen
2. naam: toonVraag: maakt vraag zichtbaar
3. naam: toonAntwoord: maakt antwoord zichtbaar

TODO: Misschien de applicatie nog aanpassen zodat een event per vraag wordt
getriggerd. Waarom is dit nodig? Indien de settopbox een event zou missen zou de
hele applicatie in de war lopen en als je weet aan welke vraag je zit zou je dit nog
goed kunnen maken.

Daarna een kleine opname gemaakt van mijn quiz. Een tv-kaart aangesloten aan
mijn computer. Deze tv kaart wordt verbonden met een settopbox (die in verbinding
staat met MILO). Alles wat je dan op tv ziet wordt opgenomen op computer. Ideaal
om te demonstreren op school aangezien ik MILO moeilijk kan meenemen (reden:
heel groot, heel zwaar en heel duur).

Daarna nog enkele kleine aanpassingen aan de structuur applicatie gedaan. Het
tekstvak toevoegen heb ik veranderd door het woord container omdat dit meer past
bij de functie. Je kan namelijk aan een container ook een videolaag hangen en dan is
tekstvak niet meer duidelijk.

Dan nog een aanpassing gedaan aan de checklist die de schermen bijhoudt. Het
probleem hierbij was dat als je een scherm selecteert deze niet automatisch de
bijhorende control in de checklist aanduidt. Omgekeerd gebeurde dit ook niet als je
een control in de checklist aanduidt dan werd deze niet geselecteerd, maar meteen
invisible of visible gezet.
Heb er nu voor gezorgd dat wanneer je op een item in de checklist klikt deze
geselecteerd wordt en wanneer je het aan of afvinkt het visible of invisible wordt.
TODO: Moet nog zorgen dat wanneer je de image selecteert het checklistitem ook
geselecteerd wordt. Anders zit je namelijk met 'invalid data'.

Heb screenshots genomen van alle stappen die je in MILO moet doen zodat dit als
referentie kan gebruikt worden.

31
9. Appendix UML Schema’s en opbouw applicaties

9.1 Structuur Applicatie

UML Schema

Opbouw

32
9.2 Content

UML Schema

Opbouw

33
9.3 Platform Convertor

Opbouw

9.4 Xlet

Opbouw

34
10. Appendix – MHP Emulators

10.1 XletView

Als je op de PC applicaties voor de settopbox ontwikkelt is het eenvoudiger als je dit


kunt testen op een emulator. XletView is een opensource emulator en dus gratis. Het
nadeel is wel dat deze emulator maar een gedeeltelijke implementatie van MHP
heeft.

Hier zie je een test applicatie die op xletView draait.

35
10.2 IRT
De emulator die ik vooral gebruikt heb is IRT. Deze was aangekocht door de VRT
voor het ontwikkelen van MHP applicaties. Deze ondersteunt de volledige MHP
specificatie. Exacte zekerheid dat dit hetzelfde resultaat geeft als op de settopbox is
niet zeker.
Enkele problemen:
- bevat JDK 1.4 (settopbox JDK 1.1)
- geen stream events ondersteuning
- geen iFrame ondersteuning

Index scherm met alle applicaties Quiz Applicatie

Configuratiescherm waar je de caroussel, naam en


id meegeeft van je applicatie.

36
11. Appendix – MILO StreamEvents

11.1. Intro
Milo bestaat uit 2 racks vol met Televisie apparatuur. Dit is eigenlijk een soort
uitzendketen van een digitaal signaal dat via een caroussel data doorstuurt naar de
settopbox. Ik moest gebruik maken van een caroussel omdat ik met events moest
werken.
Je moest vanuit de studio kunnen zeggen wanneer een timer moest stoppen met
lopen, wanneer er een vraag moest getoond worden enz. Dit was niet mogelijk om
op een stand alone settopbox uit te proberen dus moest ik hiervoor op Milo werken.
De volgende stappen leggen de procedure uit om een xlet te publiceren en events
aan te maken.

11.2. Aanmaken Applicatie

Opstarten van het programma Coral MHP. Druk hier op het toverstafje en je kunt de
naam van je applicate, de directory van je xlet en de startup klasse aanduiden.

37
11.3 . Toevoegen van Event Object

Ga naar het Object menu en klik daar op ‘Add’. Wees er zeker van dat je rechts de
‘Gateway Caroussel’ hebt aangeduid

11.4 Event Object name aanpassen

Op het tabblad location vul je bij object name de naam van het event in die je xlet
inlaadt.

38
11.5 Aanmaken van een stream Event

Selecteer Stream Event en druk op create

11.6 Do it now Event

Selecteer het tabblad ‘Do-It-Now Event’ en voeg zoveel events toe als je wil
gebruiken. Wees er wel zeker van dat je id uniek is.

39
11.7 Events toevoegen aan de applicatie

Voeg nu je events toe rechts onderaan. Voor elk id dien je ook een event name
meegeven. Deze zal je kunnen uitlezen in je applicatie.

11.8 Controle van de Stream Events

Je applicatie is nu automatisch gestart en in de caroussel meegestuurd. Controleer of


je event goed is toegevoegd.

40
11.9 Do-It Now Events afvuren

Dubbelklik op je event dat je wil afvuren. Zorg dat ‘start now’ is aangeduid en druk
op ok. Het event wordt nu afgevuurd en ontvangen door de settopboxen.

11.10 Controle in de settopbox logs

In de logs van je settopbox kan je zien dat het event ontvangen is.

41
12. Appendix – Planning laatste 2 weken

Onderwerp Minimum tijd Maximum tijd


Rechts klik menu in het scherm om items te 2 uur 6 uur
centreren, …
Apps die moeten worden aangepast:
Structuur Manager
Deel van de content applicatie naar de structuur 1 dag (8u) 2 dagen (16u)
applicatie verschuiven zodat het mogelijk is de specials
(vraagstelling, thema, …) reeds in het schermen
tabblad van de structuur applicatie toe te voegen.
Apps die moeten worden aangepast:
Structuur Manager
Content Manager
In de structuur Manager zorgen dat je door het 2 uur Halve dag (4u)
aanduiden van de control de control ook selecteert. Het
zichtbaar maken gebeurt door het aanvinken
Apps die moeten worden aangepast:
Structuur Manager
Zorgen voor het resizen van controls op het scherm via 1 dag (8u) 3 dagen? (24u)
slepen
Apps die moeten worden aangepast:
Structuur Manager
De mogelijkheid om tijd op te nemen niet bij de timers 2 uur 5 uur
zetten, maar als boolean bij de ronde
Apps die moeten worden aangepast:
Structuur Manager
Platform Manager
Xlet
Meerdere schermen mogelijk maken zodat elke ronde 3 dagen (24u) 6 dagen (48u)
een eigen layout heeft
Apps die moeten worden aangepast:
Structuur Manager
Content Manager
Platform Manager
Xlet
Tekstvak veranderen door Container 5 minuten 5 minuten
Apps die moeten worden aangepast:
Structuur Manager
Platform Manager integreren in de Content Manager 2 uur Halve dag (4u)
zodat het meteen mogelijk is om te exporteren naar
een bepaald platform.
Apps die moeten worden aangepast:
Content Manager
Platform Manager
Beeld en audio als special in een container zetten Halve dag (4u) 1dag (8u)
Apps die moeten worden aangepast:
Content Manager
Xlet
Stream Events doen werken 1 dag (8u) 2 dagen? (16u)
Apps die moeten worden aangepast:
Xlet
Milo
Min: 60u Max: 127u

42
13. Appendix – Analyse

13.1 Algemeen

Er is een nieuwe verandering op til in de televisiewereld, namelijk de interactieve


digitale televisie (iDTV). Deze nieuwe technologie laat interactie toe tussen de
gebruiker en de TV-zenders. Op deze manier wordt het leuker voor de gebruiker,
aangezien hij meer beschikbare informatie en controle krijgt. Hij kan ook nog eens
kiezen waar en wanneer hij wat wil zien. Daarbij kan hij zelf eenvoudig deelnemen
aan wedstrijden, een quiz, televoting, …

Het enige wat je er voor nodig hebt is een settopbox.


Op de site www.broadbandbananas.com kan je enkele filmpjes zien die de
mogelijkheden van iDTV laat zien.

13.2 Probleem

Omdat iDTV ons de mogelijkheid geeft om een interactieve quiz te maken, willen we
dit ook doen, maar hier hebben we steeds een programmeur voor nodig. We zouden
graag hebben dat ook niet-programmeurs een quiz kunnen maken.
Het is dus de bedoeling dat er op een eenvoudige en snelle manier een interactieve
quiz gemaakt kan worden door 2 personen. De eerste persoon staat in voor de
algemene opmaak van de quiz. De andere persoon verzorgt de inhoud. Deze
personen werken niet samen en mogen elkaars werk niet beïnvloeden.

13.3 Oplossing

Er worden twee applicaties gemaakt. Het ene zorgt voor de algemene opmaak, het
andere voor de data die wordt meegegeven. Het resultaat bevat de opmaak en data
van de eigenlijke quiz. Met deze informatie kan de quiz op verschillende platformen
gecreëerd worden. Het uiteindelijke resultaat hoeft dus niet alleen voor iDTV te zijn,
maar kan ook bekeken worden door bijvoorbeeld een browser.
De reden van de twee applicaties is simpelweg omdat de ene persoon het werk van
de andere persoon dan niet beïnvloedt.
De twee applicaties zijn eenvoudig te bedienen waardoor er geen
programmeerkennis nodig is.

Voorbeeld:
Piet en Jan werken beide voor de VRT. Er is een quiz over de slimste mens ter
wereld die gemaakt moet worden voor iDTV, zodat de gebruiker thuis zelf kan
meedoen aan de quiz.

43
Omdat het niet eenvoudig is om steeds vanaf het prille begin een volledige quiz te
ontwerpen maken ze gebruik van deze toepassing die ervoor zorgt dat een quiz
gemaakt wordt met enkele vlugge ingrepen.
Piet zorgt voor de lay-out, het aantal ronden, … zodat het algemene idee van de quiz
gemaakt is.
Nu krijgt Jan de opdracht om voort te werken op de structuur die Piet reeds gemaakt
heeft om daar de vragen en antwoorden aan toe te voegen.

13.4 Overzicht

Algemene iDTV
structuur

Quiz Browser

Data

Algemene structuur
Dit is het begin van de ontwerpfase. Dit werk kan herbruikt worden voor meerdere
afleveringen. De algemene structuur bevat vele onderwerpen zoals hoeveel rondes
zijn er, hoeveel vragen per ronde, is er een introscherm, …

Data
De data applicatie steunt op de algemene structuur. Telkens men een andere
‘algemene structuur’ gebruikt zal deze applicatie ook anders zijn. Hier wordt de quiz
aangevuld met tekst.

Quiz
De kern van de zaak. Wanneer de 2 voorgaande applicaties doorlopen zijn is de quiz
structuur af. Dit kan gebruikt worden voor de verschillende platformen.

iDTV, Browser,…
Hier wordt ervoor gezorgd dat men de quiz converteert naar het juiste platform.

44
13.5 Overzicht Talen

Applicaties voor algemene structuur en data

Het zou interessant zijn om deze programma’s in C# te schrijven. Deze taal heeft
een goede ondersteuning voor xml en dit is dan ook de taal waar het resultaat van
deze programma’s naartoe kan worden geschreven.

De quiz

Dit document is de basis van de quiz. Het meest voor de hand liggende is xml. Deze
taal is door veel programmeurs gekend en wanneer er verdere uitbreidingen worden
geschreven is de leercurve kleiner.

iDTV

Deze keuze is snel gemaakt. MHP/Java is de enige taal die de settopbox ondersteunt.

13.6 Analyse

13.6.1 Wat bevat een quiz nu eigenlijk?

Als we ons een algemeen beeld vormen van een quiz denken we meteen aan
verschillende vragenrondes. Deze rondes bevatten een aantal vragen en deze vragen
hebben dan weer een paar antwoorden. Elke vraag bevat één of meerdere correcte
antwoorden, die dan punten oplevert.
Een quiz heeft natuurlijk steeds een naam. Denk maar aan ‘De thuisploeg’ of
‘Blokken’.

13.6.2 Dieper ingaan op een quiz

Een quiz houdt meer in dan een paar rondes en vragen. Hoe werkt het
puntensysteem? Hoe kun je stemmen? Op deze punten gaan we nu iets dieper
ingaan.

De score

Als je al eens meegespeeld hebt met ‘de thuisploeg’ dan weet je dat je per vraag met
een correct antwoord één punt verdient. Wanneer de spelers thuis niet meer kunnen
meespelen zijn er soms twee correcte antwoorden. De score wordt dan per correct

45
antwoord berekend. Maar dit is niet in alle quizzen zo. Het kan goed zijn dat je alle
correcte antwoorden moet geven om slechts één punt te verdienen. Het kan zelfs
zijn dat je anders punten verliest!

Een score is dus heel verschillend van quiz tot quiz. Een moeilijke vraag kan meer
punten opleveren dan een makkelijke vraag. Bij sommige quizzen kan je ook meer
punten krijgen als je vlugger het correcte antwoord raadt.

Het hoeven daarom niet altijd punten te zijn zoals in Blokken, maar het is ook
mogelijk om met geld te werken zoals in ‘De Pappenheimers’.

Wanneer is zo een score precies zichtbaar? Zie je de punten steeds op je scherm of


enkel wanneer een ronde voltooid is. Of misschien wil je dat ze enkel op het einde
van de quiz zichtbaar zijn.

De Timer

Omdat een quiz niet eeuwig kan blijven duren wordt er tijd gezet op een vraag. In
die tijd mag je een antwoord geven op de vraag. Blijf je binnen die tijd dan is het
antwoord geldig, anders niet. Het aantal seconden dat je krijgt om te antwoorden
hangt steeds af van quiz tot quiz. Het is zelfs mogelijk dat de timer over de hele quiz
heen loopt. Als je kijkt naar ‘De slimste mens’ dan zie je dat het puntensysteem
eigenlijk samenloopt met de timer.

Hoe wordt een timer precies in beeld gebracht? In de ene quiz wordt deze helemaal
niet getoond (bijvoorbeeld in Blokken). In een andere quiz is dit een schuifbalk die
steeds kleiner wordt, soms is het zelf een klein klokje. De werking is hier steeds
hetzelfde, enkel het uitzicht is anders.

Een timer kan ook variabel zijn afhankelijk van de persoon die de quiz oplost. Hoe
beter die persoon iets gedaan heeft (bv een spel goed gespeeld of een aantal vragen
na elkaar correct opgelost), hoe meer tijd hij krijgt voor de finale. Hier wordt de
timer dus opgebouwd afhankelijk van bepaalde factoren. Dit kan ook omgekeerd
gebeuren. Je krijgt een bepaald aantal tijd, maar deze wordt afgebouwd als je
vragen niet kan oplossen.

Uiteindelijk is er nog het systeem van triggers. Een voorbeeldje: Een persoon krijgt 1
minuut om zo veel mogelijk vragen op te lossen. Wanneer de ene vraag opgelost is
krijgt hij meteen de andere. Je kan hier dus al zien dat als je deze quiz thuis
meespeelt, je enkel mag antwoorden voordat de persoon op televisie het antwoord
heeft gezegd. Er wordt dus een signaal gegeven vanuit de tv-studio die het einde
van de antwoordtijd activeert.
Een kleine illustratie vindt u op de volgende pagina.

46
Werking van Triggers
Thuisspeler

Speler op
TV Geeft antwoord
stopt de antwoordtijd
via trigger

TV Studio

Vragen

Een vraag hoeft niet steeds enkel tekst te zijn, maar kan ook samen met een
tekening of foto zijn. Het is ook mogelijk dat er geen vraag is en er enkel
antwoorden te zien zijn. Bij deze situatie vertelt de quizmaster de vraag en hoeft er
niets te zien zijn op het scherm buiten de antwoordmogelijkheden.

Er kunnen ook tips meegegeven worden per vraag. Na een bepaalde tijd komt er een
tip tevoorschijn. Hoe meer tips hoe makkelijker de vraag wordt, maar hoe minder
punten je krijgt. Het aantal tips loopt dan samen met de timer. Hoe langer je timer
loopt, hoe minder punten.

Een andere mogelijkheid is het uitvallen van personen. Wanneer je niet bij de top
behoort mag je niet meer verder spelen. Er valt dus steeds iemand uit waarvoor de
quiz niet meer beschikbaar is.

Eigenschappen voor een interactieve quiz

Omdat we hier steeds met een interactieve quiz te maken hebben mogen we enkele
punten die specifiek zijn voor een interactieve quiz niet uit het oog verliezen.
Is er een intro scherm aanwezig? Zal de gebruiker voordat de quiz begint een kleine
uitleg krijgen over hoe het systeem precies in elkaar zit?

Wat ook specifiek is bij een interactieve quiz is een scherm dat steeds aanwezig is.
Zo weet de gebruiker dat de applicatie werkt, ook al is hij op dat moment geen vraag
aan het oplossen. Wat je hier ook kan toevoegen is het wachtsysteem. Hoe laat men
de gebruiker weten dat men aan het wachten is op een volgende vraag? Bij vele
quizzen staat er op het scherm ‘de volgende vraag komt er zo aan’, maar soms staat
er ook helemaal niets.

De werking van het antwoorden is behoorlijk uitgebreid. De mogelijkheden om te


antwoorden hangen af van de quiz. In ‘de thuisploeg’ worden de 4 kleurknoppen
gebruikt, maar het kan evengoed zijn dat er cijfers of letters gebruikt worden
wanneer er meer dan 4 antwoorden voor een vraag zijn. De antwoorden kunnen
bevestigd worden door op de ‘ok’ knop te duwen of het kan ook mogelijk zijn om te

47
wachten tot de timer afgelopen is en de laatste keuze dan als definitief antwoord te
gebruiken. Een antwoord hoeft ook niet enkel tekst te zijn. iDTV biedt ons de
mogelijkheid om met het keyboard of de afstandsbediening zelf een antwoord in te
vullen.

Een belangrijk onderdeel bij een interactieve quiz is de manier waarop deze de score
verwerkt. Kan de quiz lokaal gezet worden of is er verbinding nodig met de server
om de score te berekenen. Een groot verschil is dat de lokale versie gehacked kan
worden, zodat je er niet zeker van kan zijn dat de score wel eerlijk is.

Een interactieve quiz heeft ook steeds een scherm waar de vragen opkomen. Hoe dit
eruit ziet hangt van quiz tot quiz af.

Technische details

Waar je op moet letten bij het switchen van computer naar televisie is de non-square
pixels. De pixels op een computer zijn vierkant en op televisie zijn deze rechthoekig.

Een optie om te kiezen tussen de 4:3 en 16:9 aspect ratio is ook belangrijk.

Bij het kiezen van een intro scherm, een wacht scherm en dergelijke is het belangrijk
bij de ontwikkelfase om ook de coördinaten mee te geven waar het precieze scherm
moet komen.

Het is belangrijk om rekening te houden met de verschillende formaten. De


bedoeling is dat iedereen op gelijk welke standaard een quiz kan ontwikkelen. Voor
PAL houdt dit dus in dat er gewerkt wordt in een 720x576 formaat, maar voor NTSC
is dit 720x480. HDTV werkt met 1280x720 of 1920x1080 beeldpunten.

48
13.7 Verwoording van de functionaliteiten

13.7.1 Algemene structuur

Bevat.. Verwoording
Naam van de quiz Bevat de naam waar de quiz herkenbaar mee is.
Achtergrond De algemene Look and Feel van de quiz
- image
- x en y positie
Hoeveel rondes De quiz kan uit verschillende grotere delen bestaan.
Hier bepaalt men hoeveel rondes er zijn
Hoeveel vragen per ronde Je kan kiezen hoeveel vragen er per ronde zijn.
Hoe worden ze gedisplayed
- aantal rijen en kolommen
- x en y positie; breedte
- Input
o Tekstueel:
ƒ Via het keyboard.
o 4 kleuren:
ƒ De 4 kleuren die op het bakje staan.
Hier kan je maximum 4 antwoorden
verwachten.
o Cijfers:
ƒ Dit is ook mogelijk via het bakje, maar
geeft meer mogelijkheden dan de
kleuren
Lokaal of Server De mogelijkheid bestaat om twee soorten quiz te maken.

Lokaal:
Op deze manier speelt de hele quiz zich af op het DTV bakje
van de gebruiker. Er wordt geen connectie met de servers van
VRT gemaakt. Het nadeel is dat men deze manier kan hacken
en zo de quiz kan manipuleren.

Server:
De antwoorden worden over ip naar de server gestuurd. Deze
server berekent dan de score en zorgt ervoor dat deze score
teruggestuurd wordt. Op deze manier is de applicatie een stuk
veiliger, maar ook veel duurder.
Score Zichtbaar:
De score is steeds zichtbaar op het scherm
Soms zichtbaar:
De score wordt enkel getoond als deze verandert.
Niet zichtbaar:
Er wordt enkel op het eind van de quiz een score getoond.

- image
- x en y positie
- lettertype en grootte
Timer Actief:
Er wordt steeds een Timer getriggerd bij de start van de vraag
Non-actief:
De Timer wordt in real time gestopt

49
- slider, klok, teller
- image
Wachten op vraag Is er geen of wel een scherm te zien
- image
- x en y positie
- lettertype en size
Algemeen scherm Welk scherm is er de hele tijd te zien?
Zodat de gebruiker weet dat het systeem werkt.
- image
- x en y positie
Bevestiging Dient er op ‘ok’ gedrukt te worden om een bevestiging van het
antwoord te geven? Anders wordt het antwoord genomen dat
het laatst is gekozen nadat de tijd vestreken is.
- ok knop
- x en y positie

Intro scherm Wel of geen intro scherm beschikbaar.


- image
- x en y positie
Conversie van square naar
rectangular pixels.
Keuze scherm 4:3 of 16:9 ; PAL, NTSC, HDTV
Tip Worden er tips meegegeven?

50
13.8 Analyse – Quizzen

Algemeen

Totaal aantal quizzen 27


Periode 7 maart 2005 – 27 maart 2005
Zenders België:

Duitsland:

Engeland:

Frankrijk:

Nederland:

Kenmerken
Rondes
- 1 of meerdere rondes
- 1 of meerdere vragen per ronde
- Mogelijk een finale

Timer
- Soorten Timers
ƒ Geen specifieke timer
ƒ Steeds hetzelfde aantal seconden
• Aantal seconden begint vanaf het begin van de
vraagstelling
• Aantal seconden begint na de vraagstelling
• Aantal seconden begint wanneer de studio beslist.
ƒ Per ronde een ander aantal seconden
ƒ Algemene timer voor de hele ronde
ƒ 2 timers na een vraagstelling

51
• 1 voor de eerste (vb: publiek of groep medespelers)
• 1 voor de tweede (vb: hoofdquizzer)
ƒ Antwoordtijd opnemen
• Vb: snelste antwoordtijd mag naar volgende ronde.
ƒ Timer is afhankelijk
• Van punten in vorige rondes
• Van tijd die over was in vorige rondes
- Elke ronde kan er een ander soort timer zijn.

Score
- Mogelijkheden
ƒ Elke ronde blijft puntentelling dezelfde
ƒ Elke ronde verandert puntentelling
ƒ Elke vraag verandert puntentelling
ƒ Puntentelling kan afhankelijk zijn van:
• Niets
• Gekregen hints
• Timer
• Medespelers (tegenspelers of afvallers)
• Geluksitem (vb: rad van fortuin)
• Soort vraag (makkelijk, moeilijk, …)
ƒ Indien fout antwoord:
• Negatieve puntentelling.
• Alles blijft gelijk.
• Tegenstanders krijgen bonus als ze het juist hebben
ƒ Punten zijn uiteindelijke seconden voor finale
ƒ Je krijgt een beginbedrag (Maximum bedrag)
• De punten gaan hier naar beneden.
ƒ Score loopt gelijk met de teller. Iedere seconde gaan er punten
af.
ƒ Mogelijkheid om jokers te verdienen bij een bepaalde score in
een ronde.
ƒ Volgende ronde enkel beschikbaar indien je niet het minst
scoort.
ƒ Per ronde begint de score terug opnieuw

Vragen
- Gewone vraag (= puur tekst)
- Gewone vraag met:
ƒ Foto
ƒ Video
ƒ Geluid
- Verschillende categorieën
ƒ Makkelijk
ƒ Moeilijk
ƒ …

52
- Thema dat aan de vraag of de ronde vooraf gaat
- Geen vraag: enkel één of meerdere tips per ronde
- Bij algemene timer worden vragen gesteld tot einde van de timer.

Antwoorden
- Mogelijkheden
ƒ Meerkeuze:
• 2 tot 9 meerkeuze antwoorden.
• Letters (A, B, C, D, …)
• Cijfers (1, 2, 3, 4, …)
• Kleuren (rood, groen, geel, blauw)
ƒ Zelf zeggen
ƒ Schrijven
- Per ronde kan het een andere antwoordmogelijkheid zijn

Lay-out
- Tussenscore van een bepaalde ronde zichtbaar per vraag
- Tussenscore van een bepaalde ronde zichtbaar na die bepaalde ronde
- Totale score is wel of niet zichtbaar
ƒ Tussen de vragen
ƒ Tussen de rondes
ƒ Op het eind van de quiz
ƒ Helemaal niet
- Eerst vraag zichtbaar, na voorlezen komen de antwoorden (meerkeuze)
erop.
- Vraag en meerkeuze antwoorden komen op hetzelfde moment op het
scherm.
- Vraag is wel of niet zichtbaar
- Antwoorden zijn wel of niet zichtbaar
- Juiste antwoord wel of niet zichtbaar na beantwoording
- Vraag en antwoorden zichtbaar onderaan het scherm
- Vraag en antwoorden zichtbaar over het hele scherm
- Timer zichtbaar
ƒ Altijd
ƒ Vanaf een bepaalde tijd
ƒ Tijdens vraag
ƒ Niet

Hints – Jokers – Pasbeurten – Extra


- Hints aanwezig
ƒ 1 of meerdere hints volledig in het begin
ƒ 1 of meerdere hints tijdens de antwoordtijd op geregelde
tijdstippen
ƒ 1 of meerdere hints tijdens de antwoordtijd op zelf bepaalde
tijdstippen

53
ƒ Hints kopen door punten (of geld) af te geven
- Pasbeurten aanwezig
ƒ Onbeperkt passen zonder punten- of tijdsverlies
ƒ Onbeperkt passen met punten- of tijdsverlies
ƒ Beperkt passen zonder punten- of tijdsverlies
ƒ Beperkt passen met punten- of tijdsverlies
- Jokers
ƒ Als een vraag fout is wordt ze toch goedgekeurd
ƒ 1 of meerdere jokers
• Inzetten met punten- of tijdsverlies
• Inzetten zonder punten- of tijdsverlies
- Verdubbelaar
ƒ Totaal score wordt verdubbeld
ƒ Vraagscore wordt verdubbeld
• Indien fout: dubbel van de punten kwijt
• Indien fout: dubbel van de punten niet kwijt
- Punten opzij zetten
ƒ Mogelijkheid om punten opzij te zetten die je niet meer kan
verliezen
ƒ Indien punten opzij gezet:
• Terug van 0 beginnen
- Verandering vraagstelling
ƒ Na een bepaald tijdstip de vraag veranderen
ƒ 0,1 of meerdere keren
- Opbieden van geld waar men die vraag voor speelt
ƒ Punten worden hier dynamisch bepaald
ƒ Maximum is hun eigen bedrag.
- 50:50
ƒ Meerkeuze antwoorden verminderen met de helft.
ƒ 1 of meerdere 50:50 hints
- Hulplijn
ƒ Mogelijkheid om antwoord te vragen aan een Persoon
ƒ 1 of meerdere hulplijn hints
- Publiek
ƒ Mogelijkheid om antwoord te vragen aan het publiek
ƒ 1 of meerdere publiek hints

Problemen bij interactiviteit


Wanneer een interactieve quiz gemaakt wordt brengt dit een aantal problemen met
zich mee. Tussen de quizzer thuis en degene op tv zijn namelijk enkele verschillen.

Ik ga het zeggen Walter…:

Een quizmaster gaat een thuisgebruiker niet kunnen horen. In vele quizzen
dient het antwoord gezegd te worden. Welke mogelijkheden biedt de iDTV ons
dan wel?

54
o het is mogelijk om het antwoord te typen.
ƒ Een keyboard is bij een settopbox bijgeleverd (+)
ƒ Meestal moet men binnen de tijd een antwoord geven. Het
antwoord typen duurt langer dan het uitspreken
(-)
ƒ Niet iedereen heeft steeds het keyboard bij de hand (-)
ƒ Je kan spellingsfouten maken (-)

o Meerkeuze antwoord maken van het antwoord


ƒ Geen keyboard nodig (+)
ƒ De vraag wordt makkelijker (-)(+)
ƒ De quiz is niet exact hetzelfde als te zien op tv (-)

o Digitaal keyboard zichtbaar op het scherm waarmee je kunt typen via


de pijltjestoetsen en de ok knop
ƒ Geen keyboard nodig (+)
ƒ Duurt nog langer dan met een keyboard om het antwoord te
geven (-)
ƒ Neemt een deel van het scherm weg (-)
ƒ Spellingsfouten zijn mogelijk (-)

Ik gok op C…:

Wanneer je een quiz met meerkeuze vragen te zien krijgt gebeurt het vaak
dat je kunt kiezen tussen A, B, C, … Maar wat als dat keyboard nu enkele
meters van onze luie zetel ligt?

o De kleuren op de afstandsbediening gebruiken


ƒ Eenvoudig om een kleur te kiezen (+)
ƒ Je bent beperkt tot 4 kleuren en dus ook 4 antwoorden. (-)

o De cijfers op de afstandsbediening gebruiken


ƒ Geen beperking tot 4, maar tot 10 antwoorden
(+)
ƒ Cijfers moeilijker te vinden dan kleuren (-)

o Toch de letters behouden


ƒ Je beperking voor meerkeuze antwoorden gaan tot 26
(+)
ƒ Je kan werken met het GSM systeem op afstandsbediening (+)
ƒ Keyboard nodig (-)
ƒ Lastig om letters te zoeken op het keyboard (-)

Ik zie tweemaal de antwoorden:

55
Het gebeurt vaak dat wanneer je naar een niet-interactieve quiz kijkt toch de
meerkeuze antwoorden te zien krijgt. Je ziet dan wat de quizzer aanduidt als
correct antwoord en of dit antwoord goed is. Als je zelf meedoet met de quiz
is dit niet interessant om te zien en heb je liever dat je je eigen antwoorden
ziet. Hoe lossen we dit dan op?

o We zorgen voor een laag boven de tv-laag


ƒ Je ziet je eigen input (+)
ƒ Rekening houden met 4:3 en 16:9 (-)
ƒ Zorgen dat dit goed gepositioneerd is (-)

o We zorgen dat de TV geen antwoorden meer laat zien


ƒ Personen die op dat moment geen iDTV gebruiken zien niets
(-)
ƒ Werking tussen tv en interactieve tv zijn niet gescheiden (-)

Ik heb het goede antwoord al op tv gehoord:

Wanneer een quizzer zoveel mogelijk vragen in een bepaalde tijd moet
oplossen kan dit soms een probleem zijn. Aangezien jij op de interactieve quiz
dezelfde vragen krijgt als de quizzer op tv is het mogelijk dat het antwoord
heel erg vlug komt. Hoe lossen we dit op?

o We houden geen rekening met de quizzer op tv en lossen de vragen op


eigen tempo op
ƒ Je kan op je eigen tempo de vragen oplossen (+)
ƒ Het is mogelijk dat je de antwoorden reeds op voorhand hoort
(-)

o We houden rekening met de quizzer op tv via triggering


ƒ Wanneer je het antwoord hoort kan je zelf niet meer
antwoorden (+)
ƒ Je hebt zelf geen controle over de tijdslimiet (-)

Publiek en hulplijnen:

Bij verscheidene quizzen kun je de hulp van het publiek oproepen of iemand
die je kent bellen. Hoe doen we dit bij interactieve televisie?

o Publiek en hulplijn hints niet beschikbaar maken


ƒ Er kunnen al mensen naast jou zitten die je kunnen helpen bij
het oplossen van de vragen. Je kan tenslotte zoveel mensen
bellen die je wilt tijdens de vragen. (+)

56
ƒ Je kunt enkel profiteren van de hulplijnen als de quizzer op tv
die opvraagt. (-)(+)
ƒ Het unieke van die quiz is niet aanwezig (-)

o Publiek en hulplijn simuleren door een computer


ƒ De features van de quiz blijven aanwezig (+)
ƒ Niet realistisch (-)

En wat kunnen wij winnen:

Wanneer een quiz wordt gespeeld is er steeds een winnaar. Die winnaar krijgt
meestal nog een prijs ook wanneer hij goed gespeeld heeft. Krijgen wij thuis
ook zoiets als we goed spelen?

o geen speciale prijs. Enkel je score wordt getoond


ƒ goedkoop, kan offline werken (+)
ƒ enthousiasme om te spelen is minder (-)

o een top 10 score. De beste spelers worden getoond


ƒ enthousiasme ligt hoger. Iedereen wil in de top-10 komen (+)
ƒ Er dient een connectie te zijn naar server die score bijhoudt.(-)

o Een echte prijs voor de beste speler


ƒ Enthousiasme is groot wanneer er iets te winnen valt (+)
ƒ Bij een quiz heb je maximum 20 spelers, bij een interactieve quiz
heb je vele duizenden deelnemers. De kans dat er heel wat
winnaars zijn is dus groot. (-)
ƒ Er dient een connectie te zijn die score doorstuurt (-)

Ik speel beter dan de quizzer op tv:

Wat gebeurt er als je het beter doet als de tv quizzer en dat de quiz zo in
elkaar zit dat de quiz afgelopen is wanneer hij een fout antwoord heeft
gegeven?

o De quiz stopt ook


ƒ De quiz blijft gelijk met de tv uitzending (+)
ƒ Je moet stoppen, ook al ben je nog bezig (-)
ƒ Geeft geen gevoel van voldoening (-)

o Je doet verder
ƒ Je score hangt af van je kennis en niet van wat er op tv gebeurt
(+)
ƒ Je stopt als je klaar bent (+)

57
ƒ Het tv programma kan al afgelopen zijn wat er voor zorgt dat je
niet meer verder kan spelen (-)

o Je doet de volgende keer dat het programma op tv is verder


ƒ De score blijft bewaard (+)
ƒ Je kan naar de volgende programma’s kijken (+)
ƒ De quiz blijft gelijk met de uitzending (+)
ƒ Je hebt geen eindscore op het einde van de quiz. (-)

58
10 voor Taal 1 jaar gratis 1 fach Super! A question of sport Blokken Das Quiz De kortste quiz De Tabel van Mendelejev De Thuisploeg
5 rondes en een finale 3 rondes en een finale 3 rondes en een finale 7 rondes 3 rondes en een finale 1 ronde 1 ronde 5 rondes en een finale 4 rondes en een finale

Rondes

aantal seconden afhankelijk per 8 seconden voor achterban (enkel 5 seconden na vraag Geen specifieke Timer. aantal seconden afhankelijk per Geen specifieke Timer. Na vraagstelling krijgt men 5 1e ronde: 5 sec na vraagstelling na vraagstelling krijgt men 7
ronde. vraag zichtbaar) ronde. seconden. 2e ronde: 5 sec na vraagstelling seconden.
5 seconden voor antwoord (ook 3e ronde: 3 minuten over hele ronde. Dit ook bij de finale
Finale: algemene timer voor hele antwoorden zichtbaar) Finale: algemene timer voor hele 4e ronde: geen specifieke Timer
ronde (60 seconden) ronde (120 seconden) 5e ronde: 30 sec per vraag
Finale: Geen specifieke Timer. Finale: geen specifieke Timer
Timer

per ronde afhankelijk. afhankelijk van het aantal personen per ronde afhankelijk per ronde afhankelijk. per ronde en per vraag afhankelijk. Per correct antwoord krijg je een Quizzer moet ervoor zorgen dat hij 1 punt per correct antwoord. 1 punt per correct antwoord, indien
Ook afhankelijk van aantal hints dat dat in het vak van de goede Soms 2 punten per ronde. Indien fout Je krijgt punten per correct antwoord bepaalde geldprijs die steeds groter niet het minst aantal correcte De punten worden samengeteld per fout geen punt.
je gekregen hebt. antwoorden staat. dan bonus voor de tegenstrevers als + een aantal blokjes waarmee je tetris wordt. Hoe meer correcte antwoorden antwoorden heeft. ploeg. Degene met de meeste punten gaat
Komt erop neer dat je steeds punten ze het correct antwoorden. kan spelen. hoe groter de geldprijs Indien dit zo is krijgt hij geld en gaat door.
krijgt. Degene met het meest aantal Per lijn verdien je extra punten hij door. In de finale hangt het aantal punten
punten gaat naar de finale. Finale: afhankelijk van het soort Soms 1 punt per ronde indien juist per vraag af.
Score vraag. Indien fout -1 punt. in 2e ronde: mogelijkheid om zelf Quizmaster moet ervoor zorgen dat
Finale: per vraag 10 punten + aantal aantal punten aan een vraag te hij 3 goeie vragen stelt (= quizzers
seconden over * 10 koppelen. antwoorden niet alledrie hetzelfde)

woord of zin gewone vraag. gewone vraag. gewone vraag. gewone vraag. gewone vraag. Maximum 6 gewone vragen. gewone vraag met eventueel video, Gewone vraag met eventueel video,
per ronde is er steeds een Er kan foto,video- of audiofragment Er kan foto, video- of audiofragment Er kan een foto, video- of foto of audio. foto of audio.
hoofdvraag. Vb: 'omschrijf cryptisch?' Finale: makkelijk, tussenin en moeilijk aan vooraf gaan aan vooraf gaan. audiofragment aan vooraf gaan Maximum 12 vragen. Tot 300.000
euro. Een bepaalde ronde heeft steeds
Voor een vraag kan het zijn dat je Voor een vraag gaat er een thema of vragen over hetzelfde thema. Elke
moet kiezen voor een bepaald thema. tip aan vooraf. Je kan hier dan ronde heeft evenveel vragen.
Vragen beslissen of je wil antwoorden en dan
wordt de werkelijke vraag gesteld.

1e ronde: meerkeuze 1e ronde: meerkeuze (4) meerkeuze antwoorden zelf zeggen. Per vraag afhankelijk. meerkeuze antwoord (4) zelf schrijven meerkeuze antwoord (3) meerkeuze antwoord (4)
2e ronde: zelf typen 2e ronde: meerkeuze (3) 5e ronde: meerkeuze Soms meerkeuze 1e persoon antwoord. 2e persoon zelf zeggen Beantwoorden van de vragen
3e ronde: selecteren uit vraag 3e ronde: meerkeuze (2) Soms zelf zeggen bevestigd of geeft veto. Indien veto gebeurd via de kleurknoppen van je
4e ronde: zelf typen telt de score niet. Indien bevestiging afstandsbediening.
5e ronde: meerkeuze in de finale: zelf zeggen telt score wel. In de laatste ronde kan er meer dan 1
finale: meerkeuze Keuze van antwoorden via letters correct antwoord zijn.
Antwoorden (A,B,C,D)

Tussenscore per vraag zichtbaar. Eerst vraag zichtbaar tot timer van vraag en antwoorden zichtbaar Vraag niet zichtbaar. Vragen en eventueel meerkeuze niet Score enkel zichtbaar op einde van Vraag zichtbaar onderaan het Score zichtbaar tussen de rondes Score krijg je niet te zien.
Eindscore tussen de rondes achterban is afgelopen. Dan Score tussen de ronden zichtbaar Foto of videofragment wel zichtbaar zichtbaar op het scherm. vraag. scherm. Wanneer tijd verstreken is door. Vraag en antwoorden zichtbaar Onderaan je scherm zie je de vraag
zichtbaar. antwoorden ook zichtbaar voor de vraag. Score steeds zichtbaar. Aantal veto's is dan ook zichtbaar. zie je de antwoorden onder de vraag. onderaan het scherm. en de antwoorden.
Vragen en antwoorden onderaan het Het juiste antwoord is zichtbaar nadat Het juiste antwoord wordt verteld Vraag en antwoorden zichtbaar Het juiste antwoord wordt gezegd Het juiste antwoord is zichtbaar nadat
scherm de vraag is beantwoord. Score zichtbaar na een vraag. door de quizmaster onderaan het scherm door de quizmaster de tijd op is
Het juiste antwoord is zichtbaar nadat
Lay-out Aantal punten is per ronde zichtbaar de tijd op is
op het hele scherm

Hints aanwezig in bepaalde rondes. Je hoeft enkel de vraag te geen tips geen tips. Een hint wordt voor de vraag Er kan een veto gebruikt worden. Geen tips, geen passen, geen Hint: in de finale krijg je twee letters geen tips of pasbeurten.
Totale antwoordtijd: 21 seconden. beantwoorden als je bij de 3 laatste gegeven. Hierdoor verlies je niet als je verkeerd extra's. die in de zin of het woord voorkomen,
Indien 2 hints: van de score zit. bent. waaronder al zeker de beginletter. Dit Je hebt teletekst nodig.
hint 1: op 7 seconden Wanneer je daar niet bij zit speel je In finale kan je passen, dan wordt krijg je in het begin van de vraag
hint 2: op 14 seconden mee achteraan het spel. meteen nieuwe vraag gegeven Extra: Reclame in het scherm tijdens reeds.
Tijdens finale komen er hints (letters denktijd.
Tips - Pas - Extra die het woord vormen) tevoorschijn
als je goed antwoord.
Een tegen 100 Jet Set Mastermind Nevermind the Buzzcocks Per seconde wijzer Popquiz a gogo Puzzeltijd Questions pour un champion Rad van Fortuin
1 ronde 3 rondes en finale 8 rondes 4 rondes 4 rondes per speler. 2 rondes 4 rondes en 1 finale 2 rondes en 1 finale 2 rondes en 1 finale
Er kunnen meerdere spelers per dag
zijn, dus dan beginnen de ronden
terug van het begin.

Rondes

6 seconden voor het publiek 1 minuut per ronde 120 seconden per ronde geen Timer 200 seconden per ronde geen specifieke Timer. 1e en 2e ronde: 10 seconden 1e ronde: 3 seconden om te rondes : 5 seconden om letter te
6 seconden er bij voor de quizzer In de laatste ronde wordt de 3e en 4e ronde: 5 seconden antwoorden kiezen
resterende tijd van de vorige rondes
erbij geteld Finale: over de hele ronde 60 2e ronde: 35 seconden over de hele finale: 10 seconden om het woord te
seconden ronde raden.

Timer finale: bepaald aantal seconden per


vraag + antwoord.

Elke speelbeurt hangt de score af geen score. Wel uitvallen indien je 1 punt voor een correct antwoord 1 punt per correct antwoord Het geld (en dus de score die je afhankelijk van de soort vraag. Rondes: steeds 10 punten voor een Ronde 1: steeds 1 punt voor een Je score hangt af van wat je draait
van het aantal afvallers. een rode kaart hebt. verdient) hangt af van het aantal 1 punt voor makkelijk. correct antwoord. correct antwoord. aan het rad.
Prijs per afvaller = 50.000 / juiste antwoorden. 2 punten voor behoorlijk Ronde 2: punt erbij indien juist, punt Wanneer je een klinker koopt gaat er
overblijvers 3 punten voor moeilijk Finale: per correct antwoord een eraf indien fout. Hoogste score blijft een bedrag van je score af.
De resterende seconden worden 4 punten voor heel moeilijk groter geldbedrag. bewaard. Wanneer een foute medeklinker gaat
Je krijgt ‘aantal afvallers * prijs per opgeteld in de finale. Indien fout ben je alles verloren. er 1 beurt af van je beurten.
Score afvaller’ keer punten. Indien gedrukt: Dubbel van de punten Finale: punten hangen af van de
bij of als fout: dubbel van de punten Timer
Mogelijkheid bestaat om af.
verdubbelaar in te zetten. Dit kan je
maar 1 maal doen.

2 soorten vragen. Moeilijk of gewone vraag. gewone vraag. gewone vraag Voor elke ronde een thema 4 soorten vragen normale vraag, een door elkaar normale vraag. Geen vragen. Enkel een tip naar het
gemakkelijk. Vragen blijven gesteld worden tot 9 vragen. Deze bestaan uit tekst en makkelijk, behoorlijk, moeilijk, heel geschud woord, een aantal woorden woord dat dient geraden te worden.
Je kan zelf kiezen welke vraag je wil timer op is. een tekening of audiofragment. moeilijk
als ze je het thema tonen.
De rondes gaan over een bepaald
thema.
Vragen

meerkeuze antwoord (3) zelf zeggen. zelf zeggen. zelf zeggen of meerkeuze meerkeuze antwoord (9) zelf zeggen. zelf zeggen. Zelf zeggen. Zelf zeggen.
eerst moet het publiek antwoorden. Beantwoorden van de vragen gebeurt Wanneer iemand het weet is de
Dan kan de quizzer antwoorden. hier door het juiste antwoord aan te ronde gedaan.
duiden.
De negen vragen hebben dezelfde Je kan maar één maal het antwoord
antwoordreeks, dus op het eind heb raden. Indien fout eindigt de ronde
Antwoorden je maar 1 mogelijk antwoord meer. hier voor jou.

Vraag en keuzeantwoorden zijn altijd Timer steeds zichtbaar. score steeds zichtbaar. Geen vragen geen vragen of antwoorden zichtbaar. De vragen en antwoorden zijn Vraag niet zichtbaar. Vragen zijn zichtbaar onderaan het vragen zijn niet zichtbaar. Score is score is steeds zichtbaar. Er zijn
zichtbaar. Geen vragen of antwoorden zichtbaar. Enkel soms de video of foto's zichtbaar over het hele scherm. Muziekfragment, audiofragment of scherm. Er zijn geen antwoorden te per ronde, niet in het totaal. Steeds geen vragen
Het juiste antwoord is zichtbaar nadat De voorlopige score (geldbedrag) is foto wel. zien omdat je die zelf moet zeggen. zichtbaar
de tijd op is zichtbaar onderaan het scherm. Score steeds zichtbaar Score wel zichtbaar

Lay-out

Het is mogelijk om een vraag te geen tips geen tips of pasbeurten geen tips Jokers: Deze kunnen na de Verdubbelaar als je afdrukt. Dit Bij bepaalde rondes worden er op geen Tips. 1 tip die reeds te zien is in het begin.
passen. Per pasbeurt gaat er wel antwoorden worden ingezet. verdubbelt de score van de vraag. zekere tijdstippen tips gegeven.
geld af. Je kan maximaal 3 maal Wanneer je dan een fout antwoord Wanneer je dit fout hebt gaan de
passen. hebt telt dit niet mee. dubbele punten van je score

De verdubbelaar kan je ook eenmaal Een joker verdien je wanneer je een


Tips - Pas - Extra inzetten. Dit verdubbelt het aantal vragenreeks helemaal goed hebt.
punten dat je zou winnen. Je begint met 2 jokers.

Wanneer gepast wordt, dan kan je op


het eind van de vragenreeks het
antwoord invullen
Schuif Af That's the Question The weakest link Toeters en Bellen Tout vu Tout lu Twee voor Twaalf
1 ronde 1 ronde en 1 finale 8 rondes en 1 finale 2 rondes en per ronde een finale 3 rondes en een finale 3 rondes

Rondes

het antwoord binnen de 10 seconden ronde: 5 seconden om antwoord te ronde: binnen de 5 seconden Als ze zelf willen beslissen ze dat het geen specifieke Timer om te 1e ronde: 13 minuten
geven geven antwoorden nog 2 minuten te gaan is. antwoorden. 2e ronde: 12 minuten
Om de n aantal minuten wordt de Opbieden is 10 seconden. 3e ronde: 11 minuten
finale: de verdiende score wordt de finale: 60 seconden prijs verhoogt en worden er ook tips
timer over de hele finale heen gegeven. Finale: 3 minuten over de hele ronde steeds 2 minuten voor het zoeken
van het twaalfletter woord.
Timer

Per correct antwoord verdien je 1 De punten zijn eigenlijk seconden Degene die het slechtst speelt Er is geen score, maar enkel een Je hebt een beginbedrag. Dit gaat Score loopt gelijk met Timer.
punt (een trivia blokje) voor in de finale. volgens de medespelers valt eruit. geldbedrag dat steeds omhoog gaat. steeds naar beneden afhankelijk van Je begint met 600 euro en hoe verder
wie het juiste of foute antwoord zegt. je tijd loopt hoe meer geld er van het
Bij een score van 6 (blokjes) heb je Bij een juist antwoord: 1 seconde Finale: bij goed antwoord ga je een bedrag afgaat.
gewonnen. Als je de vraag en antwoord raadt: 5 stapje hoger (meer geld). Finale is geen quiz, maar een
Degene met de meeste punten wint seconden Bij fout antwoord ga je een stapje spelletje waar je gewoon de prijs
Score dus. lager (minder geld). kiest.

normale vraag. normale vraag. normale vraag. een woord dat door elkaar is normale vraag. Gewone vraag met audio, video of
geschud. fotomateriaal

Vragen

meerkeuze antwoord. Soms 2, soms zelf zeggen. Het antwoord moet dan 3 meerkeuze antwoorden en zelf zelf zeggen. meerkeuze (4 antwoorden) zelf zeggen.
3 meerkeuze antwoorden. de vraag en het antwoord zijn. typen Eerste letter van het antwoord wordt
Het is ook mogelijk dat je het zelf keuze via cijfers (1,2,3,4) onthouden
moet typen.
In finale: zelf zeggen

Antwoorden

score is steeds zichtbaar. Vragen niet De vraag is steeds zichtbaar de vraag en de eventuele meerkeuze De vraag staat onderaan het scherm. Score steeds zichtaar. Vragen en de vraag en foto staan onderaan het
onderaan het scherm. antwoorden zijn niet zichtbaar. Ook het geldbedrag staat onderaan antwoord onderaan het scherm scherm. Score is steeds zichtbaar.
Aantal seconden is ook zichtbaar. samen met de resterende tijd (enkel zichtbaar.
Score ook steeds zichtbaar In de finale is de score wel zichtbaar laatste twee minuten).

Lay-out

Extra: Om het punt te verdienen na geen tips of pasbeurten. mogelijk om geld opzij te zetten in de Om de n aantal minuten worden er opbieden van aantal geld dat er Mogelijkheid om een letter te kopen
een correct antwoord dien je door finale. Wanneer je dit doet moet je tips gegeven. De vraag kan ook mogelijk kan afgaan voor de voor een geldbedrag.
een ritser te gaan en een trivia blokje wel terug van helemaal beneden anders gesteld worden dan. werkelijke vraag is gesteld. Je krijgt
mee te nemen. beginnen. enkel een tip over wat de vraag zal
gaan.
Er wordt wel eens een tip gegeven,
Tips - Pas - Extra maar dit hoort niet bij de quiz. Eerder
improvisatie