SCHOOLYARD. Eindverslag Bachelorproject Technische Informatica. IN3405 BSc project Revisie 2

Maat: px
Weergave met pagina beginnen:

Download "SCHOOLYARD. Eindverslag Bachelorproject Technische Informatica. IN3405 BSc project Revisie 2"

Transcriptie

1 SCHOOLYARD Eindverslag Bachelorproject Technische Informatica IN3405 BSc project Revisie 2 Delft, 16 juli 2012 Joeri van der Velden Thomas Breekveldt Opdrachtgever R. E. Kooij, TNO Begeleider R. Bidarra, TU Delft 1

2 VOORWOORD In de laatste fase van de bacheloropleiding moet een student aan de Technische Universiteit Delft een bachelorproject voltooien. Dit project is in de vorm van een opdracht opgegeven door een werkgever, binnen of buiten de universiteit. Het project is bedoeld om de studenten ervaring te geven met zelfstandig het hele software ontwikkelingstraject door te lopen. Dit eindverslag is bedoeld voor het Schoolyard project wat uitgevoerd is in opdracht van het TNO. Onze opdrachtgever is de heer R. E. Kooij. Wij willen hem hartelijk bedanken voor de kans om aan dit project te werken, en het enthousiasme waarmee hij onze vooruitgang heeft gevolgd. Wij willen de heer R. Bidarra, onze begeleider aan het TU, ook hartelijk bedanken voor zijn assistentie. Ten slotte onze dank aan mevr. B. Motjé en B. Kitz, leraressen aan de OBS De Tweemaster basisschool in Capelle aan den IJssel voor hun hulp en betrokkenheid bij het project. 2

3 SAMENVATTING Mobiele technologie is van groot belang in de samenleving van vandaag. Er komen steeds meer applicaties op de markt die ons alledaagse leven verrijken en assisteren. Het onderwijs profiteert hier ook van. De klas krijgt steeds meer met ICT te maken en leerlingen worden getoetst in digitale omgevingen. Serious games spelen hier in een grote rol. Deze games draaien om het trainen en toetsen van de speler, om zo het leerproces te vergemakkelijken en te verbeteren. Het doel van het Schoolyard project is om een educatief spel te maken dat basisschoolleerlingen op het schoolplein kunnen spelen, met behulp van locatiebepaling. Er is veel vrijheid in de invulling van het project en ruimte om met verschillende technieken te experimenteren. Na de oriëntatiefase is besloten om de client applicatie voor Android smartphones te ontwikkelen, ondersteund door een laptop die als server dient en het spelverloop van meerdere clients bijhoudt. Tijdens de ontwikkeling van het eerste prototype bleek dat de GPS te onnauwkeurig is voor locatiebepaling op het schoolplein, en er geen andere praktische alternatieven zijn die je locatie vast stellen aan de hand van draadloze signalen. Om deze redenen kiezen we er voor de camera van een smartphone te gebruiken. Deze kan toegepast worden voor het scannen van QR codes. De speler kan de Schoolyard applicatie gebruiken om QR codes verspreid over het speelveld uit te lezen, waardoor hij aangeeft op een bepaalde locatie te staan. We zijn tevreden met het uiteindelijk ontwikkelde prototype. De laptop die als server dient kan een Wifi hotspot opzetten waarmee alle spelers kunnen verbinden. Als de server het startsignaal geeft start het spel voor alle verbonden spelers. Het ontwikkelde test spel, genaamd Reken Ren, toetst de hoofdrekenvaardigheden van de speler. Het spel start met een start en doel getal. Door QR codes in te scannen worden er operaties uitgevoerd op het start getal. Het doel voor de speler is om vanaf het start getal het doel getal te bereiken. De uitbreidingsmogelijkheden van de applicatie zijn talrijk. Het systeem is modulair, zodat er makkelijk nieuwe spellen voor de applicatie ontworpen kunnen worden. Er kunnen ook nieuwe opdrachten voor een spel vanaf de server verzonden worden zodat het speelveld telkens anders is. Het is zelfs mogelijk compleet andere vormen van locatiebepaling te implementeren in de applicatie zonder veel te hoeven veranderen. 3

4 INHOUDSOPGAVE 1. Inleiding 2. Schoolyard 2.1. Opdrachtomschrijving 2.2. Eisen 2.3. Prototype 2.4. Handleiding 3. Planning 3.1. Oorspronkelijke planning 3.2. Werkelijke planning 4. Onderzoek 4.1. Platform keuze 4.2. Communicatie techniek 4.3. Locatie bepaling 4.4. Gebruikers 4.5. Spel omgeving 5. Ontwerp 5.1. Spel ontwerp 5.2. Shared code 5.3. Server implementatie 5.4. Client implementatie 5.5. Uitbreidingsmogelijkheden 5.6. Evaluatie SIG 6. Conclusie 7. Toekomst 8. Evaluatie 9. Bronnen Appendix A: Opdrachtomschrijving Appendix B: Oriëntatieverslag 1. Inleiding 2. Gebruikers 3. Locatiebepaling 3.1. GPS 3.2. Triangulation 3.3. Scannen 3.4. De Keuze 3.5. Implementatie 4. Netwerk Communicatie Appendix C: Plan van Aanpak Appendix D: Spelconcepten 1. MathRun 2. City Matching 3. Word Builder 4. Timeline 5. City Matching Multiplayer 4

5 1. INLEIDING Mobiele technologie dringt steeds verder door in onze samenleving. De laatste jaren heeft de smartphone grotendeels de standaard mobiele telefoon verdreven uit het straatbeeld. Mensen hebben 24 uur per dag het internet binnen handbereik. Het is nooit makkelijker geweest om je exacte locatie op onze planeet te visualiseren dankzij ondersteunende technologieën zoals de GPS. In ons huidige informatie tijdperk is het niet alleen de hardware die vooruitgang boekt. De software is wat het allemaal samenbind. Er word ons dagelijks ontzettend veel informatie voorgeschoteld. Voor werk, vermaak, of educatie. Serious games, spellen bedoeld ter educatie van de speler, worden steeds breder toegepast. In het begin vooral voor training van bedrijfspersoneel voor scenario s die lastig na te bootsen zijn in de fysieke wereld. Tegenwoordig zit het ook verweven in lesprogramma s van basisscholen tot universiteiten. Ons project draait om het ontwikkelen van een platform waarop zulke serious games gespeeld kunnen worden. Het Schoolyard project is bedoeld om basisschoolleerlingen bewegend te laten leren op het schoolplein, met behulp van locatiebepaling. De keuze hoe dit aan te pakken, zowel op hardware en software gebied, stond volledig open. Naast het concept stond er geen enkele eis vast. Eerst zullen we in hoofdstuk 2 de opdrachtomschrijving bekijken en het concept verder uitdiepen door onze eigen eisen te stellen. Daarna, in hoofdstuk 3, zullen we de planning behandelen die we voor dit project hadden uiteengezet. In hoofdstuk 4 wordt het onderzoek besproken, waarna in hoofdstuk 5 het ontwerp aan bod komt. Vervolgens zullen onze conclusies in hoofdstuk 6 staan. Als laatst bespreken we de toekomst van het project in hoofdstuk 7, met bijhorende aanbevelingen. 5

6 2. SCHOOLYARD 2.1 OPDRACHTOMSCHRIJVING Het doel van de opdracht is als volgt samen te vatten: Het ontwikkelen van een educatieve spelomgeving met behulp van mobiele locatie bepaling voor basisschoolleerlingen op het schoolplein Het Schoolyard project probeert kinderen uit het basisonderwijs bewegend te laten leren en kennis te toetsen. Er zijn momenteel niet veel projecten of systemen te noemen die een vergelijkbaar doel hebben gesteld. Het is dus zeker interessant dit gebied binnen educatieve games te verkennen. De opdrachtgever is Prof. Dr. Ir. R. E. Kooij van TNO. De project begeleider is Dr. Ir. R. Bidarra van de TU Delft. Tijdens het laatste kwartaal van ons project zal de heer Bidarra in het buitenland zijn en kan ons dus niet direct ondersteunen. In plaats daar van sturen we donderdag elke week een rond met een project update. Daarnaast zullen we proberen zo vaak mogelijk met de heer Kooij om tafel te zitten om de voortgang direct te bespreken. De werkplek voor ons project staat niet vast. We kunnen gebruik maken van de practicumzalen aan de Drebbelweg. De heer Bidarra zou nog kijken voor een vaste locatie. De tools benodigd voor het project zijn onze eigen laptops en smartphones (modellen HTC Desire en Google Nexus S). De applicatie wordt ontwikkeld voor Android 2.2+ met behulp van de Android SDK in Eclipse, gebruikmakend van de taal Java (compiler versie 1.6). 2.2 EISEN Het project heeft geen vaste eisen naast het concept, en het feit dat er een werkend prototype ontwikkeld moet worden. Om deze reden stellen wij zelf enkele eisen om het project in goede banen te leiden. Functionele eisen: Er moest sprake zijn van een server client systeem, waarbij een enkele server meerdere clients kan ondersteunen. De server geeft het startsignaal aan de client. De client stuurt zijn spelvoortgang terug naar de server. De client moet op elk moment terug kunnen naar zijn start state en de verbinding met de server verbreken. De client moet input vanuit willekeurige bronnen kunnen verwerken om het spel te beïnvloeden (bijv. GPS, of camera). De server en client moeten user interfaces hebben waarop de spelvoortgang te zien is. Niet-functionele eisen: Er moet sprake zijn van een educatieve spelomgeving dat de speler toetst over zijn kennis van een bepaald vakgebied. De besturing van zowel de server als client moet simpel worden gehouden. De client moet snel informatie van het scherm kunnen aflezen om zo zijn voortgang in het spel te zien. De spellen moeten simpele regels hebben zodat de speler snel snapt wat de bedoeling is, en dus veel in beweging is. De spellen moeten gebruik maken van de dimensies van een doorsnee schoolplein. 6

7 De spellen moeten meerdere spelers ondersteunen en zodoende vermijden dat de spelers elkaar niet fysiek in de weg zitten. Wensen: Handleiding voor eindgebruikers. Systeem om modificaties en opdrachten te maken binnen bestaande spellen. 2.3 PROTOTYPE Het uiteindelijk ontwikkelde prototype kan gespeeld worden met een enkele laptop en meerdere Android smartphones. De laptop dient als een server, de smartphones als client. Om connectie te maken moet de laptop een wifi hotspot opzetten, waarmee de smartphones vervolgens verbinden. De server registreert alle verbonden clients zodra deze verbinding maken en geeft het startsignaal voor een spelsessie. Tijdens de spelsessie stuurt de client updates van zijn voortgang naar het serverprogramma. Door gebrek aan testapparatuur hebben we de limieten van de wifi en connectie niet op kunnen zoeken. Al hebben we wel succesvol connectie kunnen maken tussen een laptop en smartphone op afstanden van ongeveer 20 meter. De server bestaat uit een Java applicatie, gebruikmakend van de ingebouwde GUI library. De clients draaien op het Android OS en vereisen Android 2.2 of hoger. De client applicatie heeft permissie nodig voor het gebruik van de smartphone camera, internetconnectie en het uitlezen van de telefoon status. Er word gebruik gemaakt van de publieke ZXing ( Zebra Crossing ) library [1] voor het uitlezen van QR codes. De client toont bij het opstarten van de applicatie ook een Debug mode, waarbij men zonder connectie met de server het spel kan spelen. Dit was voornamelijk bedoeld om het spel snel te kunnen debuggen zonder daarvoor een server connectie op te moeten zetten. 2.4 HANDLEIDING Dit is een verkorte handleiding om de applicatie in actie te zien. Deze is voornamelijk bedoeld voor ontwikkelaars. Benodigdheden: 1. Laptop met een Windows 7, Java 1.6, actieve wifi hotspot en het SchoolyardWindowsHost programma. Een handleiding voor het opzetten van een wifi hotspot is te vinden in het netwerk hoofdstuk van het oriëntatieverslag (Appendix B). 2. Een Android smartphone met Android versie 2.2 (of hoger), een camera en wifi mogelijkheden. Het word ook aangeraden de Barcode Scanner applicatie van de Android Market (tegenwoordig Play Store ) te installeren omdat de ZXing library in de huidige implementatie niet goed word meegeleverd tijdens het testen van de applicatie. De Barcode Scanner app neemt deze taak vanzelf over omdat deze met dezelfde library werkt. Opzetten spel: 1. Verbind de smartphone met het wifi netwerk dat de laptop aan het broadcasten is. 2. Start het SchoolyardWindowsHost programma op de laptop en druk op de Start/Stop Server knop om de server sessie te starten. 3. Start de SchoolyardClient op de smartphone en druk op Connect. Optioneel: voer een naam in het bovenstaande tekstveld voor makkelijke identificatie op de server. 4. Als het goed is moet de client nu de tekst Waiting for game tonen. De server toont de speler in de lijst. Druk op Start Game om het spel te starten. 7

8 5. De client moet nu het scherm van de MathRun game tonen. De handleiding van dit spel kan gevonden worden in hoofdstuk 5.1. Overige functies en bijzonderheden: 1. De client kan terug naar het start menu door op het rode kruisje rechtsboven in het scherm te drukken. Hierdoor vervalt de speelsessie. 2. De server heeft knoppen voor het accepteren en afwijzen van client connecties, maar deze worden op het moment niet gebruikt. De server accepteert elke connectie poging. 3. De server GUI toont een kolom met alle verbonden gebruikers en hun huidige voortgang. Op het moment is dit opgezet in de context van het MathRun spel. 4. Het IP adres dat de client gebruikt om de server te vinden staat op het moment hardcoded in de NetworkManager class van de SchoolyardClient broncode. Deze moet verwijzen naar het adres van de wifi hotspot die op de laptop is opgezet. 8

9 3. PLANNING In de eerste fase van het project hadden we een Plan van Aanpak (zie Appendix C) opgesteld, welke gebruikt zou worden als richtlijn voor de projectplanning. Het project zou lopen van februari tot juli, verspreid over het hele semester. Gewoonlijk loopt het bachelorproject een enkel kwartaal fulltime, maar in ons geval was het parttime 3 dagen per week. We zullen eerst de voorgenomen planning beschrijven in 3.1, gevolgd door de werkelijke planning in VOORGENOMEN PLANNING Het project zou worden opgesplitst in een oriëntatiefase, ontwerpfase, implementatiefase en testfase. De laatste 3 genoemde fasen zouden sterk verwikkeld zijn omdat het waterfall model, waarbij de oriëntatie-, ontwerp-, implementatie-, en testfasen elkaar sequentieel opvolgen, niet ideaal is voor het ontwikkelen van een spel. In plaats daarvan pasten we iterative development toe, waarbij prototypes en tests elkaar vlug opvolgen. Tijdens de oriëntatiefase, na het opstellen van het Plan van Aanpak document, moesten we onderzoek doen en keuzes maken op het gebied van platform, communicatie techniek, locatie bepaling, spel ontwerpen, spel omgeving en de gebruikers. Deze fase wilden we verspreiden over de maand februari. Hierna zou de ontwerp en implementatie fase van start gaan. Het doel was de eerste werkende prototypes tegen eind maart te hebben, en deze gedurende de maanden daarna verder te ontwikkelen en te testen. Er was gepland 3 speltypes te implementeren. In de eindfase van ons project hoopten we een live test te kunnen doen met een groep kinderen van de basisschool. Het was dus essentieel dat we een speelbaar prototype begin juni hadden. Ten slotte moesten we ons eindrapport en presentatie opbouwen, waarvoor we begin juli in gedachten hadden. 3.2 WERKELIJKE PLANNING De uiteindelijke planning week sterk af van de oorspronkelijke. De oriëntatiefase verliep redelijk als gepland en ging niet verder dan de maand februari. De ontwerpfase verliep echter een stuk minder snel dan gehoopt. Het oorspronkelijke idee om GPS te gebruiken vereiste onderzoek naar de nauwkeurigheid en stabiliteit van de GPS ontvangst van onze huidige smartphones. Hiervoor moesten we een prototype bouwen. Uiteindelijk bleek het gebruik van de GPS niet nauwkeurig genoeg voor het gebruik op het schoolplein, wat betekende dat we weer van voor af aan begonnen met onze code. Tegen die tijd was het halverwege april. Hierna besloten we de applicatie rond de camera en QR codes te bouwen. Het duurde een paar weken voordat hier een werkend prototype van was, maar het probleem schoof nu richting de networking tussen de centrale laptop en smartphones. Rond deze tijd gingen we ook op zoek naar extra test telefoons. Uiteindelijk ging de maand juni snel voorbij. Het duurde tot eind juni voordat de netwerkcode stabiel werkte, geplaagd door hardware en 3rd party software issues. Daarnaast was het ons ook niet gelukt extra test telefoons te krijgen. We moesten ons prototype terugschalen naar een enkel spel, en de live test werd van af gezien. Het doel was nu een goed prototype en eindrapport neer te zetten en de basis te leggen voor een mogelijk vervolgproject. 9

10 4. ONDERZOEK Dit zullen verkorte samenvattingen zijn van het onderzoek beschreven in het oriëntatieverslag in Appendix B. 4.1 PLATFORM KEUZE Voor de platformkeuze hadden we verschillende opties tot onze beschikking. Er was specifieke hardware zoals Siftables die Jorien van Vliet in haar verslag [2] voorstelt, en er waren de 3 grote mobiele platformen die op het moment het grootste deel van de markt in hun hand hebben: de Apple iphone, Windows Phone en Android. Wij hebben voor Android gekozen om een aantal redenen. Ten eerste hadden we Android telefoons tot onze beschikking. Ten tweede is het makkelijk om voor het Android platform te ontwikkelen. Het enige wat je nodig hebt is Eclipse en de Android SDK, beide gratis producten. Door de openheid zit er ook een grote community van ontwikkelaars achter het platform, zodat het makkelijk was om hulpmiddelen en voorbeelden te vinden tijdens de ontwikkeling van de applicatie. Ten slotte zijn Android telefoons uitgerust met een hele reeks sensoren en input mogelijkheden, zoals het touchscreen, GPS, Wifi, Bluetooth, camera s, etc. 4.2 COMMUNICATIE TECHNIEK Een van de punten die ons onderzoek moest uitwijzen was welke communicatie techniek geschikt zou zijn om data tussen de verschillende telefoons uit te wisselen en het spel bij te houden. Omdat we voor het Android platform gekozen hadden waren Wifi en Bluetooth de meest voor de hand liggende opties. Hiervan bleek Wifi het meest aantrekkelijk, omdat Bluetooth een vrij beperkt bereik had en extra handelingen vereiste om verbinding te leggen. Een Wifi verbinding leggen tussen een laptop en een smartphone bleek echter niet voor de hand liggend. In alle Android versies ouder dan de recente 4.0 is het niet mogelijk om een ad-hoc Wifi verbinding aan te leggen, omdat dit softwarematig geblokkeerd is. We moesten de laptop dus als Wifi hotspot laten dienen, vergelijkbaar met hoe een draadloze internetrouter functioneert. Deze feature zat gelukkig in het Windows 7 besturingssysteem ingebouwd. Deze techniek bleek voldoende voor het functioneren van onze applicatie. 4.3 LOCATIE BEPALING Het project begon met het idee de GPS te gebruiken voor locatiebepaling. Echter, na het bouwen van het eerste prototype, bleek al snel dat de GPS van onze test telefoon niet nauwkeurig genoeg is. De nauwkeurigheid was tussen de 10 en 20 meter, wat niet praktisch is voor een schoolplein wat waarschijnlijk maar enkele tientallen meters lang is. We gingen hierbij van uit dat de test telefoon (een HTC Desire) vrij representatief is voor de gemiddelde particuliere GPS. Onze tweede optie was triangulation te gebruiken, een techniek waarbij meerdere zendpunten van een signaal gebruikt worden voor het vaststellen van een relatieve positie ten opzichte van de zendpunten. Dit kan op verschillende manieren: een optie is om de zendmasten voor mobiele telefonie te gebruiken. Dit bleek bij voorbaat al onhandig, volgens alle geraadpleegde bronnen was dit accuraat op honderd of meer meter. Een andere optie was om wifi en Bluetooth zendpunten te gebruiken. Deze methode vereiste echter specifieke hardware en viel dus ook af voor gebruik in het project. We maakten uiteindelijk de keuze om gebruik te maken van de ingebouwde camera die veel smartphones bevatten. Het idee was dat door codes of symbolen verspreid over het schoolplein te plaatsen, de gebruiker deze kan scannen met de camera om zo het signaal te geven dat hij op een bepaalde positie is aangekomen. 10

11 We hebben ervoor gekozen om QR codes hiervoor te gebruiken, omdat we dan een externe library konden toepassen, wat ons ontwikkelingstijd scheelde. 4.4 GEBRUIKERS We hebben ons niet heel erg verdiept in het gebruikersonderzoek. In plaats daarvan konden wij ons baseren op het Schoolyard verslag van Jorien van Vliet [2]. Door de experimentele aard van het project was een diepgaand onderzoek ook niet benodigd: het Schoolyard systeem vervangt geen bestaand systeem, het is bedoeld als een mogelijke aanvulling op het lesprogramma van de basisschool. Echter, er moet wel gezegd worden dat het succes van ICT projecten in de schoolklas sterk samenhangt met de meerwaarde die het biedt [3]. De gebruikersgroep bestaat uit de leraar en zijn klas. Van basisschoolleraren worden geen vergaande ICT vaardigheden vereist, en om deze reden hebben we als doel gesteld de bediening van onze applicatie zo simpel mogelijk te houden. De leerlingen zouden veel in beweging zijn, en dus moest hun bediening nog simpeler. Daarnaast moest informatie snel en goed zichtbaar zijn. 4.5 SPEL OMGEVING De applicatie moet kunnen functioneren in de omgeving van een schoolplein. Schoolpleinen zijn ontworpen voor spelende kinderen, waardoor we ons niet erg druk hoefden te maken over mogelijke fysieke limieten voor het Schoolyard systeem. Echter, spellen moesten wel zo ontworpen worden dat kinderen elkaar niet in de weg zouden zitten tijdens het uitvoeren van de opdrachten die het spel aan hun toewees. Om de reden stelden we oorspronkelijk een limiet van 10 spelers per spelsessie, al hebben we deze grens nooit kunnen testen. 11

12 5. ONTWERP 5.1 SPEL ONTWERP Er waren 5 verschillende spelconcepten gemaakt. Deze zijn te vinden in Appendix D. Het ontwerp dat uiteindelijk in de prototype is opgenomen is MathRun / RekenRen. Aan het begin van het spel worden 2 getallen op het scherm getoond. Het bovenste getal is zijn startcijfer, het onderste getal het doelcijfer. Door op het bovenste cijfer te drukken gaat het spel naar camera modus. Nu moet de gebruiker een QR code inscannen. Bepaalde QR codes zijn verbonden aan bepaalde operaties. Voorbeelden van operaties zijn minus 5, plus 3, maal 2, delen door 3. Door een operatie in te lezen wordt deze uitgevoerd op het huidige cijfer, en veranderd deze naar het resultaat van de operatie. De volgende QR code staat in het huidige prototype voor de operatie plus 5 : Als je huidige cijfer 18 is, en je scant bovenstaande code in, dan veranderd je huidige cijfer in 23. Het doel voor de speler is om in zo weinig mogelijk stappen het huidige cijfer in het doelcijfer om te zetten. Als dit eenmaal gelukt is toont het scherm dat de speler gewonnen heeft, en herstart het spel. Op het moment is het zo dat de server applicatie alle beschikbare operaties doorgeeft in de payload van de GAME_START message. Operaties zijn gebonden aan een code. In het huidige prototype kunnen de volgende operaties gevonden worden in de GameManager class in de SchoolyardWindowsHost broncode: fieldops.put("op1", (new Operation(5, Operator.ADD)).toString()); fieldops.put("op2", (new Operation(3, Operator.SUBTRACT)).toString()); fieldops.put("op3", (new Operation(2, Operator.MULTIPLY)).toString()); fieldops.put("op4", (new Operation(3, Operator.DIVIDE)).toString()); fieldops.put("op5", (new Operation(7, Operator.ADD)).toString()); fieldops.put("op6", (new Operation(6, Operator.MULTIPLY)).toString()); fieldops.put("op7", (new Operation(5, Operator.DIVIDE)).toString()); fieldops.put("op8", (new Operation(8, Operator.SUBTRACT)).toString()); op1, op2, op3, etc. staan dus respectievelijk voor de operaties plus 5, minus 3, maal 2, etc. Om deze codes om te zetten van tekst naar een QR code afbeelding kunnen online services zoals gebruikt worden. Een enkele QR code kan dus verschillende betekenissen toegewezen worden in de code van de applicatie. 12

13 5.2 SHARED CODE Alle gedeelde code is te vinden in het Schoolyard project. Het kan niet op zichzelf uitgevoerd worden, maar is essentieel voor de SchoolyardClient en SchoolyardWindowsHost projecten. GEDEELDE CODE De volgende code wordt gedeeld tussen zowel het server al het client project, omdat deze klassen vaak essentieel zijn voor consistente communicatie tussen beide applicaties. Met name het protocol voor berichten die verstuurd worden moet aan beide kanten gelijk zijn. PACKAGES Om alles consistent te houden volgen deze packages dezelfde benaming en indeling. - nl.tudelft.schoolyard.game Bevat de basis abstractie om de Games te realiseren. - nl.tudelft.schoolyard.game.mathrun Heeft de basis elementen van een MathRun game. - nl.tudelft.schoolyard.net Deze package bevat de code die beide programma s gebruiken voor het verzenden vnet netwerk berichten. - nl.tudelft.schoolyard.net.exceptions Package voor de exception die de Message.parse kan werpen. KLASSEN Game Abstractie die er voor zorgt dat de benodigde methoden aanwezig zijn. - ondatainput(input) Verwerk input van een component wat speler handelingen detecteert. - getcurrentobjective() Geef het huidige object terug. - setcurrentobjective(objective) Zet het huidige object. Objective Abstractie die er voor zorgt dat de benodigde methoden aanwezig zijn. Attributen - iscompleted Of het doel al bereikt is. Player Speler object dat standaard informatie bevat dat gesynchroniseerd gehouden moet worden tussen de server en client. Attributen - name De naam die opgegeven is door de speler. - deviceid De unieke deviceid van het Android apparaat van de speler. 13

14 MathRunObjective Het doel wat bereikt moet worden in een enkele spelsessie van MathRun. Attributen - startnumber Het nummer vanaf waar begonnen wordt. - targetnumber Het doel nummer. - currentnumber Het huidige nummer. - appliedoperations De geschiedenis van toegepaste operaties. - applyoperation(op) Past de gegeven operatie toe op het huidige nummer. Operation Wiskundige operatie met een gegeven rechterhand waarde dat uitgevoerd kan worden op een gegeven linkerhand waarde. Attributen - number De rechterhand waarde. - operator De operatie. - canapplytonumber(input) Kijkt of de operatie toegepast kan worden op de gegeven waarde. - applytonumber(input) Past de operatie toe op de gegeven waarde. - parse(str) Zet een string om naar een Operation object. - tostring() Zet het object om in een string voor netwerk transmissie. - tostringvisual() Zet het object om in een string voor visualisatie gebruik. Message Netwerk bericht object wat zichzelf in een string kan omzetten en zichzelf daaruit weer kan opbouwen. Attributen - messagedelimiter Gebruikt als markering in de string. - payloaddelimiter Gebruikt als markering in de string. - keyvaldelimiter Gebruikt als markering in de string. - keyvalenddelimiter Gebruikt als markering in de string. - emptypayloadidentifyer Gebruikt als markering in de string. - sender Degene die het bericht verstuurd (heeft). - messagetype Het type bericht. - payloadentries Payload van het bericht. - parse(msg) Zet een string om naar een Message object. 14

15 - encodehashmapforpayload() Zet een hashmap om in een string om verstuurd te worden met een Message. - decodehashmapfrompayload(entry) Zet een string van de payload om in een hashmap. - tostring() Zet het bericht om in een string wat klaar is om verstuurd te worden. MessageFormatException Speciale exception wat gegenereerd wordt tijdens het parsen van Message objecten zodat de fout makkelijker identificeerbaar is. MessageType Enum van de verschillende type berichten. MessageBuffer Verzamelt de string weergave van een message object in blokken totdat het compleet is. Attributen - PACKAGEDELIMITER Gebruikt als markering voor het einde van een Message. - message Stringbuffer van het tot nu toe verzamelde bericht. - deviceid deviceid van het android object waar deze buffer mee verbonden is. - append(values) Voeg een nieuw deel van het bericht toe aan het tot nu toe verzamelde stuk. - extractstring() Haal de complete string weergave van het bericht uit de StringBuffer en reset de StringBuffer 15

16 5.3 SERVER IMPLEMENTATIE Het server project, SchoolyardWindowsHost, vereist Java 1.6. Daarnaast moet het Schoolyard project met alle gedeelde code inbegrepen worden. Deze applicatie is alleen getest op Windows 7 x64 maar er is geen reden te verzinnen waarom het niet op andere platformen kan werken. SERVER De server moet meerdere verbindingen tegelijk kunnen afhandelen. Bij het ontwikkelen van de server is de focus ook gelegd op de afhandeling van netwerk verbindingen en de berichten binnen de applicatie. Vooral in welke thread deze behandeld worden. Er is gekozen voor een single thread netwerk beheer, in tegenstelling tot een thread per verbinding. PACKAGES Net zoals de client zijn de server packages opgedeeld aan de hand van het soort functionaliteit dat klassen bieden. Een dergelijke benaming van de packages was niet nodig geweest voor een Windows Java programma, maar is behouden voor de consistentie met de client packages. - nl.tudelft.schoolyard Hierin staat het program main entry point en hoofdklasse SchoolyardServer en de update thread de ServerUpdateLoop - nl.tudelft.schoolyard.interfaces Dit bevat de Interface voor de update observer pattern aan de server kant. - nl.tudelft.schoolyard.managers De beheerders van data zijn hierin verzameld. - nl.tudelft.schoolyard.net Verzameld staan hier de klassen die te maken hebben met de netwerk verbinding zoals de thread die van het netwerk leest als de input en output buffers. - nl.tudelft.schoolyard.views Verzameling van de GUI elementen van de server. KLASSEN Voordat we de specifieke klassen gaan belichten bekijken we eerst de globale structuur aan de hand van een klassendiagram. Om een volledig beeld te krijgen van de werking van de klassen wordt aangeraden om naar de javadoc comments te kijken. 16

17 SchoolyardServer Bevat het main entry point van het programma. Initialiseerd de rest van het programma en beheert het starten en stoppen van de netwerk verbinding. Attributen - running Flag die weergeeft of de netwerk verbinding aan staat of niet. - debug DebugPanel waarnaar debug berichten gestuurd worden. - SERVER_PORT Poort waarop de server gaat luisteren naar inkomende verbindingen. - frame Venster waarin de server wordt weergegeven. - window SchoolyardWindow wat weergegeven wordt binnen het frame. - sloop ServerNetworkLoop dat de netwerk verbinding blijft uitlezen. - supdateloop Thread dat de geregistreerde ServerUpdatable objecten aanroept. - showgui() Initialiseerd de GUI en maakt deze zichtbaar. - toggleserver() Veranderd de staat van de server van aan naar uit, en vice versa. - debug() Print een debug bericht op de DebugPanel 17

18 ServerUpdateLoop Runnable Observerable object dat de updates van de ServerUpdatable objecten aanroept elke 16 milliseconden (ongeveer 60 keer per seconde). Attributen - updatables Lijst van geregistreerde objecten. - run() Deze methode loopt totdat de server afsluit en roept de update methoden van de geregistreerde objecten aan. Met een minimum wachttijd tussen de aanroepen van 16 milliseconden. - addupdatable(id, updatable) Registreer een nieuw ServerUpdatable object aan de hand van de gegeven ID. ServerUpdatable Interface dat de update methode garandeert voor de ServerUpdatable observerable. - update() Ongedefinieerde methode. ConnectionManager Kijkt naar de berichten van nieuwe spelers en accepteert deze wanneer ze in de tabel zijn ingevoegd. Beheert het toevoegen en verwijderen van spelers in de tabel. Attributen - playerlist Lijst van spelers gesorteerd op deviceid van de Android telefoons. - panel PlayerListPanel waarmee de connectionmanager verbonden is. - newplayer(deviceid, name) Maakt een nieuwe player aan in zijn eigen lijst van Player objecten. - update() Verwerkt netwerk berichten van het type PLAYER_IDENTIFICATION en update zichzelf en de tabel in de GUI respectievelijk - actionperformed(event) Callback voor wanneer een van de knoppen wordt ingedrukt waar de ConnectionManager zich voor heeft geregistreerd. GameManager Kijkt naar de berichten van spelende servers en update hun gegevens in de GUI tabel. Attributen - panel PlayerListPanel waarmee de GameManager verbonden is. - update() Kijkt naar de beschikbare netwerk berichten van type OBJECTIVE_UPDATE en GAMESTATE_UPDATE en roept de gerelateerde methoden aan. - processobjectiveupdate() Verwerk een bericht van type OBJECTIVE_UDPATE en update de GUI met de nieuwe informatie als dat nodig is. - processgamestateupdate() Verwerk een bericht van type GAMESTATE_UPDATE en update de GUI met de nieuwe informatie. - startnewgame() Broadcast een Message van type GAME_START naar alle verbonden clients om zo simultaan globaal het spel te starten. 18

19 Input Singleton netwerk buffer voor binnengekomen berichten. Deze berichten worden gesorteerd op bericht type zodat elk object berichten kan opvragen waar het verantwoordelijk voor is. Attributen - instance Singleton instantie van Input - lock Lock object voor de synchronized blokken voor thread-safety - putmessage(msg) Zet een bericht in de buffer aan de hand van het bericht type. - getmessage(type) Geeft een lijst van alle berichten van dat type. Lijst is lengte 0 als er niets is. En leegt vervolgens de buffer van dit type. Output Singleton netwerk buffer voor uitgaande berichten. Deze berichten worden gesorteerd op deviceid van de bedoelde ontvanger. Attributen - instance Singleton instantie van Output - lock Lock object voor synchronized blokken voor thread-safety. - putmessage(msg, targeted) Zet een bericht in de buffer voor de gespecificeerde ontvanger. - getmessages(targetid) Geeft een lijst van alle berichten voor deze ontvanger. En leegt vervolgens de buffer voor deze ontvanger. - hasmessage(targetid) Kijkt of er berichten zijn voor deze ontvanger. - broadcast(msg) Stopt dit bericht in de buffer van elk geregistreerde speler. - removeplayer(deviceid) Verwijdert de buffer van de gespecificeerde speler. ServerNetworkLoop Loop die constant kijkt of er nieuwe activiteiten zijn bij de geregistreerde channels. En vervolgens de activiteit afhandelt. Attributen - port Poort waarop er geluisterd wordt. - ssc ServerSocketChannel waarop er naar verbinden geluister wordt. - selector Observerable object voor de channels. - starttime Start tijd van de huidige iteratie. - BUFSIZE Maximum hoeveelheid bytes die uit de channel gelezen worden in een keer. - run() Blijft loopen totdat de SchoolyardServer de running flag uit zet. Kijkt elke keer of er activiteit is, zo ja roept de methode aan om het te verwerken - processkeys() Kijkt welke type activiteit er bij welke channel hoort en roept voor dat type een specifieke methode aan. - processwrite(key) 19

20 Schrijft alle beschikbare berichten in de Output buffer weg voor de ontvanger waar deze channel bij hoort. - processread(key) Leest van de channel en stopt het in de MessageBuffer. Roept gerelateerde methode aan als het Message object compleet is. - closeconnections() Sluit alle channels behalve de ServerSocketChannel waarop de server aan het luisteren is. - readmessage(key) Verwerkt het bericht en stop het in de Input buffer. - getmessagepart(key) Leest een blok bytes van de channel en geeft een string terug. - acceptconnection(key) Verwerkt een nieuw binnenkomende verbinding. - removeplayer(key) Sluit de SocketChannel gerelateerd aan deze SelectionKey. DebugPanel GUI element om debug berichten weer te geven. Attributen - console JTextArea waarin de debug weggeschreven wordt. - button JButton die de netwerk verbinding aan en uit zet. - server De SchoolyardServer. PlayerListPanel GUI element waar de tabel in staat met alle relevante speler data. Attributen - acceptbutton Knop om een speler te accepteren. Staat altijd uit omdat spelers automatisch geaccepteerd worden. - rejectbutton Knop om een speler te weigeren. Staat altijd uit omdat spelers automatisch geaccepteerd worden. - startbutton Knop om het spel simultaan voor alle verbonden spelers te starten. - connectionlist JTable met alle data van de spelers. - players Table Model waarin de daadwerkelijke data van de spelers staat. - addnewelement(deviceid, playername) Voegt een nieuwe speler toe aan de tabel. Mocht de deviceid al bestaan wordt de naam overschreven. Als er na toevoeging meer dan 1 speler in de lijst staat wordt de start knop geactiveerd. - setelementstate(deviceid, state) Zet de status van de speler. - updateelement(deviceid, current, target) Update de game info bij de speler met deze nieuwe waarden. - resetelementcount(deviceid) Reset de telling van hoeveel stappen de speler nodig heeft om het doel te bereiken. - removeelement(deviceid) Verwijder deze complete regel uit de tabel. SchoolyardWindow Verzameling van de GUI elementen Attributen - panels Verzameling van alle GUI elementen. 20

21 5.4 CLIENT IMPLEMENTATIE Het client project, SchoolyardClient, vereist Java 1.6 en de Android 2.2 (API 8) package die te verkrijgen is met de Android SDK. Daarnaast moet de core.jar van de ZXing library opgenomen worden in de build path. ONTWERP In de ontwerpfase zijn we begonnen vanuit een basis architectuur die we zelf vaker gebruikt hebben in games. Dit framework is vervolgens ingevuld en verbeterd volgens een iteratief proces. We hebben het bachelor project in 4 aparte JAVA projecten verdeeld: - Client - Server - Gedeelde code tussen Server en Client - Test-Code CLIENT De client is ontworpen om flexibel te zijn met de mogelijke spel types. En om modules te kunnen wisselen waar nodig. Bijvoorbeeld de WiFi NetworkManager te vervangen door een bluetooth module. Of de QR-code scanner door een real-time GPS systeem. PACKAGES De packages zijn gesorteerd op het soort functionaliteit dat klassen bieden. Zo zijn bijvoorbeeld de interfaces voor de Observer patterns bij elkaar gebonden. En zo zijn ook de Observers weer bij elkaar gegroepeerd. - nl.tudelft.schoolyard De enige klasse die hier in staat is een extended vorm van de Android Activity die uniek is in zijn soort in deze applicatie. - nl.tudelft.schoolyard.game In deze package zitten de Gerealiseerde spel-concepten. En het hoofdmenu wat de visualisatie en updates van een game overneemt zonder daadwerkelijke spelfunctionaliteit om zo het hoofdmenu weer te geven. - nl.tudelft.schoolyard.game.mathrun Hierin staan alle klassen die specifiek nodig zijn voor het realiseren van een mathrun spel-type. - nl.tudelft.schoolyard.gamelogic Hier staan de klassen die de (timing van de) stroom van het programma sturen, namelijk de Runnable objecten voor de update en draw threads. - nl.tudelft.schoolyard.interfaces Verzameld zijn hier de interfaces die gebruikt worden bij Observer patterns voor de update en draw calls, maar ook de netwerk call-backs - nl.tudelft.schoolyard.managers Dit zijn de klassen die of als een observerable handelt of als singleton een bepaalde beherende taak op zich neemt. - nl.tudelft.schoolyard.util De util package is een verzameling van klassen die globaal nuttig zijn. - nl.tudelft.schoolyard.views Hierin staat het enige scherm element wat getekend moet worden. KLASSEN Met een klassendiagram schetsen we eerst een globale structuur van het programma waarna we een voor een de klassen en hun belangrijkste methoden behandelen. Om een volledig beeld te krijgen kan JAVA code geraadpleegd worden waar bij elke methode een javadoc commentaar is toegevoegd. 21

22 SchoolyardClient Vanuit dit object komt de meeste interactie met het OS zoals de beschikbaarheid van verschillende threads en i/o methoden. De verantwoordelijkheden wordt zo goed mogelijk verdeeld over de managers, maar veel blijft toch afhankelijk van dit object. Attributen - tag String tag die gebruikt wordt om android debug logging te identificeren. - MATHRUN unieke int identifier voor een mathrun game. - deviceid String dat uniek is voor elke android telefoon. - drawmanager Observerable van de drawable observers. - updatemanager Observerable van de updatable observers. - networkmanager Verantwoordelijk voor netwerk communicatie. - drawloop Regelt de timing van de calls aan de drawmanager. - updateloop Regelt de timing van de calls aan de updatemanager. - inscanmode Flag die wordt aangezet wanneer de qr-code scanner actief is - activegame Huidige active SchoolyardGame object - player Player object wat de speler op deze client voorstelt - active Flag die wordt uitgezet wanneer het OS deze applicatie pauzeert - hidetext Een runnable object wat uitgevoerd wordt om een textarea te verbergen 22

23 - oncreate(savedinstancestate) Grofweg de constructor van de applicatie. Is in ieder geval de eerste methode die wordt aangeroepen vanuit het OS na het starten van de applicatie. Is dus verantwoordelijk voor het initialiseren van de applicatie. - startgame(type, startmsg) Start een nieuwe SchoolyardGame van het gegeven type gebruikmakend van het meegegeven netwerk bericht. Omdat er maar 1 speltype is, wordt automatisch een MathRunClient aangemaakt ongeacht de waarde van type. - returntomenu() Verwijderd het actieve spel en zet het hoofdmenu als actief object neer. - onpause() Wordt aangeroepen vanuit het OS als signaal dat de applicatie gaat pauzeren. Hier worden de update en drawloops uitgezet. - onresume() Wordt aangeroepen vanuit het OS als signaal dat de applicatie zich hervat. Hier worden de update en drawloops gestart. - startscan() Start de qr-code scanner - onactivityresult(requestcode, resultcode, intent) Verwerk het resultaat van een eerder aangeroepen applicatie. In ons geval het resultaat van de qrcode scanner. Stuurt het resultaat door naar het actieve game. SchoolyardGame Deze klasse zorgt voor de aanwezigheid van methoden nodig om een spel te realiseren. Implementeert de afhandeling van touch-events en geeft subklassen de mogelijkheid om eenvoudige methodes te overschrijven zonder zich zorgen te hoeven maken over de touch-events. Attributes - screentext Verzameling van alle Text2D elementen die op het scherm worden getekend - ondownevent(downs) Callback die subklassen kunnen overschrijven om alle down-events te verwerken. - onupevent(up) Callback die subklassen kunnen overschrijven om up events te verwerken. Gelimiteerd tot 1 up event per callback. - ontouch(view, event) Callback van het OS die dit object informeert over een touch event. Kijkt of het event een up of down event is en kijkt of Text2D elementen geraakt zijn of niet. - draw(canvas) Tekent alle Text2D elementen op het scherm. Menu Het hoofdmenu van de schoolyard client waar de client zijn/haar naam kan invoeren en een verbinding kan starten met de server. Na het openen van de verbinding wordt er gewacht op een bericht van de server om een spel te starten. 23

24 Attributen - MENU State id voor het absolute begin scherm - CONNECTING State id voor wanneer er gewacht wordt op de verbinding met de server - WAITING_FOR_GAME State id voor wanneer er gewacht wordt op een bericht van de server. - activity De SchoolyardClient. - nameeditor Textarea waar de speler zijn/haar naam kan invoeren - state de huidige state van het menu - startgame Flag die wordt aangezet wanneer er vanuit de update thread een nieuwe game gemaakt wordt - startgameparam Parameter die meegegeven wordt wanneer een game aangemaakt wordt. - ondownevent(downs) Geeft de ingedrukte text een andere kleur. - onupevent(up) Vuurt de juiste methoden aan de hand van welke text/ knop gedrukt was. - resettextcolours() Zet de tekst terug in haar originele staat. - connectwithserver() Zegt tegen de activity om de netwerk verbinding te starten. - changetostate(state) Veranderd de state van het menu en verander de zichtbare elementen waar nodig. - handlenetworkmessage(msg) Verwerk een bericht wat binnengekomen is vanuit de netwerk manager. MathRunClient De klasse die het MathRun spel definieert. Hier in worden de update / draw loops en alle input verwerkt specifiek voor dit spel. Attributen - operations Alle Operation objecten die op het moment op het speelveld zijn - currentobjective De huidige objective - difficulty De moeilijkheidsgraad. Word op het moment alleen gebruikt voor het aantal stappen waarn in doel getal vanaf het startgetal gegenereerd word. - curnumber Scherm tekst object van het huidige nummer - targetnumber Scherm tekst object van het doel nummer - history cherm tekst object van de historie van toegepast Operation objecten - canpress Boolean check of er scherm invoer word verwerkt of niet - lastoperationfailed Boolean voor als de laatst toegepaste Operation niet toegepast kon worden - activity De SchoolyardClient - timer Timer object voor vertraagde acties - winresettime Tijd in seconden voordat de game opnieuw start nadat de speler wint - soundntextupdatedelay Tijd in seconden voor de vertraging waarmee geluid wordt afgespeeld en de scherm tekst veranderd nadat input is verwerkt - pressdelayafterscan Tijd in seconden wanneer de speler weer op het scherm kan drukken nadat input is verwerkt - processstartmessage(msg) 24

25 Verwerkt het startbericht van de server nadat deze klasse is aangemaakt. Hier in worden de huidige Operations van het speelveld uitgelezen. - processinput(input) Verwerkt input - playsoundeffects() Speelt een geluidseffect af afhankelijk van of de laatste Operation geslaagd is - updatetextfields() Update alle tekst velden met de laatste spelgegevens - setavailableoperations(operations) Zet alle huidige Operation objecten die het spel kan gebruiken - initnewobjective() Bouwt een nieuw MathRunObjective aan de hand van een MathRunTask op en initieert deze - ondatainput(input) Word aangeroepen zodra er data input is. Word doorgegeven aan de processinput methode en zorgt ervoor dat de gebruiker tijdelijk niet op het scherm kan drukken - onupevent(up) Verwerkt het indrukken van tekstvelden - handlenetworkmessage(msg) Verwerkt specifieke network messages voor de game. Wordt niet gebruikt in MathRun MathRunTask Deze klasse wordt gebruikt voor het genereren van MathRun objectives. Het genereert een start en eind getal aan de hand van een aantal limieten en een simpel algoritme. Attributen - possibleoperations Alle Operations die gebruikt kunnen worden - startnumber Het gegenereerde start getal - targetnumber Het gegenereerde doel getal - numoperationstoapply De hoeveelheid Operations die toegepast mogen worden voor het genereren van het doel getal - minstartnumber Het minimum voor het start getal - maxstartnumber Het maximum voor het start getal - maxtargetnumber Het maximum voor het doel getal - mintargetnumber Het minimum voor het doel getal - generate() Genereert een start getal en doel getal, net zo lang totdat deze aan de gezette criteria voldoen - targetnumbervalid(startnum, targetnum) Controleert of het gegeven start en doel getal aan criteria voldoen DrawLoop Beheert de timing van de draw calls die de DrawManager vuurt. Attributen - drawmanager De DrawManager waarvan de timing beheerd wordt. - run() 25

26 Blijft loopen totdat de Activity pauzeert. En roept de draw functie van de DrawManager aan op de in de constructor gespecificeerde frequentie. UpdateLoop Beheert de timing van de update calls die de UpdateManager vuurt. Attributen - updatemanager De UpdateManager waarvan de timing beheerd wordt. - run() Blijft loopen totdat de Activity pauzeert. En roept de update functie van de UpdateManager aan op de in de constructor gespecificeerde frequentie. Drawable Interface dat de draw methode garandeert voor de Drawable observerable. - draw(canvas) Ongedefinieerde methode. NetworkListener Interface dat de handlenetworkmessage garandeert voor een callback vanuit de SchoolyardClient - handlenetworkmessage(msg) Ongedefinieerde methode. Updatable Interface dat de update methode garandeert voor de Updatable observerable. - update(activity) Ongedefinieerde methode. DrawManager Beheert het scherm van de SchoolyardClient. Van het tekenen tot het registreren van objecten die naar touchevents luisteren. Attributen - drawables Lijst van Drawable observers - view SufraceView waarop getekend wordt. - holder SurfaceHolder die het canvas beheerd tussen de draw-calls door. - draw() Calls the draw method of all registered Drawables. - registerdraw(id, drawer) Register a new Drawable object with given id. 26

27 - registertouchlistener(listener) Registers an OnTouchListener object to listen for and handle touch-events. - clear() Clears the list of registered drawables. NetworkManager Beheert het netwerk verkeer. Luistert elke update of er nieuwe informatie is binnengekomen. Attributen - SERVERIP IP van de server. - SERVERPORT Poort waarop de server luistert. - READ_SIZE Grootte van het blok wat in een keer gelezen wordt. - channel SocketChannel waarmee de client verbonden is met de server. - socketaddr Het InetSocketAddress waar de SocketChannel mee verbindt. - messagebuffer MessageBuffer object wat blokjes van een Message omzet in een compleet Message object - isconnecting Flag wat aangeeft of de NetworkManager nog bezig is met verbinden. - attemptconnection() Probeert even te verbinden met de server. Zet de isconnecting Flag uit wanneer het lukt. - onfinishconnecting() Callback voor wanneer de verbinding gemaakt is. - close() Sluit de verbinding met de server. - sendmessage(msg) Stuurt een bericht naar de server. - update(activity) Als er data beschikbaar is leest het van de SocketChannel en voegt het toe aan de MessageBuffer. Verwerkt Message wanneer het compleet is. Output Singleton wrapper voor de netwerk manager die kijkt of hij wel geïnitialiseerd is. Attributen - lock Object dat gebruikt wordt om de klasse te locken tijdens een synchronized Block. - out Instantie van zichzelf - initialize(network) Initialiseerd de Singleton en zet de NetworkManager. - invalidate() Verwijdert z n eigen static instantie zodat er geen berichten meer verstuurd worden. - sendmessage(message) Schrijft een bericht naar de netwerk manager. SoundManager Beheert geluidseffecten die de telefoon kan afspelen. 27

28 Attributen - SOUND_ALLOW Index voor positief geluidseffect - SOUND_DENY Index voor negatief geluidseffect - manager SoundManager singleton - soundpool Het SoundPool object - soundpoolmap Map voor het mappen van indices naar werkelijke geluidseffect indices - audiomanager AudioManager object - context Het Context object - initialize(context) Initialiseert de sound engine en voegt de gebruikte geluidseffecten toe - play(index) Roept playsound aan van de singleton - playsound(index) Speelt het geluid met de gegeven index af UpdateManager Observerable klasse die zich bezighoudt met de update methoden van de Objecten die de Updatable interface implementeren. Attributen - activity De SchoolyardClient. - updatables De geregistreerde updatable objecten. - update() Roept de update methode aan van alle geregistreerde Objecten - registerupdate(id, updater) Registreert een nieuw updatable Object met een gegeven id. - clear() Verwijdert alle geregistreerde Objecten SYLog Wrapper om de static Android Log klasse. Zo worden errors afgevangen die alleen gegenereerd worden wanneer vanuit het test-project de Log klasse wordt aangeroepen. - d(msg) Wrapper om de Log.d functie die exceptions afvangt. - e(msg) Wrapper om de Log.e functie die exceptions afvangt. ParamTimerTask Uitbreiding van TimerTask klasse. Voegt de optie toe om een parameter mee te geven die gebruikt kan worden wanneer de timer de code uitvoert. 28

29 5.5 UITBREIDINGS MOGELIJKHEDEN De applicatie is modulair opgebouwd en kan makkelijk uitgebreid worden met nieuwe spellen, opdrachten of zelfs systemen voor locatiebepaling. Meerdere spellen Als voorbeeld voor verschillende spellen kan gekeken worden naar de MathRunClient class in het SchoolyardClient project. Een spel moet de SchoolyardView class extenden en zijn eigen update, draw, ondatainput, onupevent, ondownevent, setcurrentobjective en getcurrentobjective methoden definiëren. Op het moment wordt het spel dat gespeeld wordt gedefinieerd in de startgame methode van de SchoolyardClient class. Dit kan omgebouwd worden om meerdere spellen te ondersteunen, bijvoorbeeld door de START_GAME message van de server uit te breiden zodat de server kan bepalen welk spel de client start. Verschillende opdrachten Op het moment stuurt de START_GAME message ook alle beschikbare operaties mee voor de MathRun game sessie. Deze staan op het moment hardcoded in de GameManager class van de server, maar kunnen dus gemakkelijk gewijzigd worden door bijvoorbeeld deze data uit bestanden te halen die op de server zijn aangemaakt. Op deze manier hebben alle clients dus altijd hetzelfde beeld van het speeldveld, zelfs als deze tussen sessies door wordt veranderd. Andere locatiebepaling Het huidige prototype maakt gebruik van de ZXing library om camera beelden te verwerken en QR codes uit te lezen. Het resultaat van deze scan komt terug in de onactivityresult methode van de SchoolyardClient class, en wordt vervolgens als een string doorgegeven aan de ondatainput methode van de huidige actieve game. De huidige game bepaalt dus al zijn acties en state veranderingen in de ondatainput methode. In theorie zou bijvoorbeeld een GPS manager ontwikkeld kunnen worden welke locaties codeert als strings, en zodra de speler een dergelijke locatie bereikt, zou de bijhorende string doorgegeven kunnen worden aan de ondatainput. Deze abstracte laag zorgt er voor dat de input bron makkelijk te veranderen is zonder enige wijziging te hoeven maken aan de game code zelf. 29

30 5.6 EVALUATIE SIG De Software Improvement Group (SIG) beoordeelt de implementatie van software producten. Ze kijken naar verschillende elementen die betrekking hebben op de onderhoudbaarheid van het product. Deze elementen zijn van belang wanneer een product voor een langere tijd onderhouden moet worden of als de ontwikkeling van handen wisselt. Het is een score die aangeeft hoe makkelijk (of moeilijk) de code te begrijpen is voor iemand die er onbekend mee is, en hoe makkelijk de integratie van een uitbreiding is. SIG beoordeelt ook bachelor eindprojecten voor de Technische Informatica opleiding van de TU Delft, dus ons project moest deze evaluatie ook ondergaan. Dit was het eerste commentaar op onze code tijdens de laatste maand van de ontwikkelingsfase: De code van het systeem scoort vier sterren op ons onderhoudbaarheidsmodel, wat betekent dat de code bovengemiddeld onderhoudbaar is. De hoogste score is niet behaald door een lagere score voor Unit Size en de Unit Complexity. Voor Unit Size wordt er gekeken naar het percentage code dat bovengemiddeld lang is. Het opsplitsen van dit soort methodes in kleinere stukken zorgt ervoor dat elk onderdeel makkelijker te begrijpen, te testen en daardoor eenvoudiger te onderhouden wordt. Binnen de extreem lange methodes in dit systeem, zoals bijvoorbeeld de 'run'-methode in de class 'ServerLoop', zijn aparte stukken functionaliteit te vinden welke ge-refactored kunnen worden naar aparte methodes. Debugs-statements zoals bijvoorbeeld 'server.debug("initializing...");' en 'server.debug("accepting Connection...");' zijn een goede indicatie dat er een autonoom stuk functionaliteit te ontdekken is. Het is aan te raden kritisch te kijken naar de langere methodes binnen dit systeem en deze waar mogelijk op te splitsen. Voor Unit Complexity wordt er gekeken naar het percentage code dat bovengemiddeld complex is. Ook hier geldt dat het opsplitsen van dit soort methodes in kleinere stukken ervoor zorgt dat elk onderdeel makkelijker te begrijpen, makkelijker te testen en daardoor eenvoudiger te onderhouden wordt. In dit geval komen de meest complexe methoden ook naar voren als de langste methoden, waardoor het oplossen van het eerste probleem ook dit probleem zal verhelpen. Wat verder nog opvalt is dat er een tweetal classen zijn welke 'OLD' in de naam hebben. Daarnaast is er in bijvoorbeeld de 'ServerLoop'-klasse oude code in commentaar te vinden. Het lijkt erop dat deze code niet meer gebruikt dient te worden, het is dan ook aan te raden deze code uit het project te verwijderen. Het gebruik van een versiebeheersysteem zorgt er dan voor dat het altijd mogelijk blijft om oudere versies van de code terug te halen indien dit nodig blijkt te zijn. Over het algemeen scoort de code bovengemiddeld, hopelijk lukt het om dit niveau te behouden tijdens de rest van de ontwikkelfase. Als laatste nog de opmerking dat er geen (unit)test-code is gevonden in de code-upload. Het is sterk aan te raden om in ieder geval voor de belangrijkste delen van de functionaliteit automatische tests gedefinieerd te hebben om ervoor te zorgen dat eventuele aanpassingen niet voor ongewenst gedrag zorgen. Dit betekende voornamelijk dat we ongebruikte code beter moesten opruimen. En de bestaande code moest op een paar plekken beter opgedeeld worden om zo het formaat en de complexiteit te reduceren. Het ontbreken van (unit)test-code was een fout aan onze kant door het vergeten te uploaden. 30

31 Qua implementatie hebben we gereageerd door alle ongebruikte code definitief uit het project te verwijderen. En mocht de code toch nodig zijn konden we deze altijd nog terug halen d.m.v. de SVN-repository. De server-code heeft naar aanleiding van het commentaar op complexiteit een aangepaste structuur gekregen die de fases waarin de server zich bevindt beter aangeeft. Op deze manier was het veel overzichtelijker dan dat alles achter elkaar was geplakt. Na het afronden van de implementatie voor de eindpresentatie is de code nogmaals opgestuurd voor een eind beoordeling: In de tweede upload zien we dat de omvang van het systeem fors is gestegen en dat daarbij de score voor onderhoudbaarheid licht is gestegen. Op het gebied van Unit Size is een vooruitgang te zien, in deze upload zijn geen extreem lange units meer te vinden. Het opschonen van de langere units heeft ook de score voor Unit Complexity verbeterd. Daarnaast zien we ook geen code meer in bestanden met 'OLD' in de naam, of grotere blokken code in commentaar (slechts enkele regels in de 'PlayerListPanel'-class en de 'Text2D'-class). Als laatste valt het op dat er enkele unit-tests zijn toegevoegd. Uit deze observaties kunnen we concluderen dat de aanbevelingen van de vorige evaluatie zijn meegenomen in het ontwikkeltraject. Het is goed om te zien dat ondanks de forse uitbreiding van het systeem de score voor onderhoudbaarheid van het systeem is verbeterd. Hierin kunnen we merken dat SIG positief reageert op onze aanpassingen. En dat we de onderhoudbaarheid hebben kunnen verhogen ondanks een forse uitbreiding van de code, wat normaalgesproken een verslechtering van de onderhoudbaarheid met zich meebrengt. 31

32 6. CONCLUSIE We hadden ons doel als volgt omschreven: Het ontwikkelen van een educatieve spelomgeving met behulp van mobiele locatie bepaling voor basisschoolleerlingen op het schoolplein Het prototype wat wij hebben ontwikkeld voldoet hier aan. De ontwikkelde client applicatie kan gebruikt worden om basisschoolleerlingen met het Reken Ren spel te laten spelen en zo hoofdrekenen te toetsen. Locatiebepaling is geïmplementeerd doormiddel van het uitlezen van QR codes. Deze kunnen op specifieke locaties geplaatst worden voor de speler om te scannen met behulp van de applicatie. De eisen genoemd in hoofdstuk 2.2 zijn allen in het prototype verwerkt. Het prototype heeft een gebruiksvriendelijk interface dat alle benodigde informatie aan de gebruiker toont. De client applicatie kan met de server verbinden. De server kan een startsein geven met alle benodigde parameters voor de client om het spel te starten. Vervolgens stuurt de client alle spel updates naar de server tijdens het spelverloop. De client kan input verwerken in de vorm van QR codes die door de smartphone camera gescand worden. Ons project is uiteindelijk niet zo ambitieus geworden als oorspronkelijk gedacht. Door tijdsgebrek hebben we niet kunnen testen met daadwerkelijke eindgebruikers. Technisch gezien zijn alle limieten ook nog niet verkend, en we kunnen alleen maar gissen of er meer mogelijk is met de juiste hardware. De GPS zou gebruikt kunnen worden als deze nauwkeurig tot op enkele meters kan worden gemaakt. Toch kunnen we tevreden zijn met de basis die gelegd is. Het prototype kan alleen maar beter worden als deze verder wordt ontwikkeld. 32

33 7. TOEKOMST In het geval dat er een vervolgproject komt adviseren wij de volgende punten: 1. Verken andere platforms. Is een smartphone het ideale platform voor gebruik op het schoolplein? Uiteindelijk zou speciale hardware mogelijk efficiënter kunnen wezen, en minder breekbaar. 2. Zijn er praktische alternatieven voor de locatie bepaling? Onze QR code scan methode is ontstaan omdat locatiebepaling aan de hand van signalen niet doenlijk leek tijdens het project. Met de juiste hardware kan de nauwkeurigheid mogelijk verbeterd worden. 3. Verken de toepasbaarheid van het project. Zou het ook gebruikt kunnen worden in de klas? Of op een speurtocht in het bos? Dit project is een vorm van augmented reality, waarbij mobiele technologie de werkelijkheid kan verrijken. Dit heeft veel potentie voor het onderwijs. 4. Houd contact met de eindgebruikers. Wij hebben tijdens het project contact gehad met een Bernadette Motjé, lerares van groep 8 op de OBS De Tweemaster basisschool, gelegen in Capelle aan de IJssel. Ze toonde belangstelling voor het project en voorzag ons van lesstof die groep 8 zoal behandelde. Daarnaast was haar groep beschikbaar voor een live test van de applicatie. Hoewel wij daar tijdens dit project geen gebruik van hebben kunnen maken, verloopt het voorstel waarschijnlijk niet en zou men in de toekomst met haar contact op kunnen nemen als er kandidaten voor een live test gezocht worden. 33

34 8. EVALUATIE Het bachelorproject heeft voor ons een afwijkend traject gevolgd. Normaal wordt er verwacht dat de groep gedurende het 4 e kwartaal van het studiejaar fulltime werkt aan het project. Wij hebben echter verspreid over het 2 e semester (3 e en 4 e kwartaal) aan het project gewerkt. Hierbij gingen we uit van 3 dagen per week, zodat we op dezelfde eisen uit kwamen qua gespendeerde tijd aan het project. Onze projectgroep bestond uit twee mensen, beide met de ambitie om in de toekomst in de game industrie te werken. Om deze reden zochten we een project dat vergelijkbaar was met dat van het ontwikkelen van een game. Deze vonden we dan ook in de vorm van het Schoolyard project. Naast het concept werden er geen harde eisen gesteld, waardoor er veel ruimte was om te experimenteren en om een creatieve invulling te geven. De werkplek is in de loop van ons project vaak gewijzigd. Door het ontbreken van reserveerde ruimtes hebben we een vrij nomadisch bestaan geleden. In het begin hebben we voornamelijk gebruik gemaakt van het practicumgebouw aan de Drebbelweg, maar vanwege luidruchtige groepen mensen en gereserveerde tijdsloten moesten we ons vaak verplaatsen halverwege de dag. Tijdens de laatste paar maanden van het project was onze werkplek gesitueerd in de lobby van de EWI faculteit omdat hier altijd plek te vinden was, en relatief rustig. De taakverdeling binnen de groep verliep soepel. We waren maar met twee mensen dus er was geen noodzaak voor afgesproken vergaderingen en dergelijke. De taken waren zo opgedeeld dat Thomas zich kon bezig houden met de onderliggende systemen van onze applicatie, zoals de update / draw loops en de netwerkcommunicatie. Joeri werkte aan de interfaces en spel mechanieken. Wij zijn beiden meer progammeur dan manager, en dit zorgde dat onze samenwerking een paar zwakke punten had bij het lange termijn plannen en het zetten van deadlines. Het voornemen om logboeken bij te houden was ook vrij snel verbroken. We hielden een voornamelijk pragmatische blik op de voortgang van ons project. Dit heeft redelijk goed gewerkt, maar het kon mogelijk beter. De implementatiefase van ons project liep flink uit omdat, ironisch genoeg, dezelfde vrijheid die we zochten in ons project erg veel tijd heeft gekost. Het ontwikkelen van de client prototype die een GPS gebruikte had anderhalve maand gekost, wat op zich geen verloren tijd was maar nadat de GPS te onnauwkeurig bleek moesten we praktisch van voor af aan beginnen. We hadden nog gehoopt een live test te doen aan het eind van de implementatiefase, maar door de uitloop en het feit dat we geen extra test smartphones konden vinden moesten we hier van af zien. Het was een leerzaam project. We hadden gehoopt op meer resultaat, maar we zijn tevreden met de basis die we gelegd hebben en het prototype dat gebouwd is. We willen onze opdrachtgever nogmaals bedanken voor de kans die hij ons gegeven heeft, en wij hopen dat ons werk van pas kan komen bij een mogelijk vervolgproject. 34

35 9. BRONNEN [1] ZXing, Multi-format 1D/2D barcode image processing library with clients for Android, Java, [2] Schoolyard afstudeerverslag, Onderdeel van opleiding Human Technology aan De Haagse Hogeschool, Jorien van Vliet, 2011 [3] Niederhauser, D.S. and Stoddart, T. (2001) Teachers instructional perspectives and use of educational software. Teaching and Teacher Education, 17 (1),

36 APPENDIX A: OPRDACHTOMSCHRIJVING Schoolyard-Edu-Game - afstudeerproject Kernwoorden: Serious gaming, location based gaming, beweging, mobiele telefoon, smartphone, basisschool Schoolyard-Edu-Game is een spelconcept waarbij het doel is om kinderen in het basisonderwijs bewegend te laten leren. Schoolyard-Edu-Game wordt geïnstalleerd op pda of smartphone met GPSfunctie, waardoor het spel location based is. Het spel bevat een plattegrond van het schoolplein, welke van te voren wordt gemaakt door de leraar. Bij de start van het spel geeft het spel, door middel van GPS, de locatie van de leerling op het schoolplein weer. Het spel start: er knippert een cirkel op het scherm; dit is de locatie waar de leerling heen moet rennen. Wanneer de leerling binnen de aangegeven cirkel komt, krijgt hij een vraag. Deze moet hij zo snel mogelijk beantwoorden, waarna er een nieuwe cirkel begint te knipperen. Wanneer de leerling binnen de nieuwe cirkel komt volgt er een nieuwe vraag enzovoorts. Na bijvoorbeeld 20 vragen is het spel afgelopen en krijgt de leerling te zien hoeveel vragen er goed waren. De leraar ontvangt de resultaten ook op zijn computer. Naast dit spel zijn er verschillende spelmodules mogelijk. Bijvoorbeeld: Breuken (rekenen): ballen die op de leerling afkomen; leerling moet alle ballen die kleiner zijn dan ½ vangen. Alle ballen die grote zijn dan ½ mogen ze niet raken Wiskundig inzicht: leerlingen moeten met elkaar driehoeken vormen in de ruimte Sport: piepjestest (shuttlerun test) op het schoolplein (met bijv. digitale coach) Samenwerken: leerlingen moeten elkaar d.m.v. communicatie door een digitaal doolhof over het schoolplein sturen. Voor een pilot is er een prototype nodig om te testen of leraren hier mee kunnen en willen werken. De komende weken zal er onderzoek gedaan worden naar de behoefte van leraren m.b.t. dit concept. Deze zal input vormen voor het te vervaardigen prototype. Ook de game zal ontwikkeld worden gedurende deze aankomende weken. 36

37 APPENDIX B: ORIENTATIEVERSLAG SCHOOLYARD ORIENTATIE VERSLAG IN3405 Bachelorproject Revisie 1 Delft, 20 juni Joeri van der Velden Thomas Breekveldt

38 1. INLEIDING Voordat het programma geïmplementeerd of zelfs ontworpen kan worden, moeten bepaalde dingen eerst worden onderzocht. Er is een voorstudie gedaan naar de leraren als gebruikers groep. Dit onderzoek was gedaan door Jorien van Vliet, en het resultaat was volledig tot onze beschikking. Daarnaast hebben we zelf nog een blik op onze gebruikers geworpen. Deze is te vinden in hoofdstuk 2. Voordat we een spelconcept konden uitdiepen moest er eerst nog onderzocht worden hoe de locatie van de spelers bepaald werd. Omdat variaties hierin details in het concept kunnen veranderen. Een real-time systeem heeft namelijk andere beperkingen dan een event-based systeem. En ook de nauwkeurigheid heeft invloed. In hoofdstuk 3 staat onze gedachtengang beschreven. Om een client-server model te realiseren moet er natuurlijk een verbinding gemaakt worden tussen de apparaten. We hebben hiervoor een paar communicatie technieken naast elkaar gezet. Het resultaat van deze vergelijking staat in hoofdstuk 4. 38

39 2. GEBRUIKERS Wat zijn de eisen en wensen van de leraren en kinderen? ICT in het onderwijs is een zeer actueel topic in het laatste decennium. De huidige generatie leraren is vaak zonder ICT middelen onderwezen, en hebben hun eigen manier van lesgeven hier dus niet op afgestemd. 1 Vaak worden leraren ook nog aan hun lot over gelaten wat betreft het toepassen van ICT tijdens de les. Maar een derde van de leraren heeft afspraken met de rest van het team. 2 Het grootste deel van de leraren zoekt ICT ondersteuning nog bij collega s. ICT middelen worden vooral ter ondersteuning van het lesprogramma ingezet, in plaats van het lesprogramma fundamenteel te bepalen. Gemiddeld wordt de computer 8 uur per week gebruikt om les te geven. 2 Het succes van de ICT technologie hangt sterk af van de meerwaarde die het kan bieden tijdens de lesuren. 3 Dit lijkt steeds vaker het geval. De laatste jaren is de adoptie van ICT technologie in het onderwijs wel sterk gestegen. In de periode van 2007 tot 2011 is het gebruik van digitale schoolborden in het basisonderwijs van ongeveer 10% naar 95% gestegen. 2 Er is gemiddeld 1 computer beschikbaar per 5 leerlingen. Kinderen in het basisonderwijs groeien op in een steeds verder gedigitaliseerde samenleving, en hebben vaak meer affiniteit met ICT technologie dan de leraar. Goede gestroomlijnde ICT middelen zouden het leerproces van deze generatie sterk kunnen verbeteren. 2 39

40 3. LOCATIEBEPALING Een van de belangrijkste features in het Schoolyard project is de mogelijkheid voor de gebruikte apparaten om accurate locatiebepaling te verrichten op het schoolplein. Dit vereist dat het apparaat op de meter nauwkeurig moet zijn. We hebben voor dit project enkele mogelijkheden onderzocht en getest. 3.1 GPS Een van de meest gebruikte techniek vandaag de dag is het Global Positioning System, kortweg GPS, wat wereldwijd in miljoenen apparaten is verwerkt. Deze technologie zit ook ingebakken in smartphones, wat ons apparaat van keuze was voor dit project. We liepen echter tegen een aantal problemen aan. Bij het vooronderzoek op het web bleek al dat de nauwkeurigheid van een GPS sterk kan variëren. Sommige bronnen spraken van tientallen meters, terwijl andere een accuraatheid van enkele meters claimden. We zijn vervolgens zelf gaan testen en hebben de volgende resultaten verkregen. De GPS in mijn Android smartphone (een HTC Desire van het jaar 2010) was nauwkeurig tot op ongeveer 7 tot 10 meter. Dit is getest door locatie op te slaan, enkele routes te lopen, en te zien hoe ver mijn gemeten locatie afweek van mijn werkelijk opgeslagen locatie eerder. Daarnaast is de meetnauwkeurigheid sterk afhankelijk van de zichtbaarheid van GPS satellieten. Binnen een gebouw laten de metingen het al snel afweten. We kunnen met redelijke zekerheid concluderen dat GPS te onnauwkeurig is voor gebruik op het schoolplein. De technologie is niet geschikt voor locatiebepaling op een relatief kleine omgeving zoals een schoolplein. Gezien de gebruikelijke toepassingen van GPS (navigatie over lange afstanden) is dit niet erg verrassend. Daarnaast zijn de nauwkeurigheid en de snelheid van de metingen erg afhankelijk van obstakels in de omgeving. 40

41 3.2 TRIANGULATION Een andere techniek voor locatiebepaling op basis van signalen is triangulation. Bij deze techniek wordt de relatieve locatie van een object gemeten door de afstand te meten naar drie verschillende zendpunten (de driehoek). We identificeerden een aantal verschillende signalen die we mogelijk konden gebruiken voor deze techniek: GSM zendmasten, Bluetooth en Wifi. GSM zendmasten bedekken vrijwel het gehele land en verzorgen de telefoon ontvangst. Daarnaast zitten er op sommige smartphones systemen ingebakken om deze masten als backup locatiebepaling te gebruiken in het geval dat de GPS het laat afweten. Na wat onderzoek hebben we deze optie echter laten varen: de nauwkeurigheid van de locatiebepaling via GSM masten wordt gemeten op honderden meters, dus nog slechter dan GPS. Bluetooth en Wifi zijn signaal technologieën die gebruikt worden door veel apparaten, zoals laptops en smartphones, voor communicatie op korte afstand. Voor ons project lijkt deze techniek echter onhandig: er is extra hardware voor vereist welke rond het schoolplein geplaatst zou moeten worden. Daarnaast is de nauwkeurigheid ook variabel en is het onbekend hoeveel extra ontwikkelingstijd het kost om deze techniek te implementeren. 3.3 SCANNEN Tot dusver is gebleken dat signalen gebruiken voor locatiebepaling te onnauwkeurig of onpraktisch is voor gebruik op het schoolplein. We zijn daarom naar andere methoden gaan kijken, waaronder het gebruik van de camera. Praktisch alle smartphones hebben een camera ingebouwd. Men gebruikt deze vooral voor het opslaan van momenten of, wat voor ons van belang is, locatiebepaling. Vakantiefoto s tonen vaak waar een persoon geweest is. Dit achterliggende gedachte zouden we ook kunnen toepassen op het schoolplein. Het idee is om locaties rond het schoolplein te markeren en dat gebruikers de camera van hun apparaat gebruiken om bij een locatie in te checken. Op deze manier ben je vrij zeker van de locatie van een persoon wanneer hij op een bepaald punt een markering scant. Een nadeel van de techniek is echter dat de gebruiker dus telkens een actie moet verrichten als hij op een locatie aan komt. 41

42 3.4 DE KEUZE We concluderen dat het scannen van locaties met behulp van de camera waarschijnlijk de meest praktische oplossing is voor ons project. Uiteindelijk is het hoofddoel van het project om te kijken of location-based games op het schoolplein te doen (en leuk) zijn, waarbij de methode voor locatiebepaling niet vast staat. Als het project dus een vervolg krijgt dan kan de methode altijd nog veranderd worden IMPLEMENTATIE Het scannen van deze locatie markeringen kan op verschillende manieren. Waar het vrijwel allemaal op neerkomt is dat je via image processing gecodeerde data achterhaald. Onze keuze valt daarom op QR codes. Dit zijn vierkante barcodes die gebruikt kunnen worden om tekst te coderen. Ze zijn tegenwoordig al vaak te vinden op reclame borden en in sommige winkels. In principe kunnen we een eigen codering verzinnen en die via image processing identificeren, maar dat vergt extra ontwikkelingstijd. QR codes zijn al via een tal van applicaties en code libraries uit te lezen. 42

43 4. NETWERK COMMUNICATIE Om te zien wat de spelers aan het doen zijn, en om daar invloed op uit te oefenen, kwam de noodzaak voor netwerk communicatie. De eerste vraag was: met welke hardware zouden de apparaten gaan communiceren? Deze vraag was een van de redenen, naast locatie bepaling, dat we een Android toestel als testapparatuur gekozen hebben. Omdat een Android device (meestal) beschikt over meerdere communicatie methoden zoals WiFi en Bluetooth. Om daadwerkelijk een keuze te maken hebben we de communicatie-technieken naast elkaar gelegd en argumenten voor en tegen genoteerd. Figuur 1. Uit deze vergelijking (figuur 1) bleek dat de voorkeur naar een WiFi verbinding uitgaat, maar heeft toch nog twee aardige minpunten. Om deze minpunten te verhelpen zijn we verder gaan onderzoeken. Uit eigen onervarenheid kwam de vraag: Waarom kunnen twee apparaten met WiFi niet direct met elkaar communiceren, een Ad-Hoc netwerk opzetten? Uit onderzoek bleek dat bij Android telefoons er softwarematig een blokkade is geworpen op Ad-Hoc netwerken. Android telefoons kunnen alleen verbinden met een WiFi Hotspot. Om deze blokkade weg te halen is root-access nodig, toegang tot het besturings systeem van de telefoon. Omdat dit een ongewenste eigenschap was voor het prototype, zochten we verder naar andere oplossingen. In de Android documentatie kwamen we WiFi Direct tegen. 4 Dit was helaas een feature beschikbaar vanaf Android versie 4.0 wat dus niet beschikbaar was voor onze ontwikkeling voor Android

44 Uiteindelijk kwamen we tot de oplossing om de laptop die als Server zou dienen ook als hotspot te configureren. Dit was zo eenvoudig als een installatie van een programma genaamd Connectify. 5 Waarna je een hotspot kon opzetten via je WiFi verbinding. Dit bleek echter onstabiel wegens onverklaarbare redenen. Om een stabielere oplossing te vinden hebben we doorgezocht naar alternatieve oplossingen. Wat bleek was dat Connectify gebruik maakte van een Windows 7 eigen feature. Windows 7 is in staat een virtuele adapter te maken van een bestaande netwerk adapter en geeft deze een uniek MAC-adres door die van de bestaande te verhogen met 1. Op deze manier kan Windows 7 een draadloze internet verbinding delen over WiFi, waardoor beide verbindingen over dezelfde netwerk adapter lopen. 6 Op deze manier kan een Android telefoon doen alsof het gebruik wil maken van de internet verbinding, maar in werkelijkheid direct communiceren met de Server laptop. Zo is de verbinding van de telefoon gratis, en heeft de laptop een statische, door Windows 7 aangewezen, intern IP-adres. Zo blijven de (complexe) handelingen aan de kant van de server. Deze commando's kunnen in een batch file gezet worden om het proces te vereenvoudigen voor de gebruiker, of wellicht volledig geautomatiseerd kunnen worden. Het enige wat een client hoeft te doen is een verbinding maken met het nieuwe draadloze netwerk. Het liefst zou alles automatisch gebeuren, maar dit is in onze ogen acceptabel. BRONNEN 1 Kennisnet (2010) Vier in balans monitor 2010, ICT in het onderwijs de stand van zaken. 2 Kennisnet (2011) Vier in balans monitor 2011, ICT in het onderwijs de stand van zaken 3 Niederhauser, D.S. and Stoddart, T. (2001) Teachers instructional perspectives and use of educational software. Teaching and Teacher Education, 17 (1), Android development API, 5 Connectifiy home page, 6 Robert David Graham (2009), Errata Security Blog, includes-soft-ap.html 44

45 APPENDIX C: PLAN VAN AANPAK Bachelorproject Schoolyard - Plan van Aanpak Inhoudsopgave Introductie Project opdracht Aanpak en tijdsplanning Project inrichting Introductie Dit document zal worden gebruikt als startpunt voor het Schoolyard Educational Game project, welke uitgevoerd zal worden door Thomas Breekveldt en Joeri van der Velden in opdracht van TNO. Het uiteindelijke doel van het project is om een werkend prototype te ontwikkelen van een educatieve game welke toegepast kan worden op het schoolplein door de leraar om zijn of haar leerlingen al bewegend te laten leren. Eerst zal de project opdracht verder uitgewerkt worden. Vervolgens zetten we de aanpak en tijdsplanning uiteen. Als laatst beschrijven we de organisatie rond het project. Project opdracht Het Schoolyard-Edu-Game is een open spelconcept wat draait om leerlingen uit het basisonderwijs bewegend te laten leren, met behulp van moderne ICT technologie zoals smartphones en GPS. Er moet een methode geformuleerd worden om het schoolplein op te nemen in een digitale omgeving. Daarnaast moeten er games ontworpen worden welke gebruik maken van de locatiegegevens van leerlingen en de kennis van het schoolplein. 1. Opdrachtformulering Werk het Schoolyard-Edu-Game concept uit in een digitale omgeving welke gebruik maakt van locatiebepaling op het schoolplein en gebruikt kan worden door leraren en leerlingen in het basisonderwijs. 2. Op te leveren producten Een werkend prototype van de Schoolyard-Edu-Game omgeving met meerdere spellen die gespeeld kunnen worden hierin. Aanpak en tijdsplanning Omdat dit project gericht is op het ontwerpen van een prototype van een game, adopteren we een agile development schema. Dit betekent dat het ontwikkelingsproces iteratief zal verlopen, met kort opvolgende perioden van onderzoek, implementatie en testen. Op deze manier kunnen er op een vast tempo features worden toegevoegd, getest en aangepast. De volgende punten van onderzoek moeten afgewerkt worden in de loop van het project: Platform keuze Communicatie techniek Locatie bepaling -> 3.1 Nauwkeurigheid & 3.2 Gebruik Gebruikers Spel omgeving Spel ontwerpen Implementatie 45

46 Bovenstaand is een klein schema van mogelijke afhankelijkheden van de verschillende onderzoekspunten. [1] Platform Keuze Welke bestaande hardware kan gebruikt worden om het hoofddoel te realiseren en hoe verschillen ze? Dit onderzoek moet verschillende oplossingen aan het licht brengen en aspecten vergelijken daarvan om een conceptkeuze te faciliteren. [2] Communicatie Techniek Welke communicatie technieken bieden de verschillende platformen en hoe verschillen ze? Kijkend naar de communicatie technieken beschikbaar zoals eventueel WiFi, Bluetooth, e.d. [3] Locatie Bepaling Wat zijn de voor en nadelen van verschillende methodes voor locatie bepaling, met betrekking tot de eerder genoemde platformen? Deze vraag vonden we nodig om op te splitsen in twee onderzoeken. [3] [1] Nauwkeurigheid Wat is de nauwkeurigheid (en betrouwbaarheid) van de verschillende mogelijkheden? De nauwkeurigheid van het concept is een belangrijk aspect dat significante gevolgen met zich mee brengt. [3] [2] Gebruik Hoe weet Schoolyard de grenzen van het speelveld en vallen de benodigde acties binnen de eisen gesteld door de leraar? Onder het motto gebruiksvriendelijkheid, wat zijn de mogelijkheden en implicaties om dit autonoom door het systeem te laten gebeuren? Is dit überhaupt mogelijk autonoom uit te voeren? Moet de leraar vooraf de omgeving scannen / invullen? Kan het probleem versimpeld worden? [4] Gebruikers Wat zijn de eisen en wensen van de leraren en kinderen? Een kritische blik naar het onderzoek van Jorien. En eventueel een eigen steekproef doen of andere relevante onderzoeken vinden. [5] Spel omgeving Wat zijn de omstandigheden (variabelen) van de omgeving waarin Schoolyard gebruikt gaat worden? Het is (wellicht) onrealistisch om een concept te ontwerpen voor een schoolplein van 300m 2 als het gemiddelde formaat significant lager ligt. Wat is het gebruikelijke oppervlak van een schoolplein en hoeverre zou deze benut kunnen worden? [6] Spel ontwerpen Welke spel concepten kunnen gerealiseerd worden binnen de eisen van het vooronderzoek, en hoe worden deze in de omgeving geïntegreerd? 46

47 Het ontwerpen van daadwerkelijke spelconcepten voor Schoolyard. [7] Implementatie De realisatie van het hoofddoel. Wij hebben de volgende milestones geformuleerd om bovenstaande punten af te werken: Eind februari: vooronderzoek. Techniek concept keuze. Opzetten ontwikkelingsomgeving. Eind maart: Locatie bepaling afronden. Halverwege april: prototype multiplayer. Gebruikersonderzoek. Begin mei: eerste "echte" prototype game Begin juni: eerste tests in live omgeving Een voorlopige meer detailleerde planning: week 1 proces: kalenderweek 6 (6 feb) Orientatie Onderzoek week 2 proces: kalenderweek 7 (13 feb) Orientatie Onderzoek week 3 proces: kalenderweek 8 (20 feb) Orientatie Onderzoek week 4 proces: kalenderweek 9 (27 feb) Vakantie / Onderzoek in eigen tijd week 5 proces: kalenderweek 10 (5 mrt) Deliverable: Het laten bewegen van 1 (of meer verschillende) punt(en) op een vlak dmv doorgeven van punt-data. week 6 proces: kalenderweek 11 (12 mrt) Deliverable: Huidige locatie kunnen aflezen voor nauwkeurigheids metingen en koppelen aan de punt(en) van de vorige versie. Eerste spelconcept. week 7 proces: kalenderweek 12 (19 mrt) Deliverable: Extra data van de punten kunnen opvragen (o.a. snelheid en afgelegd pad) week 8 proces: kalenderweek 13 (26 mrt) Deliverable: Test-versies eerste spel types (singleplayer). Tweede spelconcept. week 9 proces: kalenderweek 14 (2 apr) Deliverable: Communicatie met server & synchronisatie van tenminste 1 speler (+ eventueel meer spel-types) week 10 proces: kalenderweek 15 (9 apr) 47

48 Deliverable: Synchronisatie tussen meerdere spelers van verschillende typen data (o.a. locatie, game-state, score) (+ eventueel meer spel-types). Derde spelconcept. week 11 proces: kalenderweek 16 (16 apr) Deliverable: Game-state changes testen / uitloop week week 12 proces: kalenderweek 17 (23 apr) week 13 proces: kalenderweek 18 (30 apr) week 14 proces: kalenderweek 19 (7 mei) week 15 proces: kalenderweek 20 (14 mei) week 16 proces: kalenderweek 21 (21 mei) week 17 proces: kalenderweek 22 (28 mei) week 18 proces: kalenderweek 23 (4 jun) uiterlijke deadline code opsturen naar SIG week 19 proces: kalenderweek 24 (11 jun) Wachten op/verwerken van feedback SIG week 20 proces: kalenderweek 25 (18 jun) week 21 proces: kalenderweek 26 (25 jun) week 22 proces: kalenderweek 27 (2 jul) Project inrichting Het project zal uitgevoerd worden door Thomas Breekveldt en Joeri van der Velden, studenten Technische Informatica aan de TU Delft. De begeleidend docent is professor Rafeal Bidarra, supervisor van het Game Technology onderzoek aan het TUD. Het project wordt uitgevoerd in de opdracht van professor Rob Kooij van TNO. 48

49 APPENDIX D: SPELCONCEPTENEPTEN 1. MATHRUN Setup 1. Every player has a device which shows two numbers on the display. One is their start number. The other is the target number. 2. In the schoolyard there are several locations (marked with colored circles on the ground) that correspond to an operation (such as "multiply by 5", "add 3", "subtract 2") Gameplay 1. Once each player sees their start and target number, they have to deduce what operations they need to apply to incrementally turn the start number into the target number. 2. The players will start moving across the schoolyard and stand on the different circles to apply the corresponding operations. Player performance Player performance can be measured in how many operations they required versus the theoretical number of operations required, and the amount of time they needed to complete. Difficulty scaling The difficulty of the game can be adjusted by giving players bigger numbers (requiring more operations) and/or by adding more exotic operations (such as "add 3 and divide by 4") which require players to think harder before moving. Educational value Math, reasoning and memorizing Menu design Mockup #1: Notes: the player's current number is largest. Target number is right below. The player presses on his number to go to 'scan mode' in which the QR code is read and the operation is applied. The list of operations that the player has applied are shown at the bottom. 49

50 2. CITY MATCHING Setup 1. Every player has their device ready, nothing is shown on it yet 2. In the schoolyard there are an even number of locations, half of them marked as 'countries', the other half being '(capital) cities'. Each country has a corresponding capital city 3. The city of a city location is not clear until a player stands on its location. Players can only identify it as a 'city' from a distance, not which city. Gameplay 1. Every player needs to go to a city location, read what city it is, and then find the matching country which that city is the capital of. For example, a player goes to a city location and finds out it's "Berlin". He then needs to find the country location of which "Berlin" is the capital (in this case "Germany"). If the player matches it correctly he is told so. If not, he has to keep on looking or pick a different city to match. 2. The game ends once the player matched all capital cities with their corresponding countries. Player performance Player performance can be measured in how quickly he matches cities, and if there are any failed attempts to match incorrect country - capital city pairs. Difficulty scaling The difficulty of the game can be scaled by using different and larger sets of countries. This game can also be adapted to find the capitals of different provinces in a single country. Educational value Topography and memorizing 3. WORD BUILDER Setup 1. Every player has their device ready, nothing is shown on it yet 2. In the schoolyard there are an even number of locations, each one presenting a part of a word (for example, "le", "mier", "lijk", "en", "voor", "werp", "men", "tulp", "sen") 3. There is a time limit (one minute or something) Gameplay 1. Players need to create valid words by combining two word parts. They do this by reading the first part on a location, and then moving to the second location to combine it with that part. For example, "mier" + "en" = "mieren", "voor" + "werp" = "voorwerp", or "werp" + "en" = "werpen". The matches are not exclusive, you can use a single word part in several combinations. 2. Each player needs to make as many unique and valid words within the time limit. Player performance Player performance can be measured in how many different words they can build before time runs out. Difficulty scaling The difficulty of the game can be adjusted by giving more complex word combinations. Educational value Language and memorizing. Note: might be a little low leveled for group 7/8. 50

51 4. TIMELINE Setup 1. Every player sees a legend on his screen combining several colours with historic ages or event. Each player gets shown the same historic data but paired with different colours 2. In the schoolyard there are several locations, each with a colour (that corresponds to the colours in the legend) Gameplay 1. Players need to traverse the timeline, meaning they need to walk over the colours in such a way that the historical events or ages they're paired with are traversed in a chronological order. For example, a player sees the pairs "Roman age" with blue, "Industrial age" with green, "Medieval age" with red and "Iron age" with yellow. His goal is then to go to the locations marked yellow, blue, red and green, in that order. 2. Each player has a different set of pairs so not everyone goes to the same locations and they can't derive the right answers from each other's movement. Player performance Player performance can be measured in how many tries, and how fast, the player gets the correct order. Difficulty scaling The difficulty of the game can be changed by using more pairs or more complex historical events. Educational value History Menu design Mockup #1: Notes: the gray numbered items are the top are correctly queued historical events. The coloured items still need to be found in the correct order. The next good answer in the above example would be the blue "Middeleeuwen". The player goes to scan mode by pressing the screen. 51

Handleiding. Opslag Online voor Windows Phone 8. Versie augustus 2014

Handleiding. Opslag Online voor Windows Phone 8. Versie augustus 2014 Handleiding Opslag Online voor Windows Phone 8 Versie augustus 2014 Inhoudsopgave Hoofdstuk 1. Inleiding 3 Hoofdstuk 2. Installatie 4 2.1 Downloaden van KPN Opslag Online QR Code 4 2.2 Downloaden van KPN

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

Mobiele App voor VERSA alarmsystemen Versa_control_qs_nl 07/16. Configuratie handleiding

Mobiele App voor VERSA alarmsystemen Versa_control_qs_nl 07/16. Configuratie handleiding VERSA CONTROL Mobiele App voor VERSA alarmsystemen Versa_control_qs_nl 07/16 Configuratie handleiding Het VERSA, VERSA IP en VERSA Plus alarmsysteem kan ook worden bediend vanaf een mobiel apparaat (Smartphone

Nadere informatie

Handleiding WiFi. RR Trading B.V.

Handleiding WiFi. RR Trading B.V. Handleiding WiFi RR Trading B.V. Rev.05 Inhoudsopgave 1. Voorbeeld van de werking... 3 2. Benodigde materialen en informatie... 3 3. Mededeling... 4 4. Gebruiksvoorwaarden... 4 5. Registreren... 5 6. Externe

Nadere informatie

Android Development CCSS2011

Android Development CCSS2011 Android Development Voor dummies, door dummies... Challenges in Computer Science Seminar LIACS, Universiteit Leiden 15 Februari 2011 Inhoud 1 Introductie 2 Development Environment 3 Programmeren voor Android

Nadere informatie

Taxis Pitane voor iphone / ipad

Taxis Pitane voor iphone / ipad Taxis Pitane voor iphone / ipad gebruikershandleiding Censys BV - Eindhoven Voorwoord Censys BV is erkend Apple iphone software ontwikkelaar en heeft eveneens zijn Taxis Pitane voor iphone 3G/3GS/4 versie

Nadere informatie

HANDLEIDING EXTERNE TOEGANG CURAMARE

HANDLEIDING EXTERNE TOEGANG CURAMARE HANDLEIDING EXTERNE TOEGANG CURAMARE Via onze SonicWALL Secure Remote Access Appliance is het mogelijk om vanaf thuis in te loggen op de RDS omgeving van CuraMare. Deze handleiding beschrijft de inlogmethode

Nadere informatie

JPTrain. JPTrainBeta versie 25 mei 2015. Android client voor GBtrainHost

JPTrain. JPTrainBeta versie 25 mei 2015. Android client voor GBtrainHost JPTrain JPTrainBeta versie 25 mei 2015 Android client voor GBtrainHost Inhoud 1. Benodigd voor JPTrain... 3 2. Installatie JPTrain... 3 2.1 Conversie van oude versie(s)... 3 3. Eerste kennismaking met

Nadere informatie

Installatie en configuratie VCDS HEX-NET

Installatie en configuratie VCDS HEX-NET Installatie en configuratie VCDS HEX-NET 1. Download de laatste versie van de VCDS software. Raadpleeg onze website www.stecodiag.com en download de meest recente versie van de software. Om met de Nederlandstalige

Nadere informatie

Handleiding beginnen met Calculus VIP. Datum December 2016 Calculus Software

Handleiding beginnen met Calculus VIP. Datum December 2016 Calculus Software Handleiding beginnen met Calculus VIP Datum December 2016 Auteur Calculus Software Inhoudsopgave Waarom Calculus VIP?... 3 Gemakkelijk... 3 Veilig... 3 Technische voorwaarden gebruik Calculus VIP... 3

Nadere informatie

Opladen Opmerkingen Vragen?... 11

Opladen Opmerkingen Vragen?... 11 Aanwezigheidsregistratie Release 1 2018 1 e kwartaal Model: X-9200B Inhoudsopgave Activiteiten aanmaken... 2 Hoe werkt het registratieproces?... 4 Aan de slag: Draadloos scannen met een smartphone, tablet

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

Troubleshooting. Stap-voor-stap instructies maart 2019

Troubleshooting. Stap-voor-stap instructies maart 2019 Troubleshooting Stap-voor-stap instructies maart 2019 Copyright 2018. NCS Pearson, Inc. of haar filiaal/filialen. Alle rechten voorbehouden. Q-interactive is een handelsmerk in de VS en/of andere landen

Nadere informatie

DB Alerts vernieuwde app voor Android gebruikers

DB Alerts vernieuwde app voor Android gebruikers DB Alerts vernieuwde app voor Android gebruikers De DB Alerts app voor Android is volledig vernieuwd. Naast de bekende functionaliteiten uit de vorige versie (bekijken van waarnemingen en het invoeren

Nadere informatie

Er zijn diverse andere software platformen en providers die werken met SIP, maar in dit voorbeeld gaan we uit van de volgende software:

Er zijn diverse andere software platformen en providers die werken met SIP, maar in dit voorbeeld gaan we uit van de volgende software: Er zijn diverse andere software platformen en providers die werken met SIP, maar in dit voorbeeld gaan we uit van de volgende software: Counterpath Bria SIP client. Net2 Entry Configuration Utility (SIP

Nadere informatie

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Werkomgeving. Android Studio. Android - werkomgeving 1/6 Android - werkomgeving 1/6 Werkomgeving Android Studio Installatie Ga naar de volgende URL: http://developer.android.com/sdk/index.html Klik op de knop "Download Android Studio for Windows" om het programma

Nadere informatie

GroupWise Messenger 18 Mobiel Snel aan de slag

GroupWise Messenger 18 Mobiel Snel aan de slag GroupWise Messenger 18 Mobiel Snel aan de slag November 2017 GroupWise Messenger Mobiel Snel aan de slag GroupWise Messenger is beschikbaar voor uw ondersteunde mobiele ios-, Android- BlackBerry-apparaat.

Nadere informatie

Novell Messenger 3.0.1 Mobiel Snel aan de slag

Novell Messenger 3.0.1 Mobiel Snel aan de slag Novell Messenger 3.0.1 Mobiel Snel aan de slag Mei 2015 Novell Messenger 3.0.1 en later is beschikbaar voor uw ondersteunde mobiele ios-, Android- BlackBerry-apparaat. Omdat u op meerdere locaties tegelijkertijd

Nadere informatie

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar ProjectHeatmap Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar 1 Inhoudsopgave Inleiding...3 Gheat...4 Info...4 Voordelen...4 Nadelen...4 Google Fusion Tables...5 Info...5 Voordelen...5 Nadelen...5 OLHeatmap...6

Nadere informatie

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties 2 Supportdesk Pro Introductie Inhoudsopgave I Supportdesk Pro 3 1 Inleiding... 3 2 Werkwijze... 3 II Zaken 4 1 Introductie... 4 2 Zaken beheren... 4 3 Handmatig... invoeren zaken basis 4 4 Verwerken...

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na installatie

Nadere informatie

Handleiding. Opslag Online. voor Android. Versie februari 2014

Handleiding. Opslag Online. voor Android. Versie februari 2014 Handleiding Opslag Online voor Android Versie februari 2014 Inhoudsopgave Hoofdstuk 1. Inleiding 3 Hoofdstuk 2. Installatie 4 2.1 Opslag Online downloaden via QR-code 4 2.2 Opslag Online downloaden via

Nadere informatie

PnP IP/Network Camera

PnP IP/Network Camera PnP IP/Network Camera Quick Install Handleiding PnP T series Deze handleiding is van toepassing op de volgende modellen: EP-PM12WP EP-M30WP EP-P22WP HD EP-P22W EP-P10W EP-M04WP EP-PT09IP EP-M12WP EP-PM11WP

Nadere informatie

Gebruikershandleiding voor toegang tot Gasport

Gebruikershandleiding voor toegang tot Gasport Gebruikershandleiding voor toegang tot Gasport 1. Inleiding In deze handleiding staat beschreven hoe u kunt inloggen op de GTS webapplicatie Gasport via Multi-Factor Authentication (MFA). Voordat u kunt

Nadere informatie

SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module. EVO Remote. MAN_000010_nl(EVO_Remote) Versie: 10.0 van Juli,

SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module. EVO Remote. MAN_000010_nl(EVO_Remote) Versie: 10.0 van Juli, SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module EVO Remote MAN_000010_nl(EVO_Remote) Versie: 10.0 van Juli, 31 2018 T.b.v. de Livin flame pelletkachels 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Bedieningsvoorbeeld...

Nadere informatie

Onderwijstools 2.0, Kennisnet

Onderwijstools 2.0, Kennisnet Onderwijstools 2.0, Kennisnet Gebruikershandleiding Kennisnet. Leren vernieuwen. Stichting Kennisnet Paletsingel 32 T 0800 321 22 33 2718 NT Zoetermeer M info@kennisnet.nl Postbus 778 I kennisnet.nl 2700

Nadere informatie

Kenmerken Nomadesk Software

Kenmerken Nomadesk Software Kenmerken Nomadesk Software DATABEVEILIGING Versleutelde lokale schijf Nomadesk creëert een veilige virtuele omgeving, een Vault, op uw lokale harde schijf. Alle mappen en bestanden opgeslagen op de Vault

Nadere informatie

Web Games en het mobiele web. Hoorcollege Webdesign 9 6 juni 2014 Christof van Nimwegen

Web Games en het mobiele web. Hoorcollege Webdesign 9 6 juni 2014 Christof van Nimwegen Web Games en het mobiele web Hoorcollege Webdesign 9 6 juni 2014 Christof van Nimwegen Webgames: scope dit college onderdeel Games staan nu centraal in deze faculteit. In een cursus over webdesign MOET

Nadere informatie

SMARTPHONE APPLICATIE HANDLEIDING

SMARTPHONE APPLICATIE HANDLEIDING SMARTPHONE APPLICATIE HANDLEIDING INHOUD GV Smartphone applicatie handleiding... 3 1 Enkele nota s:... 3 2 Windows Smartphone GV-MSView... 3 2.1 GV-MSView Live beelden instellen... 3 2.2 GV-MSView Opgenomen

Nadere informatie

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8 API API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8 Identificatie Alle programma's communiceren met elkaar door gebruik te maken van JSON objecten. Het normale

Nadere informatie

Mobile Watch Snelle Handleiding. Bezoek voor meer informatie

Mobile Watch Snelle Handleiding. Bezoek  voor meer informatie Mobile Watch Snelle Handleiding Ⅰ. Software installatie - Software download: Zoek voor "360Eye"in de Iphone App Store en installeer de applicatie. Of scan de QR Code aan de rechterzeide. Voor meer details

Nadere informatie

Troubleshooting. Stap-voor-stap instructies augustus 2018

Troubleshooting. Stap-voor-stap instructies augustus 2018 Troubleshooting Stap-voor-stap instructies augustus 2018 Copyright 2018. NCS Pearson, Inc. of haar filiaal/filialen. Alle rechten voorbehouden. Q-interactive is een handelsmerk in de VS en/of andere landen

Nadere informatie

Gebruikershandleiding E-Zorg Remote Access op Android.

Gebruikershandleiding E-Zorg Remote Access op Android. Inhoud 1) Inleiding Pagina 2 2) Het token Pagina 2 3) Junos Pulse installeren en configureren Pagina 3 4) Een verbinding maken met Junos Pulse Pagina 4 5) Een werkstation op afstand overnemen Pagina 6

Nadere informatie

NACSPORT TAG&GO HANDLEIDING. 3.2.1. Eigenschappen knop

NACSPORT TAG&GO HANDLEIDING. 3.2.1. Eigenschappen knop Handleiding NACSPORT TAG&GO HANDLEIDING 1. Introductie 2. Configureren en bestellen 3. Sjabloon (categorieën en descriptors) 3.1 Lijst sjablonen 3.2 Sjablonen bewerken 3.2.1. Eigenschappen knop 4. Analyseren

Nadere informatie

SNEL HANDLEIDING KIT-2BNVR2W

SNEL HANDLEIDING KIT-2BNVR2W KIT-2BNVR2W Opstarten van het camera bewakingssysteem. 1. Sluit een monitor aan op de NVR (monitor niet inbegrepen in de KIT). 2. Sluit de NVR aan op het netwerk. 3. Sluit de NVR aan op het lichtnet met

Nadere informatie

INSTALLATIE EXCHANGE CONNECTOR

INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR 0 0 HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING datum: 10-08-2018 1 Inleiding... 1 2

Nadere informatie

Inrichting Systeem: Locaties & Toegang

Inrichting Systeem: Locaties & Toegang Inrichting Systeem: Locaties & Toegang EasySecure International B.V. +31(0)88 0000 083 Info@EasySecure.nl Support.EasySecure.nl v1.0 01-12-2011 In deze handleidingen worden de volgende functies binnen

Nadere informatie

Fitness Tracker Nederlandse Handleiding

Fitness Tracker Nederlandse Handleiding Fitness Tracker Nederlandse Handleiding www.fitness-tracker.nl Inhoudsopgave 1. Voordat u begint... 2 1.1 Waarschuwing... 2 1.2 Smartphone ondersteuning... 2 1.3 Opladen... 2 2. Koppelen met uw smartphone...

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na de installatie wordt in de

Nadere informatie

Elektronisch factureren

Elektronisch factureren Elektronisch factureren Inleiding Elektronisch Factureren in RADAR is mogelijk vanaf versie 4.0. Deze module wordt niet standaard meegeleverd met de RADAR Update maar is te bestellen via de afdeling verkoop

Nadere informatie

BRIGHT-NET INSTALLATIE HANDLEIDING

BRIGHT-NET INSTALLATIE HANDLEIDING BRIGHT-NET INSTALLATIE HANDLEIDING JOS VAN DER SANDEN VERSIE 0.10 29 DEC 2015 INHOUDSOPGAVE 1. Inleiding... 4 2. Server... 5 2.1 Installatie... 5 2.2 Configuratie... 9 2.3 Waarschuwingen... 9 2.4 Beschikbaarheid

Nadere informatie

Selecteer het NRF52-Dk platform in de IDE rechtsboven in het browser scherm.

Selecteer het NRF52-Dk platform in de IDE rechtsboven in het browser scherm. Ontwikkel je eigen Bluetooth LE device Welkom bij de workshop, tijdens deze workshop ga je aan de gang met het ontwikkelen van een Bluetooth LE device met behulp van MBED. Tijdens de workshop heb je het

Nadere informatie

Inhoud Introductie Development Environment Programmeren voor Android Demo. Android Development. Sven van Haastregt

Inhoud Introductie Development Environment Programmeren voor Android Demo. Android Development. Sven van Haastregt Android Development Sven van Haastregt Challenges in Computer Science Seminar LIACS, Universiteit Leiden Februari 2012 Sven van Haastregt Android Development CCSS2012 1 / 19 Inhoud 1 Introductie 2 Development

Nadere informatie

LegManager Mobile Handleiding

LegManager Mobile Handleiding LegManager Mobile Handleiding Handleiding LegManager Mobile 1 1. Inhoud 1. INHOUD... 2 2. PROGRAMMAVEREISTEN... 3 a. Vragen, opmerkingen en suggesties... 3 b. Welke tablet/ipad of smartphone/iphone kan

Nadere informatie

Aan de slag. Deze snelgids is voor de ClickToPhone software versie 83 of hoger.

Aan de slag. Deze snelgids is voor de ClickToPhone software versie 83 of hoger. Aan de slag Deze snelgids omschrijft hoe de ClickToPhone software moet worden geïnstalleerd, de Bluetooth hardware met de telefoon moet worden gekoppeld en hoe een gebruikersniveau moet worden gekozen.

Nadere informatie

Handleiding. Voor gebruikers van VSS Family. Postbus AA Zwijndrecht. Molenvliet 1B 3335 LH Zwijndrecht

Handleiding. Voor gebruikers van VSS Family. Postbus AA Zwijndrecht. Molenvliet 1B 3335 LH Zwijndrecht Postbus 49 3330 AA Zwijndrecht Molenvliet 1B 3335 LH Zwijndrecht Tel 078 610 77 00 Email info@verkerk.com http://www.verkerkgroep.nl Handleiding Voor gebruikers van VSS Family Auteur /K. Korporaal Datum

Nadere informatie

xxter Mobotix T24 configuratie

xxter Mobotix T24 configuratie xxter Mobotix T24 configuratie Setup / instellingen voor VoIP De Mobotix T24 kan in samenwerking met xxter als video intercomsystem werken. De configuratie zoals beschreven in dit document is getest. Andere

Nadere informatie

SMARTWATCH U8-PLUS GEBRUIKSAANWIJZIG

SMARTWATCH U8-PLUS GEBRUIKSAANWIJZIG SMARTWATCH U8-PLUS GEBRUIKSAANWIJZIG Bedankt voor uw keuze van de smartwatch U8-Plus. Deze smartwatch is functioneel na bluetooth verbinding met zowel Android als IOS toestellen. BELANGRIJKSTE FUNCTIES

Nadere informatie

Priva Blue ID Network scanner / Syslog Tool

Priva Blue ID Network scanner / Syslog Tool Priva Blue ID Network scanner / Syslog Tool Versie 1.3.15.0 Bladzijde 1 Inhoudsopgave Inhoudsopgave... 2 Introductie:... 3 Systeemeisen:... 4 Installeren op een SX100:... 5 De Werking:... 6 Scannen van

Nadere informatie

Xiris handleiding Onderhoudsmodule & database onderhoud

Xiris handleiding Onderhoudsmodule & database onderhoud Xiris handleiding Onderhoudsmodule & database onderhoud Copyright 2011 FP-Ruys. FP-Ruys kan geen aansprakelijkheid aanvaarden voor schade die het gevolg is van enig fout in deze handleiding of verkeerd

Nadere informatie

Cloud2 Online Backup - CrashplanPRO

Cloud2 Online Backup - CrashplanPRO Cloud2 Online Backup - CrashplanPRO Handleiding- CrashplanPRO - Online Backup Download de clients hier: Windows 32- bit: http://content.cloud2.nl/downloads/back01- cra.backupnoc.nl/crashplan_x86.exe Windows

Nadere informatie

App4Broker : uw nieuwe app!

App4Broker : uw nieuwe app! App4Broker : uw nieuwe app! Pagina 1 van 20 Inhoudsopgave 1. U GEBRUIKT MYBROKER AL... 3 1.1. APP4BROKER DOWNLOADEN OP UW TABLET... 3 1.2. INSTALLATIE VAN HET CERTIFICAAT... 4 2. U HEEFT NOG NOOIT MET

Nadere informatie

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing. irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.

Nadere informatie

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon Intramed OnLine instellen en gebruiken Voor Android tablet of telefoon Inhoudsopgave Hoofdstuk 1 Algemeen...1 1.1 Toegang tot inlogportalen...1 Hoofdstuk 2 Basic account...3 2.1 Microsoft Remote Desktop

Nadere informatie

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht Analyse Inleiding Bij het beoefenen van karate zijn er meerdere trainingsvormen. Een individuele trainingsvorm is de kata, waar een vast

Nadere informatie

HANDLEIDING DOIT BEHEER SYSTEEM

HANDLEIDING DOIT BEHEER SYSTEEM HANDLEIDING DOIT BEHEER SYSTEEM ALGEMENE INFORMATIE Het Doit beheer systeem is een modulair opgebouwd systeem waarin modules makkelijk kunnen worden toegevoegd of aangepast, niet iedere gebruiker zal dezelfde

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13 5 Inhoud Inhoud Over dit boek 7 1 Eclipse IDE (Integrated Development Environment) 9 2 Functionele specificatie 13 3 Implementatie grafische gebruikersinterface 31 4 De klassen en methoden 57 5 Technische

Nadere informatie

Bridgemate App. Informatie voor spelers. Bridge Systems BV

Bridgemate App. Informatie voor spelers. Bridge Systems BV Bridgemate App Informatie voor spelers Bridge Systems BV Bridgemate app Informatie voor spelers Pagina 2 Inhoud Inleiding... 3 De Bridgemate app downloaden... 3 App opstarten en account aanmaken... 4 Inloggen

Nadere informatie

Quick Start RitMeter Kilometerregistratie

Quick Start RitMeter Kilometerregistratie Quick Start RitMeter Kilometerregistratie Kilometerregistratie op je Android telefoon SIMOSO 2013 Quick Start RitMeter Kilometerregistratie Kilometerregistratie op je Android telefoon RitMeter, de eenvoudigste

Nadere informatie

Zmodo Zsight Android handleiding

Zmodo Zsight Android handleiding Zmodo Zsight Android handleiding -------------------------------------------------------------------------------------------------------------------------- 1 Inhoudsopgave 1. Software installatie...3 1.1

Nadere informatie

Handleiding Wi-Fi. RR Trading B.V 1 van 13 Rev.02

Handleiding Wi-Fi. RR Trading B.V 1 van 13 Rev.02 Handleiding Wi-Fi RR Trading B.V 1 van 13 Rev.02 Inhoudsopgave 1. Voorbeeld van de werking... 3 2. Benodigde materialen en informatie... 4 3. Mededeling... 4 4. Registreren... 5 5. Externe Wi-Fi module

Nadere informatie

Rapport. i-bridge FleetBroker en LocationBroker. Versie 1.0. Datum 22 December 2010

Rapport. i-bridge FleetBroker en LocationBroker. Versie 1.0. Datum 22 December 2010 Rapport i-bridge FleetBroker en LocationBroker Versie 1.0 Datum 22 December 2010 Status Final Colofon IVENT A&A CDC Madame Curielaan 4-6 Postbus 20703 2289 CA Rijswijk Contactpersoon Patrick Brooijmans

Nadere informatie

Bridgemate App. Informatie voor spelers. Versie 2.2. Bridge Systems BV

Bridgemate App. Informatie voor spelers. Versie 2.2. Bridge Systems BV Bridgemate App Informatie voor spelers Versie 2.2 Bridge Systems BV Bridgemate app Informatie voor spelers Pagina 2 Inhoud Inleiding... 3 De Bridgemate app downloaden... 3 App opstarten en account aanmaken...

Nadere informatie

Nerve Centre Personal app

Nerve Centre Personal app Handleiding Nerve Centre Personal app (Tracking, Profiel, Account) Een betrouwbare notificatieoplossing met rijke functionaliteit Een NerveCentre TM app - nervecentre.nl 4 April, 2019 INHOUD INTRODUCTIE...

Nadere informatie

React en React Native voor websites en apps

React en React Native voor websites en apps React en React Native voor websites en apps H A N S-PE T E R H ARMSEN HEEFT DI T GE SCH R E V EN IN APRI L 2017 Deze whitepaper is bedoeld voor product owners en beslissers. Hij gaat over React, een JavaScript

Nadere informatie

Documentatie gereedschapbeheer android applicatie. GB Inspect. Handleiding Gereedschapbeheer android applicatie GB Inspect - 1

Documentatie gereedschapbeheer android applicatie. GB Inspect. Handleiding Gereedschapbeheer android applicatie GB Inspect - 1 GB Inspect Handleiding Gereedschapbeheer android applicatie GB Inspect Datum: 10 september 2014 Behorende bij app versie 1.1.5-1 1. Inleiding De Gereedschapbeheer.nl app is bedoeld voor het inspecteren

Nadere informatie

Inhoud. Installatie Algemeen Gebruik Techniek App beëindigen/blokkeren

Inhoud. Installatie Algemeen Gebruik Techniek App beëindigen/blokkeren Inhoud Installatie Algemeen Gebruik Techniek App beëindigen/blokkeren LET OP! Vul alleen uw gegevens in wanneer de adresregel begint met dit https://www.mijnnvd.nl. Alleen dan weet u zeker dat u inlogt

Nadere informatie

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

Nadere informatie

Handleiding Safetycare Alarm app

Handleiding Safetycare Alarm app Handleiding Safetycare Alarm app Voorwoord Hartelijk dank voor het gebruik van de Safetycare alarm app voor ios en Android. Wij hebben met de grootste zorg deze applicatie ontwikkeld om u in staat te stellen

Nadere informatie

Installatie MicroSoft SQL server 2012 Express

Installatie MicroSoft SQL server 2012 Express Installatie MicroSoft SQL server 2012 Express Het installeren van deze MicroSoft SQL server 2012 Express dient te gebeuren door iemand met volledige rechten op het systeem. Wij adviseren dit door een systeembeheerder

Nadere informatie

HANDLEIDING DMS Plugin Installatie, configuratie & werking

HANDLEIDING DMS Plugin Installatie, configuratie & werking HANDLEIDING DMS Plugin Installatie, configuratie & werking Dit document is de handleiding voor de installatie, configuratie en werking van de DMS Plugin. Versie 1-12/09/2005 Inhoudstafel 1 Installatie...

Nadere informatie

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture Software architecture IM0203 TERUGKOPPELING PROEFTENTAMEN Vraag 1 Vraag 1a Veel van de in het werkboek besproken patterns kunnen ingezet worden voor het referentiesysteem. We lopen de patterns hier stuk

Nadere informatie

Xelion ESPA koppeling Handleiding Beheer V1.6

Xelion ESPA koppeling Handleiding Beheer V1.6 Xelion ESPA koppeling Handleiding Beheer V1.6 van de Xelion ESPA koppeling. Dit document is bedoeld voor beheerders en operators Inhoud 1 Overzicht... 1 2... 2 2.1 Espa apparaat toevoegen... 4 2.1.1 ESPA

Nadere informatie

Landelijk Indicatie Protocol (LIP)

Landelijk Indicatie Protocol (LIP) Handleiding Landelijk Indicatie Protocol programma pagina 1 of 18 Landelijk Indicatie Protocol (LIP) Welkom bij LIP Lip is ontstaan uit een toegevoegde module aan het kraamzorg administratie pakket van

Nadere informatie

Voor het insteken van de camera s is het nodig eerst de antenne aan te sluiten. Doet U dit niet dan gaat de camera stuk.

Voor het insteken van de camera s is het nodig eerst de antenne aan te sluiten. Doet U dit niet dan gaat de camera stuk. Handleiding Draadloze Wifi kit 4/8 kanaals model Voor het insteken van de camera s is het nodig eerst de antenne aan te sluiten. Doet U dit niet dan gaat de camera stuk. De antenne is eenvoudig vast te

Nadere informatie

Handleiding. Systeem: Android 4.4 Processor: All Winner A31S Editie: V01

Handleiding. Systeem: Android 4.4 Processor: All Winner A31S Editie: V01 Handleiding Basis inleiding... 1 Knoppen en aansluitingen... Fout! Bladwijzer niet gedefinieerd. Basis specificaties... 1 Starten... Fout! Bladwijzer niet gedefinieerd. Opstarten en afsluiten... Fout!

Nadere informatie

Fashionable Fitness Tracker Nederlandse Handleiding

Fashionable Fitness Tracker Nederlandse Handleiding Fashionable Fitness Tracker Nederlandse Handleiding Inhoudsopgave 1. Voordat u begint...3 1.1 Waarschuwing...3 1.2 Smartphone ondersteuning...3 1.3 Opladen...3 2. Koppelen met uw smartphone...3 1.1 De

Nadere informatie

Onze netwerk camera, DVR, NVR serie product en mobiele telefoon app ondersteunt P2P functie.

Onze netwerk camera, DVR, NVR serie product en mobiele telefoon app ondersteunt P2P functie. Welkom Bedankt voor het gebruik van onze P2P functie! Deze handleiding is ontworpen om u te helpen met de verbinding via P2P Lees alstublieft de volgende aanwijzingen voorzichtig door. * Voor de werking,

Nadere informatie

Installatie app. voor Android en IOS

Installatie app. voor Android en IOS Installatie app voor Android en IOS Installatie van de gdmss Lite / idmss Lite app Android: Ga naar Google Play Zoek naar gdmss. Kies dan voor gdmss Lite, deze is gratis en biedt genoeg functies voor de

Nadere informatie

LET OP! Lees dit eerst even door!

LET OP! Lees dit eerst even door! LET OP! Lees dit eerst even door! Als je op zoek bent naar de officiële website van WhatsApp klik dan hier. WhatsApp op PC is een onafhankelijk initiatief en is op geen enkele manier verwant aan WhatsApp

Nadere informatie

Werkinstructie/case. Revisie 2.1. Erik van Schaik

Werkinstructie/case. Revisie 2.1. Erik van Schaik Werkinstructie/case V ersie Revisie 2.1 Auteur Erik van Schaik Datum November 2015 Inhoudsopgave 1 Inleiding 3 2 Installeren van Prognotice Inspect 3 3 Klaarzetten van projecten in Prognotice Main 5 4

Nadere informatie

Tritel VAMO. Gebruikershandleiding

Tritel VAMO. Gebruikershandleiding Tritel VAMO Gebruikershandleiding Inhoudsopgave 1. VAMO 3 1.1 Identiteit 3 1.2 Bellen en gebeld worden 3 1.3 Gebeld worden 3 1.4 Voicemail 3 1.5 Gespreksbediening 4 1.6 Zakelijk of privé 4 1.7 Bellen bij

Nadere informatie

Implementatiepakket aan de slag met PatientHub

Implementatiepakket aan de slag met PatientHub Implementatiepakket aan de slag met PatientHub Goed gebruik Technische tips Goed gebruik PatientHub Hoe gebruikt u het? Om beveiligde videoconsulten te houden heeft u nodig: - Een computer (Windows 7 of

Nadere informatie

SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module. EVO Remote. MAN_000012_nl(EVO_Remote) Versie: 12.0 van Januari,

SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module. EVO Remote. MAN_000012_nl(EVO_Remote) Versie: 12.0 van Januari, SNELLE HANDLEIDING CONFIGURATIE VAN Wi-Fi Module EVO Remote MAN_000012_nl(EVO_Remote) Versie: 12.0 van Januari, 23 2019 T.b.v. de Livin flame pelletkachels 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Bedieningsvoorbeeld...

Nadere informatie

Ook de informatie die nodig is voor het nemen van beslissingen rond de bediening van de apparatuur komt aan de orde.

Ook de informatie die nodig is voor het nemen van beslissingen rond de bediening van de apparatuur komt aan de orde. Informatie Veel vmbo-leerlingen komen na het vmbo terecht in eenvoudige helpende functies of schoonmaak- en onderhoudswerkzaamheden. Vooral als leerlingen bij particulieren of in kleine settings werken,

Nadere informatie

Handleiding. Toezichthouder Server applicaties Plus. Beheer

Handleiding. Toezichthouder Server applicaties Plus. Beheer Handleiding Toezichthouder Server applicaties Plus Beheer Auteur: K. van der Weide BySpy Products B.V. 2018 versie 3.1 Inhoudsopgave Inhoudsopgave 2 Inleiding 4 Inloggen 5 Menu 5 Email naar smartphones

Nadere informatie

Het gebruik van EZcloud van UNV i.c.m. UNV netwerkrecorders Verkorte handleiding

Het gebruik van EZcloud van UNV i.c.m. UNV netwerkrecorders Verkorte handleiding Het gebruik van EZcloud van UNV i.c.m. UNV netwerkrecorders Verkorte handleiding 1. Account aanmaken Download en installeer de EZview app voor ios (Apple iphone) of Android gebaseerde smartphones. (PS.

Nadere informatie

AFO 139 Automatische export

AFO 139 Automatische export AFO 139 Automatische export 139.1 Inleiding Vubis Smart beschikt over de mogelijkheid om volledig automatisch beschrijvingen te exporteren naar bestanden op de server. Andere bibliotheken (ongeacht of

Nadere informatie

5/5 Red Carpet. 5/5.1 Inleiding

5/5 Red Carpet. 5/5.1 Inleiding Management Services 5/5 Red Carpet 5/5.1 Inleiding Met de overname van Ximian is Novell ook eigenaar geworden van de Red Carpet-technologie. Hoewel het aannemelijk is dat het hier een tijdelijke oplossing

Nadere informatie

Testplan. Versie 1 28-10-2004

Testplan. Versie 1 28-10-2004 Testplan Versie 1 28-10-2004 Groep 40 Naam Stud. nr. Vakken Jarry Claessen 0508757 SE, C2 Sebastian Groeneveld 0433350 SE, C2 Mark de Haas 0481832 SE Jeroen van Steenbergen 0515103 SE, C2 1 Unittestplan

Nadere informatie

Intramed OnLine instellen en gebruiken. Voor ipad en iphone

Intramed OnLine instellen en gebruiken. Voor ipad en iphone Intramed OnLine instellen en gebruiken Voor ipad en iphone Inhoudsopgave Hoofdstuk 1 Algemeen...1 1.1 Toegang tot inlogportalen...1 Hoofdstuk 2 Basic account...3 2.1 Microsoft Remote Desktop installeren

Nadere informatie

KraamZorgCompleet OnLine instellen en gebruiken. Voor Android tablet of telefoon

KraamZorgCompleet OnLine instellen en gebruiken. Voor Android tablet of telefoon KraamZorgCompleet OnLine instellen en gebruiken Voor Android tablet of telefoon Inhoudsopgave Hoofdstuk 1 Algemeen...1 1.1 Toegang tot inlogportalen...1 Hoofdstuk 2 Basic account...3 2.1 Microsoft Remote

Nadere informatie

Location Based Media

Location Based Media Location Based Media Introductie met 7scenes Minor Create Your Future Nieuwe Media 2028 Studiejaar 2011-2012 Inhoud 1 Inleiding en uitleg opdracht... 3 1.1 Wat gaan we doen?... 3 1.2 Over 7scenes... 3

Nadere informatie

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten.

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten. Versie 1.0 23.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Documenten Wat kan ik met Documenten? 2. Algemene definities Behandelen van terugkerende definities. 09 5.1 Documenten terugvinden Uitleg over

Nadere informatie

Waarneming.nl. Waarnemingen invoeren. met een smartphone. iobs voor ios (iphone) WinObs voor Windows ObsMapp voor Android

Waarneming.nl. Waarnemingen invoeren. met een smartphone. iobs voor ios (iphone) WinObs voor Windows ObsMapp voor Android Waarneming.nl Waarnemingen invoeren met een smartphone iobs voor ios (iphone) WinObs voor Windows ObsMapp voor Android Wat kunt u met de Waarneming.nl-apps Invoeren in het veld Datum en tijdstip automatisch

Nadere informatie

Handleiding Inventarisatie met Softwear

Handleiding Inventarisatie met Softwear Handleiding Inventarisatie met Softwear In verband met de verwerking van voorraden en mutaties in SAP is er het eea gewijzigd qua inventarisatie. Meest belangrijke wijziging is dat de voorraad NIET meer

Nadere informatie

DayGuide. DayGuide foto-app Handleiding

DayGuide. DayGuide foto-app Handleiding DayGuide foto-app Handleiding DayGuide Foto-app Handleiding Ontwikkelaar: CREAGY AG DayGuide is medegefinancierd door AAL Joint Programme en de volgende landelijke autoriteiten en Research & Development

Nadere informatie

Release notes:

Release notes: Applicatie: Alle Module: Algemeen (geen specifieke module) 62528 Statuslogs - contactpersoon - medewerker koppelingen Gecorrigeerde functionaliteit Voor de verschillende status logs is de medewerker /

Nadere informatie

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie