PSA (Personal Social Assistant)
Project aangeboden door Cédric Moyaert en Thomas Van de Steene voor het behalen van de graad van Bachelor in de Multimedia en communicatietechnologie Academiejaar 2008-2009
Voorwoord Als laatstejaarsstudenten van de opleiding Bachelor Multimedia en Communicatietechnologie aan Howest, Departement PIH, kregen wij de kans om mee te werken aan een masterproef van twee studenten uit de opleiding Master in de Industriële Wetenschappen: Electronica-ICT opties ICT en MIT. Deze studenten (Daute Van Nieuwenhuyse en Davy Decoo) hadden gekozen voor een masterproef met een sociale invalshoek: de PSA (Personal Social Assistant). Een smartphone aangepast aan mensen met een (licht) mentale handicap. Het programmeren en ontwikkelen voor deze doelgroep was uitdagender dan verwacht. Je moet namelijk steeds in het achterhoofd houden dat zaken die voor ons vanzelfsprekend lijken, voor onze doelgroep vaak minder voor de hand liggend zijn. Samen met het feit dat het .NET compact framework veel beperkingen met zich meebrengt, zorgden deze twee factoren voor een vaak uitdagende, doch voldoening gevende ervaring voor ons beiden.
Tijdens onze participatie in deze masterproef kregen we hulp, steun en medewerking van meerdere personen, welke we hier even willen bedanken. Eerst en vooral willen we onze stagebegeleiders Dhr. Steven Verstockt, Dhr. Daute Van Nieuwenhuyse en Dhr. Davy Decoo bedanken voor de mogelijkheid om deze stage te kunnen doen en ons bij te staan met kennis van zaken bij problemen en moeilijkheden. Evenals onze stagecoach Mvr. Ann Deraedt om ons steeds met raad en daad bij te staan bij vragen of onduidelijkheden in verband met de stage. Ook dank aan de verscheidene organisaties en bedrijven (VZW Den Ommeloop, Cera-Award, Howest…) voor hun interesse, advies en steun aan onze stage. En alle andere mensen die geholpen hebben om deze stage tot een goed einde te brengen. Cédric en Thomas
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Inhoud
Voorwoord ................................................................................................................................ 2 Inhoud ....................................................................................................................................... 3 1.
Inleiding .............................................................................................................................. 5
2.
Projectfiche ....................................................................................................................... 7
3.
Situatie bij aanvang van de stage ................................................................................ 9 3.1.
Reeds aanwezige projectstructuur......................................................................... 9
3.2.
Reeds aanwezige Componenten (Custom Components) .............................. 10
3.3.
Reeds aanwezige Functionaliteit.......................................................................... 13
3.3.1.
Scalable interface ........................................................................................... 13
3.3.2.
Contacten ........................................................................................................ 17
3.3.2.1.
Hoe werkt het ............................................................................................... 17
3.3.2.2.
Eigen nummer ingeven ............................................................................... 18
3.3.2.3.
Het belscherm............................................................................................... 19
3.3.3.
Photobased GPS .............................................................................................. 20
3.3.4.
Instellingen en administratie ........................................................................... 23
3.4.
Reeds aanwezige COTS: Commercial off-the-shelf ........................................... 25
3.4.1. 4.
Externe Text-To-Speech-Synthesizer .............................................................. 25
Takenpakket .................................................................................................................... 27 4.1.
Contacten en telefoneren .................................................................................... 28
4.1.1.
Opgebeld worden (Telephony API probleem) ........................................... 28
4.1.2.
Incoming call pop-up ..................................................................................... 30
4.1.3.
Contacten toevoegen ................................................................................... 32
4.1.4.
Input tijdens het bellen .................................................................................... 34
4.2.
Navigatie .................................................................................................................. 36
4.2.1.
“Keer om” probleem TomTom ....................................................................... 36
4.2.2.
Navigeren naar rechthoek van coördinaten .............................................. 38
4.3.
SMS ............................................................................................................................ 39
4.3.1.
SMS gateway .................................................................................................... 39
4.3.2.
Ongelezen Sms’jes ........................................................................................... 41
Cédric Moyaert en Thomas Van de Steene
3
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.3.3. SMS Weergeven en uitlezen ........................................................................... 43 4.4.
Instellingen/Settings ................................................................................................ 45
4.4.1. 4.5.
Agenda .................................................................................................................... 47
4.5.1. 4.6.
Quicksettings en functionaliteitsbeheer ....................................................... 45 Agenda ............................................................................................................. 47
Andere uitbreidingen ............................................................................................. 51
4.6.1.
Batterij functionaliteit ....................................................................................... 51
4.6.2.
Blokkeren van het toestel ............................................................................... 53
4.6.3.
Vermijden van meerdere actieve instanties ............................................... 56
4.6.4.
Progressbar ....................................................................................................... 58
4.6.5.
Colorpicker probleem ..................................................................................... 60
4.6.6.
Text-To-Speech implementatie ...................................................................... 62
4.6.7.
Database beheer op de PSA......................................................................... 63
4.6.8.
Vergrendeling functionaliteit ......................................................................... 64
4.6.9.
Snelkoppeling op het Today screen ............................................................. 66
4.6.10. Constant volume ............................................................................................. 68 4.6.11. Wekker ............................................................................................................... 70 4.6.12. Stand-by functionaliteit ................................................................................... 72 4.6.13. MediaPlayer...................................................................................................... 74 4.6.14. Wake up PSA .................................................................................................... 76 4.6.15. CameraCapture .............................................................................................. 78 5.
Testcases .......................................................................................................................... 81 5.1.
Testcase Ieper .......................................................................................................... 81
5.2.
TESTCASE KORTRIJK .................................................................................................. 85
5.3.
TESTCASE LANGDURIG GEBRUIK ............................................................................ 87
6.
Besluit ................................................................................................................................ 90
7.
Persoonlijke conclusies ................................................................................................... 92 7.1.
Gedeelde conclusies ............................................................................................. 92
8.
Bronvermelding ............................................................................................................... 93
9.
Lijst met figuren ............................................................................................................... 95
10.
Verklarende woordenlijst ........................................................................................... 97
11.
Bijlagen ......................................................................................................................... 99
Cédric Moyaert en Thomas Van de Steene
4
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
1. Inleiding
De vraag naar aangepaste ICT-middelen voor mensen met een beperking neemt steeds toe. Deze mensen zijn veelal niet mee met de laatste technologieën en ontwikkelingen. Vaak zijn toestellen die voor ons heel gewoon en vanzelfsprekend zijn, een ware uitdaging voor hen. Hoewel er reeds aangepaste toestellen bestaan voor deze mensen, zijn deze geen goede oplossingen. De vaak grote en lompe toestellen zien eruit als speelgoedtelefoons en benadrukken de technologische achterstand van de gebruiker. Daarom stellen wij onze PSA voor. De PSA (Personal Social Assistant) is een smartphone die, door middel van “scalable interfaces”, aangepast kan worden aan de mogelijkheden van de gebruiker. Aan het toestel zelf wordt (hardwarematig) niets gewijzigd, enkel de manier van gebruiken wordt eenvoudiger gemaakt. Met de PSA trachten we diegenen te bereiken die in staat zouden zijn om een smartphone te gebruiken indien de ‘user interface’ aan hun niveau aangepast zou worden. De beperkingen van de doelgroep kunnen van allerlei aard zijn. Zo zal de PSA kunnen worden gebruikt door mensen met een mentale beperking, mensen met een beperkte motoriek, (bijna-) analfabeten en anderen doelgroepen (bv. senioren) voor wie de mobiele telefoons, GPS toestellen... van vandaag de dag te ingewikkeld zijn. Concreet zijn personen met een (licht) mentale handicap de primaire doelgroep en senioren de secundaire doelgroep. Het doel van de PSA is de gebruiker zelfstandiger te laten leven, en zijn onafhankelijkheid te vergroten.
Cédric Moyaert en Thomas Van de Steene
5
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Een volwaardige smartphone In essentie is de PSA niets meer dan een bijkomende laag software die draait boven het besturingssysteem van bestaande (Windows) smartphones. Deze laag zorgt voor een veel gebruiksvriendelijkere gebruikersinterface waarmee men makkelijk alle functionaliteiten van een normale smartphone kan aanspreken. Er zijn ook een paar extra mogelijkheden toegevoegd speciaal voor ons doelpubliek. Text-to-speech: Aangezien een groot deel van de doelgroep van de PSA moeilijk of niet kan lezen, moet de gebruiker de mogelijkheid hebben om dingen te laten voorlezen. Photo based GPS: Navigeren naar een adres is een moeilijke procedure voor ons doelpubliek. Dankzij "Photo based GPS" maakt de PSA navigeren kinderspel. De navigatie start door het drukken op één enkele foto van de gewenste locatie. De gebruiker kan zelf nieuwe locaties toevoegen door het nemen van één foto en het opnemen van een ondersteunend geluidsbestand. In de achtergrond wordt dan de GPS-locatie bepaald en opgeslagen zodat de GPS-module er naartoe kan navigeren. Remote administration: De PSA is van op afstand beheerbaar door middel van een ondersteunende website. Via deze website kan de (mantel)zorgverlener/begeleider nieuwe contactpersonen, GPS-locaties, agenda-items... toevoegen. Wanneer het item zeer dringend op de PSA dient te worden toegevoegd kan dit ook gebeuren door middel van een eenvoudige SMS. Bovenstaande uitbreidingen zorgen er samen met een heleboel kleine aanpassingen voor dat de usability van de PSA een heel stuk hoger ligt dan die van de standaard smartphone.
Bij aanvang van de stage was er telefoniefunctionaliteit (je kon contacten en eigen ingevoerde nummers bellen), navigatiefunctionaliteit (je kon navigeren en een nieuwe locatie toevoegen) en kon men de instellingen (zoals de achtergrondkleuren en tekstgroottes) aanpassen.
De taak van Cédric en ik was de bestaande PSA software uit te breiden met extra functionaliteiten (zoals een Agenda), evenals de gehele applicatie zo stabiel mogelijk te maken. Voor meer info:
http://portfolio.howest.be/thomas.van.de.steene/stage/ http://portfolio.howest.be/cedric.moyaert/stage/
Cédric Moyaert en Thomas Van de Steene
6
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
2. Projectfiche
Projectfiche Stage Multimedia & Communicatie Technologie 2008-2009
1. Projectmedewerker(s): Van de Steene Naam: Thomas Voornaam: PSO Optie Naam: Voornaam: Optie:
ProjectID :
1283
Moyaert Cédric PSO
2. Begeleiders: Howest - Campus PIH Kortrijk Naam bedrijf : Begeleider van het bedrijf : Verstockt Naam: Steven Voornaam: Coach van MCT: Deraedt Naam: Ann Voornaam: 3. Projecttitel: PSA (Personal Social Assistant) - Een smartphone maken die bruikbaar is door mensen met (licht) mentale beperkingen en bejaarden
4. Projectopgave: De Personal Social Assistant (PSA) is een smartphone aangepast aan de noden van mensen met een mentale beperking. Bijna alle functionaliteit moet opnieuw worden geschreven en toegangelijker (gebruiksvriendelijker) gemaakt worden. Concrete opdrachten voor ons zijn: Text To Speech implementatie (voorlezen van alle dingen op het scherm) Agenda maken (zelf een volledig werkende agenda maken die makkelijk bruikbaar is door ons doelpubliek) Wekker maken Afwerking van bestaande functionaliteit (alle bugs eruit halen)
5. Input: 2 smartphones Reeds werkend : Contacten, navigatie (tom tom) en instellingen
Cédric Moyaert en Thomas Van de Steene
7
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 6. Output: TTS Agenda module en andere uitbreidingen/aanpassingen op het bestaande programma Onderhoud/optimalisatie van de reeds werkende functionaliteit + testing en evaluatie
7. Criteria om succes te meten: Text To Speech Agenda maken die onze proefpersoon makkelijk kan bedienen Problemen/bugs, die in de testcases aan het licht komen, aanpassen/verhelpen Programmatie en testing van de Todo’s (nuttige functionaliteit of oplossing voor een probleem die nog niet geprogrammeerd zijn vb: vergrendelen vd PSA, batterijstatus tonen, functionaliteitsbeheer [in- en uitschakelen van functionaliteiten zoals SMS, navigatie, Agenda...] en vele andere) Onderzoek naar nieuwe interessante uitbreidingen (mogelijks voor stage volgend jaar) 8. Wat het project niet realiseert: Een volledig afgewerkte Proof of Concept, er wordt volgend jaar zeker nog verder aan het project gewerkt.
10. Planning: ID 1
Milestones Batterijfunctie
Verantwoordelijk Moyaert Cédric
Timing (einddatum) 13/03/2009
2
Text To Speech
Van de Steene Thomas
20/03/2009
3
Databeheer module
Moyaert Cédric
27/03/2009
4
Quicksettings en functionaliteitsbeheer
Van de Steene Thomas
20/03/2009
5
Web sms dienst + sms module uitwerken
Moyaert Cédric
1/05/2009
6
Continue aanpassing en verbetering vh Van de Steene Programma adhv testresultaten en Thomas en TODOS Moyaert Cédric Implementatie TTS Agenda Van de Steene Thomas en Moyaert Cédric
7
12/06/2009
12/06/2009
8
Cédric Moyaert en Thomas Van de Steene
8
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
3. Situatie bij aanvang van de stage
Bij aanvang van deze stage waren bepaalde delen van het programma reeds gemaakt door Daute en Davy.
3.1.
Reeds aanwezige projectstructuur
Deze algemene structuur van het project was reeds aangemaakt. Main solution (volledige oplossing): MasterproefPSA Projects (onderdelen): 3.1.1. PSA.PSAData In deze package bevinden zich alle dataklassen. Dataklassen zijn beschrijvingen van de verschillende gebruikte én zelfgeschreven objecten. In deze dataklassen (1 per soort object) wordt voor elk object de eigenschappen, methodes en initialisaties beschreven. 3.1.2. PSA.PSADataAccess Dit zijn klassen die informatie uit een informatiebron (zoals een database) moeten halen en verwerken. Het verwerken kan bijvoorbeeld het opbouwen van een gestructureerd object (uit PSA.PSAData) zijn. 3.1.3. PSA.PSAControls Deze eigen gecustomiseerde componenten worden in deze package verzameld. 3.1.4. PSA.PSADevice Hier bevinden zich de GUI componenten en GUI functionaliteiten. Dit zijn hoofdzakelijk de schermen die de gebruiker te zien krijgt op de PSA. Elk individueel scherm heeft een bijhorende designcomponent die zich eveneens in deze package bevinden. 3.1.5. PSA.PSAManagers Dit zijn de services, de klassen die speciale functionaliteiten leveren zoals de telefoonfunctionaliteit, de Outlook functionaliteit ... Omdat deze diensten zeer complexe bewerkingen moeten uitvoeren, worden ze onderscheiden van andere packages. 3.1.6. PSA.PSAFullscreen Deze extern ontwikkelde package wordt gebruikt om de schermgrootte van de PSA blijvend te maximaliseren. Dit is nodig aangezien Windows Mobile bij verscheidene situaties (bv. inkomend telefoongesprek ...) de PSA-software minimaliseert. 3.1.7. PSA.PSALocation In deze door Microsoft ontwikkelde package zitten alle klassen die gebonden zijn aan de GPS-receiver-functionaliteit (vnl. het kunnen positioneren van de huidige locatie).
Cédric Moyaert en Thomas Van de Steene
9
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
3.2.
Reeds aanwezige Componenten (Custom Components)
Aangezien de standaard componenten van het .NET compact framework soms niet voldeden aan de eisen van het project, hebben Davy en Daute een aantal eigen componenten gemaakt, met als doel een vertrouwde omgeving vormen. Een tweede doel is het bieden van schaalbaarheid. Bij eigen componenten kan men zowel het grafische als het functionele aspect volledig controleren en zo de schaalbaarheid van de componenten en de PSA vergroten. Volgende componenten werden zelf geprogrammeerd: 3.2.1. AdvPSAControl Deze component vormt de basis van de verscheidene PSA-schermen. Bijna elk scherm in de PSA is op basis van deze component opgebouwd. Bij elk scherm wordt er gewerkt met een titel- en/of statusbalk. Hierin zijn de Home, Help en Batterij knop verwerkt, samen met de ondersteunende Zoom en Navigatie knoppen.
Figuur 1: AdvPSAControl
3.2.2. AdvIconButton en AdvIconButtonGroup AdvIconButtonGroup is een uitbreiding op de AdvPSAControl. Het wordt samen met de AdvIconButton gebruikt voor het opbouwen van een iconenmenu. De advIconButtonGroup is het achterliggend panel dat de verschillende iconen (advIconButton) correct positioneert.
Figuur 2: AdvIconButtonGroup met verschillende AdvIconButtons
Cédric Moyaert en Thomas Van de Steene
10
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.2.3. AdvKeyboard met AdvKeys Omdat de beheerders en enkelen van de betere gebruikers in staat moeten zijn om o.a. manueel contacten toe te voegen op de klassieke manier, is het noodzakelijk dat er een klein toetsenbord beschikbaar is. Aangezien het standaard Windows Mobile toetsenbord overlapt wordt door ons programma is het noodzakelijk er zelf één te programmeren. Het PSA toetsenbordje kan twee uitzichten aannemen: een standaard en een dynamisch zicht. Het standaard zicht is zeer gelijkaardig aan een klassiek toetsenbord. Men kan kiezen voor Azerty, Qwerty, en een alfabetisch geordende variant.
Figuur 3: Het standaard PSA toetsenbord
Het dynamisch zicht heeft de mogelijkheid om op een kleinere oppervlakte, veel grotere keys weer te geven. Door de grotere keys is het voor de gebruiker, die zonder stylus werkt, makkelijker om de gewenste toets in te tikken. Voor een geoefende gebruiker die met een stylus kan werken is het Dynamisch toetsenbord moeilijker dan het statische exemplaar, daar het dynamische niet in staat is alle letters en cijfers in één oogopslag weer te geven.
Figuur 4: Het dynamisch PSA toetsenbord
3.2.4. AdvColorPicker Een kleurenkiezer is een visuele lijst van kleuren. Je ziet geen namen maar kleurblokjes die telkens een bepaalde kleur visualiseren. Ook dit is een component die niet is ingebouwd in het .NET Compact Framework. Daar de verschillende gebruikte kleuren in het PSA-software programma instelbaar zijn, is een kleurenkiezer een handige functionaliteit.
Figuur 5: AdvColorPicker
Cédric Moyaert en Thomas Van de Steene
11
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap AdvPhonePopup De AdvPhonePop-up is een component ter ondersteuning van het telefoonboek. Het is een eigen pop-up die de gebruiker de keuze geeft naar welk nummer van een bepaald persoon hij wil telefoneren. Dit is nodig wanneer er voor één enkel contact meerdere telefoonnummers in zijn database zitten. Afhankelijk van de gekende nummers zal er een icoon met een huisje, een mobiel telefoon en een firma weergegeven worden. Indien op één van deze iconen wordt gedrukt, zal er naar het bijhorende nummer worden getelefoneerd.
Figuur 6: AdvPhonePop-up
AdvNavigatorPop-up De AdvNavigatorPop-up is een gelijkaardige functionaliteit als de AdvPhonePop-up. Ze verschilt hoofdzakelijk in de gebruikte iconen. De AdvNavigatorPop-up is de popup die de gebruiker de mogelijkheid biedt om een keuze te maken tussen meerdere navigatieadressen voor één navigatiecontact.
Figuur 7: : AdvNavigatorPop-up
Cédric Moyaert en Thomas Van de Steene
12
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
3.3.
Reeds aanwezige Functionaliteit
3.3.1. Scalable interface Om een zo groot mogelijke groep mensen te bereiken, maakt de PSA gebruik van scalable interfaces (schaalbare interfaces). Dit wil zeggen dat de interface (= de PSA-software) zich (d.m.v. instellingen) aanpast aan de mogelijkheden en de noden van de gebruiker. 3.3.1.1.
Visuele schaalbaarheid
Zoom-in / zoom-out laag De visuele schaalbaarheid is enerzijds geïmplementeerd als zoom-in en zoom-out functionaliteiten, zonder gebruik te maken van de traditionele geïmplementeerde vergrootglasfunctionaliteit (cfr. de werking van een klassiek vergrootglas).
Figuur 8: : Traditionele vergrootglasfunctionaliteit
De zoom-in en zoom-out functionaliteit die in de PSA geïmplementeerd is, past de inhoud van het scherm aan het gewenste zoomlevel aan. Bij een hogere zoom zullen minder gegevens op het scherm staan dan bij een lager zoom. Door middel van de bijhorende (links / rechts) navigatieknoppen, wordt de content verdeeld over meerdere schermen en treed er geen verlies aan informatie op.
Figuur 9: Zoom en navigatie functionaliteit
Cédric Moyaert en Thomas Van de Steene
13
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Het in- en uitzoomen van de verschillende onderdelen is niet beperkt tot de verschillende iconenschermen. Bij het merendeel van de PSAobjecten kan de grootte d.m.v. instellingen aangepast worden.
Figuur 10: Aangepaste header en footerbalk
Visuele schaalbaarheid d.m.v. zoom-functionaliteit is niet enkel handig voor zij die gezichtsproblemen hebben, maar ook voor mensen met fijnmotorische beperkingen. Door in te zoomen wordt het drukoppervlak automatisch groter. Lay-out-laag Een tweede vorm van visuele schaalbaarheid die in de PSA geïmplementeerd is, is de lay-out-laag. De lay-out-laag laat de gebruiker de mogelijkheid om de verschillende gebruikte kleuren en vormen aan te passen. Hierdoor kunnen slechtzienden, die nood hebben aan een groter kleurcontrast, of kleurenblinden het kleurenpallet van de PSA naar hun noden en wensen aanpassen.
Figuur 11: PSA met aangepast kleurenpallet
Cédric Moyaert en Thomas Van de Steene
14
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.1.2. Functionele Schaalbaarheid Functionele schaalbaarheid is de schaalbaarheid waarbij het PSA-toestel zich aanpast aan de capaciteiten van de gebruiker. De software start met een basislaag, met een basis aan functionaliteiten. Via de instellingen kan de gebruiker functies toevoegen of weglaten. De functionele schaalbaarheid is het beste voor te stellen als verschillende lagen functionaliteiten die boven elkaar staan. Naarmate er meer lagen worden geactiveerd, wordt de software uitgebreider. Dit schaalbaar model is gebaseerd op het scalable video coding-principe (SVC), een uitbreiding van de H.264/MPEG-4 AVC videocompressie standaard. SVC maakt gebruik van tijdelijke , kwaliteits- en spatiale schaalbaarheid om de bitstroom aan de videobeelden aan te passen aan de beschikbare bandbreedte en aan de noden en mogelijkheden van het specifieke toestel waarop de video wordt afgespeeld. (Overview of the Scalable Video Coding extension of the H.264/AVC standard, 2007) Basislaag Het iconenmenu is het eerste element dat de gebruiker te zien krijgt wanneer hij of zij de Smartphone opstart. Het iconenmenu zorgt ervoor dat de gebruiker op een gebruiksvriendelijke manier toegang krijgt tot verschillende onderdelen in het programma zoals de GPS-functie, contactlijst ... Deze onderdelen komen verder in dit dossier uitvoerig aan bod. Text-To-Speech laag De Text-To-Speech laag is de eerste laag die toegevoegd of verwijderd kan worden. Door middel van deze laag kan de gebruiker de spraakfunctionaliteiten van het toestel activeren. Deze laag wordt zowel gebruikt bij de ‘Help’ als bij de algemene functionaliteiten. Wanneer een gebruiker niet goed weet waar hij op moet drukken zal de ‘Help’ knop aan de hand van TTS elke druk mogelijkheid stap voor stap uitleggen. Op deze manier moet de gebruiker zelfstandig leren omgaan met de Help. Tekst laag
Figuur 12: Tekstlaag
Cédric Moyaert en Thomas Van de Steene
15
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap De tekstlaag zorgt ervoor dat gebruikers die kunnen lezen geen nood hebben aan de TTS-laag. Het laat de gebruikers toe om de verschillende namen, boodschappen ... van het scherm te lezen. Dit is een meerwaarde omdat zelf lezen sneller is dan laten voorlezen. De tekstlaag is individueel aanpasbaar. Gebruikers die moeite hebben om kleine tekst te lezen kunnen deze tekst vergroten ... Door deze laag kan het toestel eenvoudiger gebruikt worden in ‘silencemodus’ op plaatsen waar het geluid van een GSM niet hoort aan te staan (bv. een vergadering, optreden ...). En op luidruchtigere plaatsen (bv. op de bus, tijdens een voetbalmatch ...) waar het geluid van de TTSlaag niet 100% hoorbaar is. Extra functionaliteiten laag Iedere grote functie (bv. het telefoon gedeelte, het navigatie gedeelte ...) heeft een aantal kleinere functionaliteiten die eenvoudig aan- of uitgeschakeld kunnen worden. Zo zal een gebruiker die in staat is manueel telefoonnummers aan zijn toestel toe te voegen, deze mogelijkheid kunnen activeren, zal de persoon die kan schrijven de mogelijkheid hebben om Sms-berichten te sturen ... Door gebruik te maken van deze extra functionaliteitenlagen kan het toestel omgevormd worden van een eenvoudig basistoestel naar een toestel met uitgebreide functionaliteiten. Hierdoor kan een grotere range aan gebruikers bereikt worden. En wordt de gebruiker ondersteund in zijn groeiproces m.b.t. het gebruik van het toestel.
Cédric Moyaert en Thomas Van de Steene
16
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.2. Contacten Het is belangrijk dat onze doelgroep op een zeer eenvoudige manier iemand kan telefoneren uit zijn omgeving. Daarom is het telefoonboek ontwikkeld. Het telefoonboek is een iconengebaseerde lijst van contacten met minstens 1 gekend telefoonnummer.
Figuur 13: : Het telefoonboek
3.3.2.1. Hoe werkt het Het telefoonboek bevat een lijst van foto’s waarin je kunt navigeren, inzoomen, uitzoomen ... met behulp van de Navigatiebar. Het eerste icoon in de lijst dient om zelf een contactnummer in te geven. Hiervoor wordt een eigen nummerpaneel naar voren gebracht. (Zie: 6.3.3 Eigen nummer ingeven) Er zijn twee soorten contacten mogelijk in de lijst: -
Een contact met één nummer. Wanneer er gedrukt wordt op een dergelijke foto zal de contactpersoon meteen opgebeld worden.
-
Een contact met meerdere nummers. Dit kan een vast nummer, een mobiel nummer en/of een nummer van het werk zijn.
Figuur 14: Contact met meerdere telefoonnummers
Cédric Moyaert en Thomas Van de Steene
17
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Wanneer we drukken op een contact met meerdere nummers zal er een keuze verschijnen (in de vorm van iconen). Aan de hand van deze iconen kan je kiezen welk nummer je wilt gebruiken.
=> Het vaste nummer => Het mobiele nummer => Het werknummer Na het drukken op de gewenste keuze wordt de contactpersoon opgebeld met het gekozen nummer. Een contactpersoon zonder foto (aangeduid met ) wordt tekstueel ondersteund door de contactpersoon zijn naam. Dit betekent dat deze gebruiker wel een nummer heeft maar er geen foto is opgeslagen op de PSA. Deze foto kan achteraf nog toegevoegd worden door de gebruiker zelf of een beheerder. De werking is hetzelfde als deze in de vorige 2 puntje. Een dergelijk contactpersoon kan dus ook meerdere nummers hebben. 3.3.2.2.
Eigen nummer ingeven
Wanneer er op het ‘toetsenbord’-icoon gedrukt wordt, verschijnt er een eigen nummer-ingeefscherm. Dit scherm vervangt en vereenvoudigt het standaard Windows Mobile scherm dat gebruikt wordt bij het ingeven van een nummer of het telefoneren naar een persoon. We kunnen immers onmogelijk gebruik maken van het standaard Windows Mobile belscherm. Het bevat te veel knoppen, bestaat uit te kleine tekst, heeft te veel mogelijkheden … Een dergelijk scherm is veel te complex voor de primaire PSA-doelgroep.
Figuur 15: Windows Mobile nummer-ingeef scherm
Cédric Moyaert en Thomas Van de Steene
Figuur 16: PSA nummer-ingeefscherm
18
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.2.3. Het belscherm Ook het belscherm is vervangen door een eigen implementatie:
Figuur 17: PSA Belscherm
Wanneer dit scherm verschijnt, weet de gebruiker meteen dat hij aan het telefoneren is. Dit wordt weergegeven d.m.v. tekst en een duidelijke foto. Het belscherm bevat 1 knop, namelijk de ‘Ophangen’ knop. Wanneer hierop wordt gedrukt, zal de PSA het telefoongesprek beëindigen. Dit scherm maakt telefoneren veel eenvoudiger en gebruiksvriendelijker dan het Windows Mobile belscherm.
Cédric Moyaert en Thomas Van de Steene
19
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.3. Photobased GPS Een van de optionele technologieën die steeds vaker in een smartphone worden ingebouwd zijn GPS-ontvangers, vaak in combinatie met bijhorende navigatiesoftware zoals route66, TomTom, …. Het nut van een GPS-toestel is reeds ruim bewezen, en ook voor onze primaire doelgroep (die geen traditionele GPS-gebruikers zijn), zijn er mogelijkheden. We hebben getracht om het navigeren naar personen/plaatsen even eenvoudig te houden als het bellen naar personen. Wanneer men met een GSM iemand wil bellen selecteert men in de lijst met contactpersonen het juiste contact. Eventueel dient de gebruiker nog te kiezen uit één van de verschillende telefoonnummers. Bij het navigeren kan de gebruiker kiezen uit de verschillende locaties (thuis, werk …). Naast het selecteren van bepaalde locaties, moet onze gebruiker ook in staat zijn om op een eenvoudige manier eigen, nieuwe, locaties toe te voegen. Hiervoor zijn een 2-tal methodes ontwikkeld: 1 klassieke manier waarbij men het adres dient in te geven, en een 2e methode waarbij de gebruiker op de gewenste locatie een foto neemt en het systeem naast de foto ook de GPScoördinaten mee opslaat. Deze laatste methode staat verder uitvoerig beschreven. 3.3.3.1.
Navigeren naar bestaande locaties
Op het PSA-navigatie-hoofdscherm krijgt men een overzicht van alle navigatiecontacten/plaatsen waarvoor locatiegegevens beschikbaar zijn. Wanneer men naar een reeds opgeslagen contact / plaats wil navigeren volstaat het om op de respectievelijke foto te drukken. Indien er zich in de database voor dit contact slechts 1 adres bevindt, zal de navigatie automatisch starten. Indien er meerdere adresgegevens beschikbaar zijn (bv locatie werk en locatie thuis) zal een klein iconbased popup-screen vragen naar welke locatie de gebruiker wil navigeren. Na manuele keuze van de gebruiker zal de navigatie automatisch starten.
Figuur 18: overzicht van de verschillende navigatieschermen
Cédric Moyaert en Thomas Van de Steene
20
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.3.2.
Toevoegen van nieuwe locaties
De gebruiker moet in staat zijn om eigen locaties toe te voegen. Hiervoor hebben we binnen het PSA-project twee verschillende mogelijkheden ontwikkeld. Zij die in staat zijn om adressen en namen in te typen d.m.v. een onscreen-keyboard (niet-analfabeten) kunnen nieuwe navigatiecontacten op deze (klassieke) wijze toevoegen. Indien gewenst kan de gebruiker nog een foto maken van de locatie / contactpersoon, die dan gebruikt zal worden o.a. op het overzichtsscherm. Voor zij die niet in staat zijn om nieuwe navigatiecontacten op “klassieke” wijze toe te voegen (o.a. analfabeten) hebben we binnen het PSA een inventief, doch eenvoudig systeem ontwikkeld. De enige voorwaarden om dit systeem te gebruiken zijn: 1. de gebruiker bevindt zich op de locatie in kwestie 2. de gebruiker staat zodanig gepositioneerd dat de (ingebouwde) GPS-receiver de locatie kan bepalen. Eenmaal aan deze twee voorwaarden voldaan is kan de gebruiker een nieuwe locatie toevoegen d.m.v. het maken van een foto, en het opnemen van een geluidsfragment. De PSA bepaald zelf de GPScoördinaten, en slaat deze, samen met een verwijzing naar de foto en het geluidsfragment op in de database. Vanaf nu kan de gebruiker naar deze nieuw-toegevoegde locatie navigeren.
Figuur 19: Toevoegen van een nieuwe navigatielocatie
Cédric Moyaert en Thomas Van de Steene
21
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Het geluidsfragment is nodig daar de gebruiker niet in staat is de naam van de locatie in te typen. Hierdoor zal de TTS-synthesizer tijdens het overlopen van de verschillende navigatie- contactmogelijkheden geen gebruik kunnen maken van een ingetypte naam, en kan hij deze bijgevolg niet voorlezen. In plaats hiervan zal bij de eigen toegevoegde contacten het geluidsfragment worden afgespeeld. 3.3.3.3.
Databasestructuur
De navigatiecontacten/plaatsen worden op de smartphone opgeslagen in een kleine database. Hiervoor worden 2 tabellen gebruikt: tblContact 1 en tblAddress. TblContact dient om de afzonderlijke contacten op te slaan. TblAddress wordt gebruikt om de eigenlijke adressen op te slaan. Via de kolommen contactAddressHome, contactAddressWork en contactAddressOther wordt de link tussen beide tabellen bestendigd. Hierdoor is het aantal adressen per contactpersoon beperkt tot 3, hetgeen voor de meeste contacten geen problemen kan veroorzaken. Binnen de tabel tblAddress kan een locatie op 2 verschillende manieren worden opgeslagen: via een klassiek adres (bv. Graaf Karel de Goedelaan 5, 8500 Kortrijk) dan wel via de GPS-coördinaten. De gebruikte opslagwijze (klassiek / GPS-coördinaten) is adresafhankelijk en beide methoden kunnen door elkaar gebruikt worden.
Figuur 20: overzicht structuur database photobased GPS
1
TblContact is dezelfde databasetabel als die waar de telefoonnummers worden opgeslagen. Veel telefoon- en navigatiecontacten komen immers overeen, hierdoor wordt er o.a. opslagcapaciteit bespaard.
Cédric Moyaert en Thomas Van de Steene
22
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.4. Instellingen en administratie De PSA is volledig aanpasbaar aan de gebruiker. Eigenschappen zoals de grootte van de iconen, de kleuren, het lettertype … zijn allemaal instelbaar. Helaas zijn dit elementen die voor een gebruiker met beperkingen te moeilijk zijn. Daarom moet de PSA op voorhand ingesteld worden of ingesteld worden door een begeleider/verzorger. Om de instellingen te bereiken moet u op het “Instellingen” icoon drukken.
Figuur 21: Instellingen icoon in het hoofdmenu
Wanneer het icoon is geactiveerd moet er ook een wachtwoord ingevuld worden. Eventueel kan dit weggelaten worden in het geval dat de PSA gebruikt wordt door mensen die wel goed kunnen omgaan met smartphones en ook weten hoe ze deze moeten instellen.
Figuur 22: Wachtwoordscherm
Figuur 23: Keuzescherm
Na het indrukken van het correcte wachtwoord heeft men twee keuzes: De PSA gaan instellen naar wens. Uit de PSA laag gaan en gebruik maken van Windows Mobile.
Cédric Moyaert en Thomas Van de Steene
23
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 3.3.4.1. Instellingen Wanneer men kiest om de instellingen te wijzigen krijgt men een scherm met talrijke soorten instellingen voor allerlei visuele en functionele lagen. Deze zijn ingedeeld in tabs, iedere laag zijn eigen tab met eigen instellingen.
Figuur 24: Instellingenscherm
Enkele algemene instellingen zijn: • • • • • • •
Voor- en achtergrondkleur Stijl van het programma, tekst,… Marges, verhoudingen, breedtes en hoogtes Opmaken van de iconen (soort, grootte,…) Text-To-Speech ondersteuning Tekst ondersteuning Administratie instellingen (wachtwoord,…)
Cédric Moyaert en Thomas Van de Steene
24
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
3.4.
Reeds aanwezige COTS: Commercial off-the-shelf
Sommige oplossingen werden bekomen via COTS (commercial off-the-shelf) producten. Dit zijn vooraf geprogrammeerde producten die hergebruikt kunnen worden voor de PSA. Het gebruik van goede COTS zorgt voor tijdsbesparing. 3.4.1. Externe Text-To-Speech-Synthesizer Een eerste, voor de hand liggende, gebruikte COTS is de TTS-synthesizer. Het ontwikkelen van goede TTS-synthesizers is een complex werk, en het ligt volledig buiten de scoop van deze masterproef. Daar een aantal kwalitatief goede TTS-synthesizers op de markt zijn, is er voor geopteerd om één van deze TTS-synthesizers te implementeren.
3.4.2. Telephone API (TAPI) Deze API (Application Programming Interface) biedt de mogelijkheid om de inwendige functies omtrent het telefoneren van de Smartphone aan te spreken. Dit is echter niet eenvoudig. TAPI werd oorspronkelijk gebouwd in C++. Dit is een behoorlijk moeilijke programmeertaal maar aan de hand van C#-wrappers is er eenvoudige toegang tot de TAPI. De TAPI werkt echter enkel om zelf te telefoneren naar een persoon (Cogswell, 2008).De omgekeerde richting, het opgebeld worden, wordt aan de hand van een andere oplossing uitgevoerd. Dit omdat het opgebeld worden door middel van TAPI niet compatibel is voor C# Mobile. Vele ontwikkelaars zijn hiervan getuige geweest, nadien is dit officieel verklaard geweest bij Microsoft MSDN. (Microsoft, 2007). 3.4.3. Versiebeheer Met meerdere personen aan hetzelfde project werken brengt heel wat problemen met zich mee. Naast een hoop organisatorische moeilijkheden (zoals vergaderingen, taakverdelingen, deadlines …), brengt een programmeerproject een extra moeilijkheid met zich mee: hoe zorg je dat iedereen steeds de laatste versie heeft? Om de x-aantal dagen een samengestelde versie maken is niet echt praktisch. Vaak is er bepaalde functionaliteit dubbel geprogrammeerd en het samensmelten duurt zeer lang. Het interval tussen de samensmeltingen diende verkleind te worden en indien mogelijk geautomatiseerd. Dit heet: “version control” Andere benamingen zijn “revision control”, “source control” en “(source) code management”.
Cédric Moyaert en Thomas Van de Steene
25
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Voor het PSA-project hebben we gekozen voor een Subversion-server kortweg SVN-server. Subversion is een open-source, client-server model, version control system dat besturingssysteem- en programmeertaal-onafhankelijk werkt. Een bijkomend voordeel aan SVN is dat dit systeem bij gewijzigde tekstdocumenten (zoals 99% van de Visual Studio-files zijn) er zelfs in slaagt om een tekstfile die door 2 verschillende programmeurs tegelijkertijd is gewijzigd zonder problemen samen te laten smelten. “Client-server model” systemen (zoals de door ons gebruikte SVN-server) laten toe om met meerdere gebruikers aan een bepaalde reeks files te werken. Centraal staat een server die het volledige proces beheert. Alle updates (in 2 richtingen) verlopen via deze server. De verschillende programmeurs dienen niet met elkaar in contact te komen om versies uit te wisselen.
Figuur 25: Version Control System - Client-Server Model
Door gebruik te maken van een Client-server version server is het ook mogelijk om op een eenvoudige manier een dagelijkse backup te maken van de volledige sourcecode (Deze staat volledig op 1 centrale plaats).
Cédric Moyaert en Thomas Van de Steene
26
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4. Takenpakket
Onze initiële hoofdtaak was m-health (mobile health), de smartphone gebruiken met een medische invalshoek (medicatiewekker, noodnummers, algemene medische info bijhouden …). Wij moesten dit aspect uitwerken vanaf nul, wat dus betekende dat wij literatuurstudies moesten doen rond m-health, kijken wat interessant is voor ons, een voorstel maken en (indien goedgekeurd) dit uitwerken. Later in de stage is gebleken dat er meer interesse was voor een agenda en hebben we dus een nieuwe hoofdtaak gekregen, namelijk de agenda functionaliteit ontwikkelen. Naast deze hoofdtaak hebben we ook een heleboel verschillende (kleinere) opdrachten gemaakt. Aangezien deze taken meestal onafhankelijk van elkaar stonden, hebben we hier alle gemaakte taken per functionaliteit (menuitem) gesorteerd.
Cédric Moyaert en Thomas Van de Steene
27
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.1.
Contacten en telefoneren
4.1.1. Opgebeld worden (Telephony API probleem) 4.1.1.1.
Omschrijving
Voor de belfunctionaliteit maakt het programma gebruik van een externe API (Application Programming Interface), namelijk TAPI (Telephony API). Hiermee konden we bellen en opgebeld worden, binnenkomende gesprekken accepteren of weigeren.
maar
geen
Hiervoor was er dus dringend een oplossing nodig.
4.1.1.2.
Oplossingsmethode
Oorspronkelijk was het de bedoeling om net zoals bij het zelf telefoneren, gebruik te maken van TAPI. Ontelbare zoekacties omtrent dit probleem leverden geen werkend resultaat op. Zelfs Microsoft heeft toegegeven dat er veel problemen zijn met deze oplossing. Dit heeft ons ertoe geleid om deze oplossing te laten voor wat het is. Vervolgens hebben wij contact opgenomen met OpenNETCF omdat zij een Telephony Library hebben ontwikkeld die mogelijks ons probleem zou oplossen. Wij kregen echter vrij snel een antwoord terug waarin vermeld werd dat deze library niet meer verder ontwikkeld wordt. Waarschijnlijk hebben zij met dezelfde problemen als ons te kampen gekregen. Vervolgens hebben we besloten om een andere weg in te slaan: het simuleren van het drukken op de rode en groene knop om respectievelijk gesprekken te weigeren en te accepteren. Deze oplossing bleek succesvol te zijn op enkele kleine bugs na die we ook hebben opgelost (het telefoon venster kwam op de voorgrond bij het drukken op de groene knop, deze hebben we gewoon verborgen via code).
Cédric Moyaert en Thomas Van de Steene
28
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 26: Knopsimulatie code
Deze oplossingsmethode bracht andere problemen met zich mee, waarover later meer.
4.1.1.3.
Bronnen
http://social.msdn.microsoft.com/forums/enUS/netfxcompact/thread/a91d7975-cfe6-4479-b73e-169ec3a14762/ http://www.opennetcf.com/cf/products/telephony.ocf
4.1.1.4.
Tijdsduur
Begonnen: 09/03 Beëindigd: 13/03
4.1.1.5.
Verantwoordelijke stagiairs(s)
Thomas en Cédric
Cédric Moyaert en Thomas Van de Steene
29
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.1.2. Incoming call pop-up 4.1.2.1.
Omschrijving
Bij het opgebeld worden komt er nog steeds een pop-up op het scherm. Deze zit zodanig ingebakken in het Windows Mobile besturingssysteem dat deze niet volledig kan worden uitgeschakeld. Daarom is het de bedoeling om de pop-up zo onopvallend mogelijk te verbergen.
Figuur 27: Windows incoming call pop-up
4.1.2.2.
Oplossingsmethode
Een eerste mogelijkheid om dit probleem op te lossen zou eruit bestaan op het proces “cprog.exe” te killen, omdat dit proces verantwoordelijk is voor de pop-ups. Deze oplossing bleek echter niet haalbaar te zijn, aangezien dit proces ook de volledige telefonie functionaliteit van het toestel bepaalt. Wanneer dit proces wordt beëindigd verliest de smartphone zijn volledige belfunctionaliteit. Via de functie “ShowWindow” kan men de “State” van een form van eender welk proces, aanpassen. Men moet eerst via de functie “FindWindow” de correcte handle tot het venster verkrijgen. Deze kan men dan doorgeven aan de “ShowWindow” functie. In dit geval wordt de handle van de form “Telefoon – inkomend” opgevraagd en wordt dit venster geminimaliseerd.
Cédric Moyaert en Thomas Van de Steene
30
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Wanneer er iemand belt wordt er een event afgevuurd. Vanaf dit punt wordt de pop-up om de seconde terug geminimaliseerd, totdat het gesprek beëindigd wordt.
Figuur 28: Call pop-up code
Via de parameter “nCmdShow” kan men de nieuwe formstate van het venster opgeven. Een overzicht van mogelijke parameterwaarden kan men terugvinden op de MSDN website. 4.1.2.3.
Bronnen
http://msdn.microsoft.com/en-us/library/ms633548(VS.85).aspx
4.1.2.4.
Tijdsduur
4.1.2.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
31
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.1.3. Contacten toevoegen 4.1.3.1.
Omschrijving
Voor de langdurige testcase moesten er hier en daar nog een paar dingen gemaakt/veranderd worden. Één daarvan was de gebruiker de mogelijkheid bieden zelf contacten toe te voegen. De bedoeling was om op een gelijkaardige manier te werken als met locaties toevoegen, namelijk: een nummer ingeven, een foto nemen (niet verplicht) en dan een ondersteunende tekst inspreken.
4.1.3.2.
Oplossingsmethode
Aangezien dit grotendeels hetzelfde was als een nieuwe locatie toevoegen heb ik mij hierop gebaseerd. Het deel waar de gps-locatie wordt berekend heb ik vervangen door code die grotendeels gebaseerd is op frmBelmenu.
Figuur 29: Hoofdmenu tot nieuw contact
Cédric Moyaert en Thomas Van de Steene
32
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 30: nieuw contact invoeren
De gebruiker voert eerst een nummer in, eenmaal dit gebeurd is kan hij op de knop “OK” klikken om naar het volgende scherm te gaan. Hier kan hij/zij een foto nemen, maar dit is niet verplicht. Indien de gebruiker geen foto neemt wordt in de contactenlijst de standaardfoto getoond voor dit contact. Het nemen van een foto gebeurd door de later besproken CameraCaptureDialog. Na het al dan niet nemen van een foto kan de gebruiker doorgaan om een ondersteunende tekst op te nemen. Eenmaal dit gedaan is, wordt alles in de database geplaatst en komt de gebruiker terug op het hoofdmenu.
4.1.3.3.
Tijdsduur
Begonnen: 13/05 Beëindigd: 14/05 4.1.3.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
33
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.1.4. Input tijdens het bellen 4.1.4.1.
Omschrijving
Tijdens de langdurige testcase is volgend probleem naar boven gekomen: de gebruiker heeft geen mogelijkheid om input te geven tijdens een telefoongesprek. Een concreet voorbeeld hiervan is wanneer de gebruiker naar zijn voicemailnummer belt. De computerstem aan de andere kant vraagt dan om een nummer in te geven voor uw taalkeuze. Dit was onmogelijk op het psa toestel aangezien de gebruiker geen toetsenbordje had. De todo was dan ook wederom: zorg dat dit wel kan.
4.1.4.2.
Oplossingsmethode
Aangezien ik niet direct wist of dit een haalbare todo zou zijn heb ik eens met het toestel (in Windows Mobile) naar mijn voicemail gebeld. Van zodra ik begon met bellen verscheen er een toetsenbordje op mijn scherm om input te geven. Het moest dus mogelijk zijn om dit te doen via code. Ik ben beginnen zoeken naar code voorbeelden en heb verscheidene mogelijkheden afgelopen (zoals simulatie van knoppen, SendIput methode, …) vooraleer ik op de correcte term kwam voor deze input. Dit gebeurd aan de hand van DTMF (Dual Tone Multi-Frequency) en eenmaal ik hierop begon te zoeken heb ik gevonden dat dit geïmplementeerd zit in de TAPI library (de “SendDigits” methode). Hoewel wij een C# wrapper hadden voor TAPI (mobileTapi), bleek deze functie niet beschikbaar in de wrapper klasse. Ik heb toen zelf geprobeerd om deze methode te implementeren en na heel wat andere functies te bekijken en veel te proberen is het mij eindelijk gelukt. Deze code is nu ook beschikbaar via de clsPhoneManager klasse (de “SendDTMFDigits” methode).
Cédric Moyaert en Thomas Van de Steene
34
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Eenmaal ik de code had, hoefde ik enkel nog de GUI te maken. Deze heb ik gebaseerd op het reeds bestaande toetsenbordje. Ook heb ik een extra knop geplaatst op het belscherm om het toetsenbordje tevoorschijn te laten komen. Standaard ziet de gebruiker enkel dit scherm.
Figuur 31: Aangepast belscherm
Pas wanneer hij op de knop ‘Toetsenbord” duwd komt hij op dit scherm.
Figuur 32: Beltoetsenbord
4.1.4.3.
Tijdsduur
Begonnen: 20/05 Beëindigd: 29/05
4.1.4.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
35
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.2.
Navigatie
4.2.1. “Keer om” probleem TomTom 4.2.1.1.
Omschrijving
De gebruikte TomTom Navigator is de standaard GPS module die op de smartphone stond geïnstalleerd. Net zoals de meeste GPS-toestellen, gaat de TomTom navigator bij het inslaan van een verkeerde weg in eerste instantie vragen om te keren. Pas enige tijd later (ongeveer 30 seconden) herberekent het GPS toestel de route. Wij weten dat het GPS-toestel even de draad kwijt is, en straks wel zal herberekenen. Mensen met een lichte mentale handicap weten dit meestal niet, en ervaren deze “keer om” eerder als een bevel (zoals “sla linksaf). Het plotse omkeren (in drukke straten) kan voor gevaarlijke situaties zorgen. Er moet dus op één of andere manier vermeden worden dat de GPS module vraagt om te keren en zo vlug mogelijk herberekent. 4.2.1.2.
Oplossingsmethode
Ik heb eerst en vooral de TomTom SDK uitgepluisd, maar ik vond niets terug in verband met het omkeren al dan niet uitspreken of het herberekenen vlugger te laten verlopen. Bij het verder zoeken naar een oplossing heb ik geleerd dat je een eigen stem kunt maken voor GPS toestellen en ben ik op het idee gekomen om het bestandje Uturn.ogg (het bestand dat de tekst “Keer om” afspeelt wanneer de bestuurder moet omkeren) te vervangen door stilte. Het probleem hiermee was dat de GPS nog steeds niet herberekent en het visueel traject niet klopt met wat er gezegd wordt. Wat mogelijks nog meer verwarring kan veroorzaken. Enige tijd later heb ik me nog eens over dit probleem gebogen en kwam ik op het idee om een volledig eigen stem te maken ingesproken door onze Text-To-Speech synthesiser. Dit zorgde er niet alleen voor dat ik alle commandos kon vervangen door betere (aan het doelpubliek aangepaste) commandos, het verbeterde ook de algemene samenhang van het toestel.
Cédric Moyaert en Thomas Van de Steene
36
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 33: De nieuwe TomTom Navigator stem
Het toestel bevat nu twee nieuwe Tomtom Navigator stemmen: één waarbij “keer om” vervangen is door “Probeer voorzichtig om te keren” en één waarbij het vervangen is door stilte. Uitgebreide testen dienen aan te duiden welke van de twee stemmen de gebruikers verkiezen.
4.2.1.3.
Bronnen
http://www.pinkelotje.nl/tomtom.html http://forum.pocketinfo.nl/f19/navigatiesoftware/f276/windows-mobilenavigatiesoftware-aanraakscherm/f23/tomtom-navigator/f105/tomtomplusdiensten-add/53989-eigen-stemmen-op-tomtom-5-a.html
4.2.1.4.
Tijdsduur
Begonnen: 24/03 Beëindigd: 27/03
4.2.1.5.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
37
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.2.2. Navigeren naar rechthoek van coördinaten 4.2.2.1.
Omschrijving
Navigeren gebeurt naar een adres of naar coördinaten, en eenmaal u het desbetreffende adres of coördinaat hebt bereikt krijgt u van de GPS module te horen dat u bent aangekomen. Bij de testcase in Ieper kregen we echter de commentaar dat de GPS module dit niet zei, terwijl Taco (de proefpersoon) wel degelijk bij de persoon was aangekomen. 4.2.2.2.
Oplossingsmethode
Een mogelijke oplossing aangeleverd door Steven was om te navigeren naar een rechthoek van coördinaten. Eenmaal de gebruiker zich in deze rechthoek bevond, zou hij te horen krijgen dat hij aangekomen was. Ik heb hiervoor ook nogmaals de volledige SDK van TomTom doorzocht maar niets gevonden dat mij kon helpen bij het navigeren naar een rechthoek aan coördinaten. Een paar dagen later heb ik dan een eindwerk gekregen via Daute van een masterstudent die dit zelf geschreven had. Hij keek bij iedere positie update of hij reeds in de rechthoek was. Na overleg met Daute heb ik dit uiteindelijk toch niet geïmplementeerd. Blijkbaar stonden op de testcase de medewerkers niet op hun exacte locatie. Het navigeren naar een rechthoek kan ook nefast zijn bij het navigeren in een stadsgebied waar veel straten dicht bijeen liggen en de gebruiker bijvoorbeeld in een parallelle straat staat maar wel reeds binnen de rechthoek valt en dus zogezegd is aangekomen.
4.2.2.3.
Tijdsduur
Begonnen: 25/03 Beëindigd: 27/03
4.2.2.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
38
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.3.
SMS
4.3.1. SMS gateway 4.3.1.1. Omschrijving Via het sms-push systeem kunnen berichten met een specifieke code via sms worden verstuurd naar één of meerdere PSA’s. Het moet dus mogelijk zijn om via de beheer-website deze informatie te versturen.
4.3.1.2. Oplossingsmethode Om dit systeem te doen werken wordt er best gebruik gemaakt van een dienst zoals die van MobileWeb. Zij hebben een kant en klare service en hebben ook de nodige contacten met sms-providers. Zo kan men bij deze service pakketten sms’jes aan een voordelig tarief aankopen. Via een API kunnen klanten dan sms’en vesturen. Alles verloopt via een webservice waar men parameters kan aan meegeven.
Figuur 34: SMS gateway
Cédric Moyaert en Thomas Van de Steene
39
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Ik heb ter illustratie hiervan een applicatie gemaakt die louter als voorbeeld dient, aangezien we deze service nog niet zullen implementeren in deze proof-of-concept.
Figuur 35: SMS gateway code
4.3.1.3.
Tijdsduur
Begonnen: 16/03 Niet geïmplementeerd (wél werkend voorbeeld beschikbaar)
4.3.1.4.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
40
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.3.2. Ongelezen Sms’jes 4.3.2.1. Omschrijving Sms’jes die ontvangen worden wanneer “PSADevice” draait worden automatisch verwerkt. Sms’jes die ontvangen worden wanneer onze eigen softwarelaag niet draait worden echter niet automatisch verwerkt. 4.3.2.2. Oplossingsmethode Via reeds bestaande Windows Mobile klassen kan men nieuwe sms’jes opvangen en de inhoud ervan opvragen.
Indien onze softwarelaag niet draait moeten we echter proberen achteraf toegang te krijgen tot de Inbox van het besturingssysteem. Dit is niet mogelijk via de C# klassen die microsoft aanbiedt. Hier moet men gebruik maken van de Microsoft MAPI (Messaging Application Programming Interface). Dit is echter een C++ omgeving. Gelukkig bestaat er een opensource-project genaamd “MAPIdotnet” die uit een C# .NET-wrapper bestaat voor MAPI, wat ons héél wat tijdrovend werk uitspaart. Het gebruik van deze wrapper bleek achteraf toch niet zo simpel te zijn omdat deze niet gedocumenteerd is.
Figuur 36: SMS ophaal code
Cédric Moyaert en Thomas Van de Steene
41
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.3.2.3. Bronnen http://sourceforge.net/projects/mapidotnet/ http://www.codeproject.com/KB/mobile/PocketPCandSmartphone.aspx 4.3.2.4.
Tijdsduur
Begonnen: 16/03 Beëindigd: 17/03
4.3.2.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
42
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.3.3. SMS Weergeven en uitlezen 4.3.3.1. Omschrijving Naast her verwerken van binnenkomende berichten met codes, zou het handig zijn om normale berichten te kunnen weergeven. Er moet dus een soort eigen inbox worden gemaakt. 4.3.3.2. Oplossingsmethode Ik heb een eigen Control gemaakt, genaamd “AdvSmsReadControl”. Deze erft over van “PSAControl” waardoor de navigatietoetsen om tussen de verschillende SMS’jes te bladeren, reeds aanwezig waren. Daarnaast moest er ook nog een knop worden geplaatst om berichten te verwijderen. Deze bestaat uit een “Panel” met 2 items: een “AutoResizeLabel” en een “AdvIconButton”. De rest van de gegevens worden op het scherm getekend via het “Graphics”-object. Uiteraard is deze SMS module volledig ondersteund door de TTS Synthesizer. Om het gebruik van de Windows Mobile Inbox te vermijden heb ik een extra tabel voorzien in de database, waar onze berichten zullen worden opgeslaan.
Figuur 37: Sms berichten
Figuur 38: Sms berichten database
Zoals er op de screenshot te zien is, wordt het bericht in een tekstballon weergegeven. Omdat we de visuele scalability in het achterhoofd moeten houden, wordt deze tekstballon volledig softwarematig getekend op het scherm. Standaard is het echter niet mogelijk om rechthoeken met afgeronde hoeken te tekenen in het .NET Compact Framework. Een oplossing bestaat eruit een vierkant te tekenen en in iedere hoek een cirkel te plaatsen om het afgeronde effect te bekomen. Meer info hierover kunt u terugvinden bij het bronmateriaal. Cédric Moyaert en Thomas Van de Steene
43
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Bij het voorlezen van het bericht zijn er enkele mogelijkheden:
4.3.3.3.
Afzender is een contactpersoon met ingesproken naam • WAV bestand wordt afgespeeld en vervolgens leest de TTS de rest voor Afzender is een contactpersoon zonder ingesproken naam maar met voornaam en achternaam in database • TTS leest de de naam, voornaam en de rest voor Afzender is een contactpersoon zonder ingesproken naam en zonder voornaam of naam in de database • TTS leest het nummer en de rest van het bericht voor Afzender is geen contactpersoon • TTS lees het nummer en de rest van het bericht voor Bronnen
http://blog.opennetcf.com/ayakhnin/PermaLink,guid,24221294-b4dd412a-8bb3-ff470325721d.aspx
4.3.3.4.
Tijdsduur
Begonnen: 25/05 Beëindigd: 29/05
4.3.3.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
44
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.4.
Instellingen/Settings
4.4.1. Quicksettings en functionaliteitsbeheer 4.4.1.1.
Omschrijving
Op de svn-server stonden twee todo’s die dicht bij elkaar aanleunden. Enerzijds was er de todo “Quicksettings”: het vergemakkelijken en versnellen van het personaliseren van het toestel aan de hand van 3 knoppen. Deze knoppen beduiden de mate waarin de gebruiker met de PSA kan werken (basisgebruiker, matige gebruiker en goede gebruiker). Anderzijds was er de todo “functionaliteitsbeheer”: de mogelijkheid creëren om via de instellingen bepaalde functionaliteiten in- of uit te schakelen (zoals de volledige GPS module). Niet alleen volledige functionaliteiten maar ook onderdelen ervan (zoals de mogelijkheid om zelf SMS’en te maken) moest in- of uitgeschakeld kunnen worden. Aangezien het aanpassen van de PSA aan een bepaalde gebruikersgroep (Quicksettings) vooral neerkwam op het activeren en deactiveren van bepaalde functionaliteiten (zoals het ingeven van eigen nummers, nieuwe adressen…), heb ik deze twee todo’s samen ontwikkeld. 4.4.1.2.
Oplossingsmethode
Ik ben begonnen met twee nieuwe tabbladen te maken onder instellingen: “Snel instellen” en “functionaliteit”. Dan heb ik een hele hoop settings aangemaakt in Settings.xml en voor elke setting de benodigde controls op de eerder vernoemde tabbladen geplaatst. Onderdeel specifieke settings (zoals de mogelijkheid tot het toevoegen van adressen) zijn instelbaar op het tabblad van het omvattende menuitem (de checkbox waarmee men het toevoegen van adressen al dan niet mogelijk maakt staat dus op het tabblad Navigatie). Deze tabbladen worden wel gedisabled (niet meer aanpasbaar) als u de bijhorende functionaliteit uitschakelt.
Cédric Moyaert en Thomas Van de Steene
45
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Het effectief activeren/deactiveren van functionaliteit was een moeilijkere zaak. Het probleem bestond erin dat wanneer je terugkeerde naar het Home scherm er mogelijks knoppen moesten bijkomen of verwijderd worden. Iedere keer het hele Home scherm hertekenen was zeer geheugen en processor intensief. De oplossing was dan een extra setting (“SET_Edited”) die aanduidt of de settings al dan niet aangepast zijn. Enkel wanneer deze op true staat wordt het home scherm hertekend.
Figuur 39: Snelinstellingen
Figuur 40: Functionaliteit
De volledige code hiervan vind u in de GotFocus methode in frmHome.
4.4.1.3.
Tijdsduur
Begonnen: 18/03 Beëindigd: 25/03
4.4.1.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
46
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.5.
Agenda
4.5.1. Agenda 4.5.1.1.
Omschrijving
Onze grootste (en belangrijkste) opdracht voor deze stage was het uitwerken en implementeren van een agenda. Dit moest een volwaardige agenda worden zoals je die standaard vindt op een smartphone, maar dan wat aangepast aan ons doelpubliek. Dit hield niet alleen in dat alles ondersteund moest worden door Text-ToSpeech (alle items en tijdstippen moesten kunnen voorgelezen worden). Alles moest eveneens verduidelijk worden aan de hand van iconen en afbeeldingen. Een prachtig voorbeeld hiervan is de Pictogenda. Deze agenda is gericht op volwassenen met een (lichte) mentale achterstand/handicap. Bij deze agenda krijgt de gebruiker een paar bladen vol icoontjes (kleine stickertjes) waarmee hij zijn dag kan plannen. De iconen zijn wel eerder beperkt in verscheidenheid, het gaat om alledaagse bezigheden zoals: spelen, opruimen, koken, eten, … Net zoals bij de Pictogenda is het niet echt de bedoeling dat de gebruiker zelf de agenda invult (goede gebruikers kunnen dit wel). De agenda wordt ingevuld door de begeleider/(mantel)verzorger via de sms-push dienst, de website of op het toestel zelf. Voor de gebruiker is de agenda eerder een hulp bij plannen en het herinneren van taken/afspraken. Hieraan gekoppeld willen we ook reminder/herinnering functionaliteit maken die de gebruiker waarschuwt enige tijd voor de eigenlijke afspraak.
4.5.1.2.
Oplossingsmethode
Eerst en vooral is er (door Davy en Daute) een document opgesteld met daarin een ruwe schets van de GUI die de agenda moet krijgen en de beschrijving van alle functionaliteit. Op basis hiervan hebben wij samen beslist hoe we deze taak gingen aanpakken.
Cédric Moyaert en Thomas Van de Steene
47
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Stap 1 was de GUI, want de hele agenda bestaat uit eigen gemaakte controls. Cédric heeft de analoge klok gemaakt en de Agenda container. Het voordeel van de analoge klok control is dat deze volledig getekend wordt en dus geen beroep moet doen op externe afbeeldingen. Deze is tevens volledig herschaalbaar. De Agenda Container bevat een “Items” property waarmee de items voor die dag kunnen worden gekoppeld. Thomas heeft de individuele agenda items gemaakt. Aangezien de volledige GUI herschaalbaar moest zijn, moesten alle afstanden/maten relatief ten opzichte van de hoogte en breedte geschreven worden.
Figuur 41: Agendascherm
Het grootste probleem was alles goed laten herschalen. Thomas had eerst alles gemaakt met standaard windows controls (panels, labels,…) maar daarover heb je niet veel controle bij het tekenen/herschalen. Daarom heeft Thomas de volledige code herwerkt en alles zelf getekend in plaats van standaard controls te gebruiken. Een tweede probleem bestond er uit dat het toestel bij te veel in - en uitzoomen crashte met een “OutOfMemoryException”. Door alles eerst in het geheugen te tekenen (m.b.v. een virtuele bitmap) en dan pas op het scherm te plaatsen werd ook dit probleem verholpen.
Cédric Moyaert en Thomas Van de Steene
48
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Even later dook er een nieuw probleem op, de agenda items zijn standaard zo breed mogelijk. Maar hierdoor kan, bij verschaling van de control, de breedte niet evenredig meeschalen als de hoogte. Thomas heeft dan nogmaals de code herwerkt en zodanig geschreven dat iedere component in een agenda item zelf gaat kijken hoeveel plaats hij heeft en zo berekent hoe groot hij maximaal kan zijn.
Figuur 42: Herschaling van de agenda
Eenmaal dit allemaal geïmplementeerd was, hoefden we enkel nog alles te koppelen aan de TTS synthesiser. Om deze agenda te laten werken moet er natuurlijk ook een gegevensbron ter handen zijn. Daute heeft een voorstel aan ons voorgelegd omtrent de nieuwe databasestructuur. Na overleg en enkele wijzigingen aan dit model heeft Cédric de database onder handen genomen. Hierbij moest hij rekening houden met kalender-items, kalenderreminders en de mogelijkheid om bepaalde pictogrammen te koppelen aan een item. Deze pictogrammen konden zich tevens in 1 of meerdere categorieën bevinden. Uiteindelijk kwamen wij uit op 4 gewone tabellen en 2 tussentabellen.
Figuur 43: Agenda database
Cédric Moyaert en Thomas Van de Steene
49
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Een volgende taak hierbij was het toevoegen van alle pictogrammen aan de database. Omdat wij hier over een 4000-tal pictogrammen spreken was het onbegonnen werk om dit volledig handmatig te doen. Daarop besloot Cédric om een tool te ontwikkelen die het grootste deel van de pictogrammen zelf zou importeren en categoriseren in de database, aan de hand van de data beschikbaar op de website van Sclera.
Figuur 44: PictoImport
4.5.1.3.
Tijdsduur
Begonnen: 21/04 Beëindigd: 29/05 4.5.1.4.
Verantwoordelijke stagiair(s)
Thomas en Cédric
Cédric Moyaert en Thomas Van de Steene
50
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
4.6.
Andere uitbreidingen
4.6.1. Batterij functionaliteit 4.6.1.1.
Omschrijving
Een dringend gevraagde uitbreiding was de mogelijkheid om de batterijstatus op te vragen en meldingen te geven bij een laag batterijniveau. 4.6.1.2. Oplossingsmethode Het .NET Compact Framework bevat reeds enkele bestaande klassen voor het opvragen van het batterijniveau. Ook zijn er events beschikbaar die de melding geven wanneer het batterijniveau wijzigt tussen de 5 mogelijke standen: VeryLow(0% - 20%), Low(21% - 40%), Medium(41% - 60%), High(61% - 80%), VeryHigh(81% - 100%). Ik heb een nieuw icoon toegevoegd aan de rechterbovenhoek van PSAControl. Wanneer men hierop klikt krijgt men een nieuw scherm te zien met alle nodige informatie over de status van de batterij. Om het voor onze doelgroep simpel te houden toon ik aan de hand van de huidige status, de batterij in 3 verschillende kleuren: Groen (61% en hoger), geel (21%-60%) en rood (minder dan 20%).
Figuur 45: Batterijscherm
Cédric Moyaert en Thomas Van de Steene
51
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.1.3.
Tijdsduur
Begonnen: 10/03 Beëindigd: 12/03
4.6.1.4.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
52
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.2. Blokkeren van het toestel 4.6.2.1.
Omschrijving
Door het klikken op bepaalde knoppen op het toestel kan de gebruiker per ongeluk in andere applicaties (zoals bijvoorbeeld het scherm om foto’s te nemen) terechtkomen. Om dit te verhinderen moet er gezocht worden naar een manier om het blokkeren van knoppen op het toestel mogelijk te maken. 4.6.2.2.
Oplossingsmethode
De coredll van Windows Mobile bevat enkele methodes die het mogelijk maken om, op enkele uitzonderingen na, bijna alle fysieke knoppen los te koppelen van hun huidige functionaliteit. Het is ook mogelijk om nieuwe gebeurtenissen te koppelen aan deze knoppen binnen het eigen programma zelf. Ik heb een nieuwe klasse gemaakt (clsHardwareButtonsMangager) die deze functionaliteit moet voorzien.
Figuur 46: Hardware blokkeer code
Het blokkeren van de groene en rode knop introduceerde echter een nieuw probleem. Omdat wij het drukken op de groene of rode knop simuleren om een gesprek te accepteren of te weigeren werkte dit plots niet meer. De functionaliteit hiervoor werd namelijk ook losgekoppeld.
Cédric Moyaert en Thomas Van de Steene
53
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Daarom ben ik nogmaals op zoek gegaan naar een alternatieve manier om gesprekken te accepteren / weigeren. Uiteindelijk heb ik de mogelijkheid onderzocht om het drukken van een softkey te simuleren, in plaats van een hardwarebutton. Ik heb deze methode succesvol kunnen implementeren voor de groene knop. De rode knop heb ik tot op heden nog niet kunnen blokkeren om problemen te vermijden. Men kan bij een inkomend gesprek de handle van de menubar (balk onderaan het scherm die de twee softkeys bevat) verkrijgen en ook de linker of rechter softkey druk simuleren.
Figuur 47: Softkey simulatie code
4.6.2.3.
Bronnen
http://forum.soft32.com/pda/RegisterHotKey-UnregisterFunc1-VK_F1-VK_F2-UnregisterHotKey-ftopict62292.html http://www.pcreview.co.uk/forums/thread-2610671.php http://social.msdn.microsoft.com/Forums/enUS/vssmartdevicesnative/thread/e2f1d468-234f-40e8-bfba-125f1d5c7d4e
Cédric Moyaert en Thomas Van de Steene
54
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.2.4.
Tijdsduur
4.6.2.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
55
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.3. Vermijden van meerdere actieve instanties 4.6.3.1.
Omschrijving
Een voorkomend probleem was dat de applicatie crashte en soms niet goed beëindigd werd. Wanneer men dan opnieuw wou testen, werd de applicatie een tweede keer opgestart wat tot problemen leidde. Daarom stond tussen de todo’s ook een vraag naar een systeem om ervoor te zorgen dat er slechts één applicatie tegelijk actief kan zijn.
4.6.3.2.
Oplossingsmethode
Om dit op te lossen ben ik vooraleer het programma opstart (in de Main methode) gaan kijken welke processen er reeds actief zijn op het toestel. Indien één van die processen het PSA programma is (PSADevice.exe) dan moet hij dit proces activeren (naar de voorgrond brengen) en de tweede (overbodige) instantie afsluiten, indien dit niet zo is mag hij het programma opstarten.
Figuur 48: Actief proces code
Cédric Moyaert en Thomas Van de Steene
56
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.3.3. Tijdsduur Begonnen: 11/03 Beëindigd: 12/03
4.6.3.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
57
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.4. Progressbar 4.6.4.1.
Omschrijving
Smartphones hebben eerder trage procesoren en weinig geheugen. Hierdoor kan het zijn dat bepaalde elementen van het programma zeer traag inladen/opstarten. Het probleem hierbij was dat de gebruiker geen visuele feedback kreeg als het programma bezig was. De todo was dan ook duidelijk: zorg voor een visuele aanduiding van activiteit van het programma (een soort progressbar die getoond wordt bij het opstarten van bijvoorbeeld de navigatie module en die terug weggaat eenmaal deze ingeladen is).
4.6.4.2.
Oplossingsmethode
Aangezien de todo verwees naar een progressbar-achtig iets heb ik eerst gezocht om zelf een progressbar te maken. Het idee was om een apart programma te maken dat ik telkens opstartte en beëindigde. Dit was niet echt makkelijk tot Davy me zijn zelfgemaakte progressbar doorstuurde. Het was weliswaar nog veel werk. Daarom ben ik mij gaan afvragen of ik de standaard Windows mobile “progressbar” niet kon gebruiken (als Windows mobile bezig is komt er een vierkleurig cirkeltje in het midden dat ronddraait). Na enig zoekwerk op het internet heb ik gevonden dat dit geen progressbar is maar gewoon een cursor (zoals op je PC).
Figuur 49: busy cursor Windows mobile
Cédric Moyaert en Thomas Van de Steene
58
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap De oplossing is nu zo dat we bij het oproepen van een nieuw scherm de cursor op “WaitCursor” zetten. Bij het inladen van elk scherm (in de Onload methode) maken we de cursor terug “Default”.
Figuur 50: Wait cursor code
Figuur 51: default cursor code
4.6.4.3.
Tijdsduur
Begonnen: 12/03 Beëindigd: 16/03
4.6.4.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
59
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.5. Colorpicker probleem 4.6.5.1.
Omschrijving
Daute en Davy hadden een eigen colorpicker gemaakt (een uitklapbare kleurenkiezer). Het probleem hiermee was echter dat deze geen rekening hield met zijn positie en gewoon uitklapte. Hierdoor klapte de colorpicker vaak uit buiten het scherm, wat ervoor zorgde dat je bepaalde kleuren niet kon selecteren of dat je onderaan en rechts een onhandige schuifbalk kreeg. De todo was dus: zorg ervoor dat de colorpicker correct uitklapt.
4.6.5.2.
Oplossingsmethode
In de todo werd er reeds gesproken om te werken met een X- en Ycoördinaat dat aanduid op welke locatie de colorpicker mag uitklappen. Na de hele colorpicker grondig te hebben bestudeerd, heb ik ervoor gezorgd dat wanneer de colorpicker wil uitklappen hij eerst zijn eigen positie in het scherm opvraagt en op basis daarvan berekend hoeveel kleurknopjes hij in iedere richting kan zetten(afstand tot een bepaalde kant / afmeting van 1 kleurknopje). Op basis van die getallen zorgt hij zelf voor de optimale plaatsing van het kleuren paneel.
Figuur 52: Colorpicker
Cédric Moyaert en Thomas Van de Steene
Figuur 53: Colorpicker uitgeklapt
60
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.5.3. Tijdsduur Begonnen: 12/03 Beëindigd: 13/03
4.6.5.4.
Verantwoordelijke stagiair(s)
Thomas
Cédric Moyaert en Thomas Van de Steene
61
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.6. Text-To-Speech implementatie
4.6.6.1.
Omschrijving
Het overgrote deel van ons doelpubliek zijn analfabeten en/of slechtzienden. Daarom mogen we niet enkel werken met geschreven informatie, alles moet zoveel mogelijk (audio)visueel ondersteund worden. Het visuele aspect is eerder makkelijk, grote en duidelijke iconen zorgen ervoor dat de gebruiker duidelijk weet wat elke knop doet. Het auditieve aspect daarentegen is een stuk moeilijker. Vooraf opnemen van spraak is onmogelijk aangezien bij functionaliteit zoals de agenda (of SMS) de inhoud van de items vaak persoonlijk en onmogelijk te kennen op voorhand. Daarom hebben we een Text-To-Speech synthesiser programma dat platte tekst kan inlezen en laten uitspreken.
4.6.6.2.
nodig.
Een
Oplossingsmethode
Om de Text-To-Speech functionaliteit overal beschikbaar te maken heb ik een nieuwe klasse gemaakt in het PSAManagers project genaamd TTSManager. Deze klasse kan men van overal aanspreken door een referentie te leggen naar het PSAManagers project en deze te “usen”. De klasse zelf bevat naast alle code om de TTS zelf aan te spreken slechts één functie, namelijk “speakText”. Deze functie (die als parameter een string-object vraagt) zorgt ervoor dat de meegeleverde tekst uitgesproken wordt. 4.6.6.3.
Tijdsduur
Begonnen: 13/03 Beëindigd: 17/03
4.6.6.4.
Verantwoordelijke stagiair(s)
Thomas en Cédric Cédric Moyaert en Thomas Van de Steene
62
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.7. Database beheer op de PSA 4.6.7.1.
Omschrijving
De inhoud van de database (contacten, locaties, …) kunnen momenteel enkel beheerd worden via de beheerswebsite. Daarom werd er gevraagd om een kleine toepassing te voorzien op het toestel zelf om deze gegevens te beheren.
4.6.7.2.
Oplossingsmethode
Onder het configuratiescherm van het toestel zijn er tabbladen voorzien om bestaande gegevens te wijzigen en nieuwe gegevens toe te voegen.
4.6.7.3.
Tijdsduur
Begonnen: 17/03 Gestopt: 20/03 (werkt deels, maar nog niet volledig)
4.6.7.4.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
63
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.8. Vergrendeling functionaliteit 4.6.8.1.
Omschrijving
Uit de testcase is gebleken dat een vergrendeling van het toestel (wanneer het in de gebruiker zijn zak zit) wel handig zou zijn om toevallig indrukken van knoppen tegen te gaan. 4.6.8.2.
Oplossingsmethode
Bij gewone gsm-toestellen moet men meestal een code invoeren om het toestel te ontgrendelen. Voor onze doelgroep moest er echter op zoek worden gegaan naar een makkelijkere oplossing. In deze zoektocht viel mijn oog op de “Unlock-slider” van de Apple iPhone.
Figuur 54: Apple Iphone unlock slider
Daarom besloot ik om deze eenvoudige unlock slider na te bouwen voor Windows Mobile. Het bleek dat iemand reeds hetzelfde idee had uitgewerkt. Toen ik de implementatie hiervan onder de loep nam kwam ik tot de conclusie dat deze code veel processorkracht nodig had en allesbehalve performant geschreven was. Daarom besloot ik om alsnog deze functionaliteit volledig zelf te schrijven. Ik heb hiervoor een eigen control ontwikkeld die een event afvuurt wanneer de slider op het einde geplaatst wordt.
Cédric Moyaert en Thomas Van de Steene
64
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 55: PSA unlock slider
De gebruiker kan het toestel nu via een simpele vingerbeweging ontgrendelen. 4.6.8.3.
Bronnen
http://www.codeproject.com/KB/mobile/IPhoneUI.aspx
4.6.8.4.
Tijdsduur
Begonnen: 24/03 Beëindigd: 26/03
4.6.8.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
65
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.9. Snelkoppeling op het Today screen
4.6.9.1.
Omschrijving
Indien de gebruiker toch uit de applicatie valt door een crash of een andere bug, zou het handig zijn moest er op het bureaublad van de smartphone een snelkoppeling staan naar het PSA programma.
4.6.9.2. Oplossingsmethode Het bureaublad van Windows Mobile bestaat uit het “Today”-scherm. Door middel van plugins kan men een stukje ruimte op dit bureaublad reserveren en er content op tonen. Helaas moeten deze plugins geschreven worden in unmanaged C++ code. Gelukkig bestaat er een plugin die C# usercontrols kan weergeven als today items. Men moet simpelweg de plugin installeren op windows mobile en vervolgens een Class Libary Project aanmaken met daarin een Usercontrol. Elke Usercontrol wordt aangevuld met een attribute en stelt een “Today”scherm item voor.
Figuur 56: Today Screen Schema
Cédric Moyaert en Thomas Van de Steene
66
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Er wordt dus gebruik gemaakt van een tussenlaag (C++) die het mogelijk maakt om C# code weer te geven. Deze tussenlaag herschaalt zich volledig afhankelijk van zijn C# usercontrols en zorgt er voor dat men de “echte” (native C++) en “valse” (C# usercontrols) items niet van elkaar kan onderscheiden. Mijn today-screen item bestaat uit één grote knop die het volledig todayscherm vult. Zo is de gebruiker makkelijk in staat om terug in het programma te raken indien dit nodig zou zijn.
4.6.9.3.
Bronnen
http://managedtodayscreen.codeplex.com/
4.6.9.4.
Tijdsduur
Begonnen: 25/03 Beëindigd: 27/03
4.6.9.5.
Verantwoordelijke stagiair(s)
Cédric
Cédric Moyaert en Thomas Van de Steene
67
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.10. Constant volume 4.6.10.1. Omschrijving Tijdens de testcase in Ieper was één van de opmerkingen van Taco (de proefpersoon) dat het volume soms veranderde. Aangezien we dit zelf niet gehoord hebben, gingen we ervan uit dat het volume toevallig werd aangepast terwijl het in zijn zak zat. De opdracht was dus: zorg ervoor dat het volume niet kan aangepast worden/constant blijft.
4.6.10.2. Oplossingsmethode Het eerste idee was om een nieuw programma te maken (naast de PSADevice) dat om de zoveel tijd een aantal zaken kon controleren en (indien nodig) aanpassen. Het probleem lag dan dat we moesten kunnen communiceren tussen beide processen. Daarom hebben we binnen het PSAManagers project een nieuwe klasse gemaakt genaamd clsBackgroundServiceManager. Zoals de naam doet vermoeden is dit een klasse die bedoeld is om in de achtergrond te werken en om de zoveel tijd een aantal taken uit te voeren. Één van die taken is het opvragen (en indien nodig aanpassen) van het volume. Het gewenste volumeniveau is instelbaar bij de instellingen onder het tabblad “geluiden”. Er is ondertussen reeds een oplossing uit de bus gekomen om de hardware knoppen af te zetten (waardoor het volume niet meer kan veranderd worden). De mogelijkheid bestaat wel nog om in Windows mobile op het volume icoon te klikken en deze aan te passen. Om toch enige toevalligheden tegen te gaan blijft de volume-code staan.
Cédric Moyaert en Thomas Van de Steene
68
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 57: check volume code
4.6.10.3. Bronnen http://www.geekpedia.com/tutorial176_Get-and-set-the-wave-soundvolume.html http://msdn.microsoft.com/en-us/magazine/cc163341.aspx
4.6.10.4. Tijdsduur Begonnen: 27/03 Beëindigd: 27/03
4.6.10.5. Verantwoordelijke stagiair(s) Thomas
Cédric Moyaert en Thomas Van de Steene
69
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.11. Wekker Nog een gevraagde functionaliteit is de wekker. De gebruiker moet in staat zijn om op een eenvoudige manier op een bepaald tijdstip, de wekker aan te zetten.
4.6.11.1. Oplossingsmethode Thomas en ik hebben een klasse gemaakt (clsBackgroundServiceManager.cs). Het is de bedoeling om in deze klasse op reguliere basis te controleren of er bepaalde taken moeten worden afgehandeld. Zo kan in deze klasse ook gecontroleerd worden of de wekker al dan niet moet afgaan. In deze klasse hebben we onze eigen events geschreven die worden afgevuurd wanneer een wekker-alarm moet worden getoond. In frmHome schrijven we in op dit event en tonen we een pop-up scherm waarin de gebruiker in staat wordt gesteld om de wekker uit te schakelen. Afhankelijk van de status van de wekker wordt ook de achtergrondkleur rood of groen ingesteld op het “Home”-scherm.
Figuur 58: Wekkerfunctionaliteit
Uit de langdure testcase zijn er enkele problemen opgedoken waardoor we de Wekker-popup in een apart project hebben geplaatst. Zo bestaat de Wekker-popup nu uit een aparte exe file die er exact hetzelfde uitziet als onze hoofdprogramma. Ook is er op aanvraag een extra setting toegevoegd bij het instellingen scherm die mogelijk maakt het instellen van uur en minuut, in of uit te schakelen. De testcase had namelijk aangetoond dat het instellen van uur en minuut te ingewikkeld is voor sommige mensen. Bijvoorbeeld diegene die moeilijkheden hebben met het concept tijd.
Cédric Moyaert en Thomas Van de Steene
70
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Figuur 59: Wekker instellingen
Figuur 60: Wekker niet instelbaar
4.6.11.2. Tijdsduur Begonnen: 27/03 Beëindigd: 01/04
4.6.11.3. Verantwoordelijke stagiair(s) Cédric
Cédric Moyaert en Thomas Van de Steene
71
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.12. Stand-by functionaliteit 4.6.12.1. Omschrijving Tijdens de testcase in Ieper had de PSA zeer veel batterij verbruikt. Vermoedelijk kwam dit omdat de PSA constant aanstond (en nooit in een energiebesparende modus zoals “stand-by” ging). Daarom kwam de vraag van Daute om stand-by- (of uitschakel-) functionaliteit te schrijven voor het toestel, zodat dit niet enkel mogelijk is met de hardware knop maar ook in het programma zelf. Dit kan ook handig zijn als de gebruiker bijvoorbeeld naar de film gaat ofzo en vlug zijn PSA moet afzetten.
4.6.12.2. Oplossingsmethode Na een korte zoektocht heb ik de code om het toestel in stand-by te plaatsen gevonden en geïmplementeerd. Code om het toestel (softwarematig) volledig af te zetten heb ik niet gevonden. Deze code is ondertussen verplaatst naar de clsBatterijManager klasse in PSAManagers.
Figuur 61: Stand-by code
Cédric Moyaert en Thomas Van de Steene
72
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.12.3. Bronnen http://forum.soft32.com/pda/turn-PDA-ftopict61452.html
4.6.12.4. Tijdsduur Begonnen: 23/03 Beëindigd: 23/03
4.6.12.5. Verantwoordelijke stagiair(s) Thomas
Cédric Moyaert en Thomas Van de Steene
73
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.13. MediaPlayer 4.6.13.1. Omschrijving Om de binding tussen de gebruiker en de PSA te vergroten stonden op de server een paar todo’s zoals spelletjes maken, paint maken. Één van die todo’s was een mediaplayer maken. Een simpele muziekspeler die makkelijk is in gebruik, maar toch voldoende functionaliteit biedt.
4.6.13.2. Oplossingsmethode Ik ben eerst en vooral gaan zoeken hoe ik een geluidsbestand afspeel. Tijdens deze zoektocht heb ik geleerd dat er standaard enkel ondersteuning is voor wave bestanden. MP3 bestanden worden dus niet ondersteund. Dit verontrustend nieuws heb ik vlug achter mij gelaten toen een dll vond die ondersteuning bood voor zowel mp3 als wma en wave bestanden. Eenmaal ik deze dll aan de praat kreeg in een testapplicatie heb ik deze opnieuw gemaakt in het PSA project. Ik heb een form gemaakt met daarop 4 knoppen (vorige, start, stop en volgende). Bij het opstarten wordt er gezocht naar alle mp3, wave en wma bestanden op de opslagkaart en worden deze in een playlist ondergebracht. Wanneer een liedje afgelopen is, wordt er direct naar het volgende lied overgegaan.
Figuur 62: Mediaplayer interface
Cédric Moyaert en Thomas Van de Steene
74
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap De code voor muziek af te spelen is ondertussen ook verplaatst naar een PSAManagers klasse genaamd clsSoundManager. Deze todo is gemaakt maar is nog niet af, de mediaplayer werkt maar de GUI laat nog te wensen over, net zoals de functionaliteit.
4.6.13.3. Bronnen http://www.codeproject.com/KB/mobile/simple_mp3_player_for_ppc.asp x?display=Print
4.6.13.4. Tijdsduur Begonnen: 20/04 Beëindigd: 22/04
4.6.13.5. Verantwoordelijke stagiair(s) Thomas
Cédric Moyaert en Thomas Van de Steene
75
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.14. Wake up PSA 4.6.14.1. Omschrijving Wanneer een toestel in standby wordt geplaatst, wordt alles “gefreezed”. Wanneer het toestel nadien terug uit standby komt gaat deze gewoon verder vanaf het punt waar het voordien was “vastgezet”. Dit brengt een probleem met zich mee: wat indien er een wekker of ander alarm moet afgaan wanneer het toestel in standby staat?
4.6.14.2. Oplossingsmethode Alle windows-mobile toestellen bevatten een soort systeemklok (een klein stukje hardware) die weinig energie verbruikt en blijft draaien wanneer het toestel in standby staat. Dit stukje hardware zorgt er bijvoorbeeld ook voor dat het toestel ontwaakt wanneer er naar gebeld wordt. Om het toestel zelf programmotorisch uit standby te halen zijn er twee mogelijkheden, namelijk de methodes “CeRunAppAtTime” en “CeSetUserNotificationEx” uit coredll.dll: • •
CeRunAppAtTime: opent een exe bestand op een vooraf ingesteld tijdstip. Er kan slechts één wake-up worden opgeslaan. CeSetUserNotificationEx: opent een exe bestand op een vooraf ingesteld tijdstip OF op basis van systeem-events. Ook kunnen er bijvoorbeeld geluiden en popups worden getoond door de correcte notificationflags in te stellen. Er kunnen meerdere wakeups worden opgeslaan.
Aangezien wij van eigen popups en geluiden gebruik maken heb ik gekozen voor de “CeRunAppAtTime”-methode. Deze bevat alle functionaliteit die wij nodig hebben en is ook een stuk makkelijker in gebruik. Bij het implementeren van deze oplossing ben ik begonnen met een “WakeUp.exe” bestand te maken die zou worden aangeroepen. Dit is puur een Dummy bestand.
Cédric Moyaert en Thomas Van de Steene
76
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Ik ben op een 2-tal problemen gestoten tijdens het uittesten van deze methode: •
•
De backlight van het toestel wou niet terug inschakelen na het ontwaken. Dit is opgelost door in de WakeUp.exe de functie “SetSystemPowerState” uit coredll aan te roepen. Deze methode zorgt ervoor dat men de backlight programmotorisch kan forceren. Het activeren van de backlight bleek enkel de eerste keer bij aanroepen te werken. Wanneer de WakeUp.exe later nog opnieuw werd gestart zou deze de backlight niet meer inschakelen. Het toestel moest volledig opnieuw opgestart worden om deze functionaliteit terug te laten werken. Na lang zoeken en tientallen tests heb ik ontdekt dat er restanten van het programma in het geheugen achterbleven die ervoor zorgden dat de code niet meer correct werd uitgevoerd. Door de garbagecollector te forceren om het geheugen op te kuisen is dit probleem opgelost. (GC.Collect();)
Figuur 63: wakeup code
4.6.14.3. Tijdsduur Begonnen:24/04 Beëindigd: 13/05 4.6.14.4. Verantwoordelijke stagiair(s) Cédric
Cédric Moyaert en Thomas Van de Steene
77
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4.6.15. CameraCapture 4.6.15.1. Omschrijving Bij het toevoegen van locaties heeft de gebruiker de mogelijkheid om een foto te nemen van de locatie in kwestie. Om niet hardware specifiek te werken wekten we met de CameraCaptureDialog van het .NET Compact framework. Het enige nadeel is dat deze dialog zeer uitgebreid is. Zo kan men o.a. de resolutie instellen, de belichting, inzoomen, … Veel te omslachtig voor ons doelpubliek dus. Daarom dus de vraag om een eigen CameraCaptureDialog te schrijven. Of een andere manier waarmee we kunnen opnemen/fotograferen met de camera.
4.6.15.2. Oplossingsmethode Ik ben eerst beginnen zoeken naar een soort dll die camera capturing kan doen. Tijdens mijn zoektocht vond ik veel vragen gelijkaardig aan de mijne. Deze bleven evenwel onbeantwoord ofwel werd het probleem opgelost door CameraCaptureDialog te gebruiken. Het probleem is dat CameraCaptureDialog zeer goed is in wat het moet doen: Camerahandling uniformeren. Maar voor specifieke gevallen zoals het onze is het ontoereikend, of eerder overkill. Na een hele dag zoeken had ik een paar verwijzingen gevonden naar DirectShow (een C++ library waarmee je videostreams kunt capturen) maar een eigen versie maken van DirectShow werd zelfs door C++ ingewijden omschreven als “uitdagend”. De volgende dag heb ik dan eindelijk iemand gevonden die een C# project had gemaakt met daarin zijn eigen (aangepaste) versie van DirectShow. In zijn programma gebruikte hij zijn smartphone/pda als een soort webcam, door om de 10 seconden een foto te nemen. Aangezien er echter geen preview mogelijkheid was (zien wat je gaat fotograferen) heb ik even verder gezocht naar enkel videocapture met DirectShow.
Cédric Moyaert en Thomas Van de Steene
78
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Ook na deze zoektocht bleef ik met lege handen achter, en aangezien ik in het wilde weg fotos nemen maar niets vond had ik deze todo eigenlijk als ondoenbaar verklaard. Doch even kreeg ik van Daute de opdracht om de reeds gevonden code te implementeren en indien mogelijk nogmaals te zoeken naar videocapture. Na alweer een halve dag vruchteloos te zoeken naar videocapture, heb ik mijn namiddag gespendeerd aan het doen werken van de eerder gevonden code in een testapplicatie. Eens dit gelukt was heb ik deze geïmplementeerd in het project.
Figuur 64: Foto nemen
Ik wou deze code in een aparte manager klasse onderbrengen maar aangezien deze code werkt met een een soort event terug naar het oproepende form kan ik die dus niet veralgemenen. Deze op het eerste zicht werkende code, draaide goed op de HTC toestellen maar niet op het LG toestel. Om dit alsnog te laten werken heb ik alle code in een apart project gestoken en roep ik in het PSA programma de gecompileerde .exe file op.
Cédric Moyaert en Thomas Van de Steene
79
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Na overleg met Daute hebben we dan beslist om een goed werkende applicatie te maken voor de HTC toestellen en het LG toestel even links te laten liggen. Aangezien ik toch al werkte met een aparte .exe file, heb ik al mijn moeilijke code vervangen door een “gespoofte” CameraCaptureDialog. Ik roep de cameraCaptureDialog op en na enkele seconden simuleer ik de hardwarebutton om een foto te nemen. Deze sla ik op in een welbepaalde map (zodat het PSA programma er gebruik van kan maken).
4.6.15.3. Bronnen http://blogs.msdn.com/marcpe/archive/2006/03/03/542941.aspx
4.6.15.4. Tijdsduur Begonnen: 27/04 Beëindigd: 30/04 4.6.15.5. Verantwoordelijke stagiair(s) Thomas
Cédric Moyaert en Thomas Van de Steene
80
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
5. Testcases 5.1.
Testcase Ieper
5.1.1. Omschrijving Om de navigatiemodule en ook het bellen eens te laten testen door een persoon uit de doelgroep, was er een testcase georganiseerd in Ieper. De medewerkers van het PSA project (Cédric, Daute, Davy, Lieve en Thomas) stonden op bepaalde locaties in Ieper. Taco (de proefpersoon) moest naar ieder van ons navigeren met de navigatiemodule en eens hij aankwam een test/vraagje oplossen die hem vertelde wat hij daarna moest doen.
5.1.2. Voorbereiding Op 16/03 zijn Cédric en ik samen met Daute naar Ieper getrokken om er locaties te verzamelen voor de testcase. Ter plaatse hadden we een klein probleem met het toevoegen van locaties, waardoor we iedere locatie apart moesten fotograferen en de coördinaten/adresgegevens opschrijven. Daute heeft deze dan de volgende dag in de database gestoken.
5.1.3. Schema 8u30: verzamelen PIH (Thomas, Cédric, Davy, Daute & Steven) 9u00-9u15: aankomst in de Pennestraat te Ieper 9u15 – Start: Checken en eventueel wijzigen van de telefoonnummers. Uitleggen functionaliteiten (bellen, opnemen, navigeren, nieuw navigatiecontact) PSA aan Taco 10 min. voor start: Daute voert Lieve, Davy, Thomas, Cédric naar de Grote Markt en voert zichzelf naar de Torrepoortlaan. Start testcase: 1. Taco maakt eerst een nieuw GPS-contact van zijn eigen huis. 2. Steven geeft Taco de eerste opdracht: Rijden naar het Sony center, het werk van Ernest Claessens 3. Steven en Taco rijden naar Sony Center
Cédric Moyaert en Thomas Van de Steene
81
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 4. Aankomst aan het Sonycenter waar Thomas staat te wachten 5. Thomas overhandigt opdracht aan Taco 6. Taco belt naar Lieve 7. Lieve geeft Taco de opdracht naar Davy te gaan, naar De Trompet 8. Taco en Steven vertrekking richting café de Trompet (de grote markt) 9. Aankomst aan Café De Trompet, Davy staat hier te wachten. 10. Taco krijgt van davy een opdrachtenvellop die zegt te bellen naar een zelf in te geven nummer (0495.64.84.80 = Daute) 11. Daute geeft Taco de opdracht om te navigeren naar de arbeidsrechtbank. 12. 13. 14. 15. 16.
Steven en Taco gaan naar de Arbeidsrechtbank (Sint Jansstraat 2) Aan de arbeidsrechtbank staat Lieve te wachten Lieve geeft Taco de volgende opdracht Taco dient te bellen naar Davy Davy geeft Taco de opdracht om naar “Nonkel Jules” te gaan.
17. Steven en Taco gaan naar Nonkel Jules (Torrepoortlaan) 18. Aankomst in de Torrepoortlaan waar Daute staat te wachten 19. Daute geeft Taco de opdracht om een GPS-contact toe te voegen voor het huis van Tante Els. 20. Daute geeft Taco de volgende opdracht (Naar Lieve bellen) 21. Lieve geeft Taco de opdracht om naar Het Eiland te gaanµ 22. Steven en Taco gaan naar het Eiland, alwaar Cédric staat te wachten 23. Cédric belt bij aankomst naar Davy 24. Cédric houdt Taco aan de praat, tijdens dit praten belt Davy naar Taco. En geeft Taco de opdracht om naar Frituur het kattekwaat te gaan (Grote markt) 25. Steven en Taco gaan naar frituur het kattekwaad, alwaar Davy en de rest staan te wachten.
Cédric Moyaert en Thomas Van de Steene
82
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 5.1.4. Resultaten – Bij terugkeren van TomTom navigatie naar het navigatiescherm verschijnt er de standaard Windows mobile header. Deze header moet weggewerkt worden. (Dit kan via de Vb.Net solution fullscreen) – Implementatie van het voorlezen van de opgenomen tekst, tijdens overlopen contacten. – Implementatie van try/catches, zodoende je bij een fout niet naar Windows Mobile wordt gestuurd – Auto-opstart-functionaliteit herbekijken. – TomTom instellen dat hij kan kiezen tussen fietsroute, autoroute, ... – Wanneer onder navigatie, bij een bepaalde locatie meerdere mogelijkheden zijn crasht de applicatie wanneer men 1 van de 2 posities kiest – De TomTom forceren om de quote “Keer om” niet te zeggen, en ipv gewoon de route te laten herberekenen. – (O.a. Bij TomTom:) Er is een geluidsprobleem, geluid moet constant blijven. – Zoeken naar een mogelijkheid tot vergrendeling van het toestel. Zodoende in de zak niet op toetsen kan worden geduwd. – Zoeken naar een mogelijkheid om de TomTom in slaapstand / minder actieve modus te laten gaan, hij heeft tijdens deze 2 uur durende test zeer veel energie verbruikt. – Zoeken naar een mogelijkheid om de GSM te kunnen afzetten. – Bij aankomst op een bepaalde locatie zegt TomTom niet altijd dat hij aangekomen is. Dit zou misschien kunnen opgelost worden Door ipv 1 coördinaat een rechthoek aan coördinaten mee te geven. Wanneer hij binnen deze coördinatenrechthoek zit, is de gebruiker aangekomen. – Bekijken of er mogelijkheden zijn om een GPS op een moto vast te maken (regenbestendige oplossingen) – Op het Windows Mobile bureaublad een grote snelkoppeling zetten naar ons programma. – Naar meerdere nummers bellen / navigeren is een extra functionaliteitlaag die geactiveerd / gedeactiveerd kan worden. – Bekijken indien bovenstaande gedeactiveerd is, dat je in eerste instantie belt naar het vaste nummer. Indien er binnen de 10 sec geen
Cédric Moyaert en Thomas Van de Steene
83
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap reactie volgt kan automatisch gebeld worden naar de andere nummers die aanwezig zijn. – Bijhouden hoe vaak er gebeld/genavigeerd wordt. Op contacten verwijderd worden. Dit via de CMS-website.
effectief naar een contact basis hiervan kunnen nutteloze kan eventueel voorgesteld worden
– Systeem kunnen afzetten / op stil zetten. – Bij een volgende test dient de header en footer balk groter te zijn. – Bekijken hoe we voor een volgende test sets 2 oortjes kunnen aansluiten. Kan op verschillende manieren (bleutooth-kabel-fm-...)
5.1.5. Tijdsduur Begonnen: 23/03 Beëindigd: 23/03
5.1.6. Verantwoordelijke stagiair(s) Thomas en Cédric
Cédric Moyaert en Thomas Van de Steene
84
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
5.2.
TESTCASE KORTRIJK
5.2.1. Omschrijving Om de nieuwe wekker functionaliteit en de bugfixes van de vorige testcase eens te testen hebben we een kleine testcase gedaan in Kortrijk met Steven Verstockt als proefpersoon. We navigeerden door Kortrijk aan de hand van de PSA en tussendoor testten we de andere functionaliteiten.
5.2.2. Voorbereiding Daute is even een toestel komen lenen om de locaties mee op te slaan.
5.2.3. Schema Start testcase: 1. Neem een GPS-locatie van het PIH. 2. Navigeer naar je bankkantoor. 3. Bel naar Davy. 4. Navigeer naar rusthuis St. Jozef. 5. Stel de wekker functionaliteit zodanig in dat hij afgaat binnen 5 min. 6. Navigeer naar de bouwwerf van K-tje van Kortrijk. 7. (tijdens de rit) Gebeld worden door Thomas. 8. Bellen naar 0498 60 17 42. 9. Navigeer naar Supermarkt Rivan. 10. Navigeer terug naar het PIH.
Cédric Moyaert en Thomas Van de Steene
85
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap 5.2.4. Resultaten - Bij terugkeren van TomTom Navigator naar home is er een balk die weg moet - Contact met meerdere nummers belt niet (Gefixt op Zaterdag 25/04) - Windows mobile scherm bij gebeld worden tijdens TomTom Navigator en de andere persoon legt neer - Foto functionaliteit proberen te verwezenlijken met een eigen programma. Het standaardprogramma is te omslachtig. 5.2.5. Tijdsduur Begonnen: 24/04 Beëindigd: 24/04
5.2.6. Verantwoordelijke stagiair(s) Thomas en Cédric
Cédric Moyaert en Thomas Van de Steene
86
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
5.3.
TESTCASE LANGDURIG GEBRUIK
5.3.1. Omschrijving Om de PSA te testen in de bedoelde gebruiksomgeving, was er een testcase gepland waarbij één van de toestellen voor (minstens) twee weken bij Taco blijft. Op deze manier zien we of er problemen zijn op een langer tijdsbestek en welke aanpassingen we nog moeten doen naar de uiteindelijke doelomgeving toe.
5.3.2. Voorbereiding - Toevoegen van mogelijkheid om zelf contacten te maken - PSA automatisch doen opstarten - Today screen knop herbekijken (doet soms PSA niet opstarten) - Na klikken op iemand met meer dan 1 telefoon nummer verschijnt er al een wachtcursor terwijl dit pas mag verschijnen na dat je een nummer selecteert in het pop-up schermpje. - Niet nuttige nummers uit de DB halen (nummer van Daute mag blijven) - Voor later: opvangen wanneer de persoon aan de andere kant van de lijn neerlegt en dan het belscherm sluiten - Alle irrelevante adressen uit de DB halen (Taco thuis, het eiland en frituur kattekwaad mogen blijven) - Header- en Navigationbar groter zetten (40 ->50) - Voor later: na terugkeren uit TomTom Navigator, zorgen dat het eerder geselecteerde icoon niet meer blauw staat. - SMS functionaliteit disablen - Wekker functionaliteit disablen (indien deze niet goed werkt) - Mediaplayer functionaliteit disablen - Agenda functionaliteit disablen
Cédric Moyaert en Thomas Van de Steene
87
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap - Uitschakelen en vergrendelen samenvoegen tot één menuitem - Knop “synchroniseren” en “database beheren” niet tonen. - Instellingen: Quicksettings herbekijken (werkt niet goed) - Instellingen: Functionaliteit herbekijken (werkt niet goed) - Default cursor terugzetten in de gotFocus van frmHome - Picturebox bij foto nemen in het grijs zetten (duidelijk maken dat er iets moet komen) - Eenmaal de positie bepaald is (bij nieuwe locatie ingeven) na 10 seconden overschakelen naar het volgende gedeelte (foto nemen). - Bij het uit stand-by komen het vergrendelscherm tonen - Zoeken naar een manier om de PSA te laten wakker worden als de wekker moet aflopen of als er een agenda reminder is.
5.3.3. Resultaten - Als men tijdens het bellen op de Home knop duwt moet het gesprek afgesloten worden - Try-catch over alle belfunctionaliteit zodat het gesprek afgesloten wordt in geval van een error/crash - Camera functionaliteit herbekijken, 1e keer crasht hij, 2e keer gaat het goed. - In het belscherm een toetsenbord verwerken indien de gebruiker iets moet ingeven (druk 1 voor Frans…) - Herbekijk de voorlees functie van alle iconen op het scherm. Als er gemende iconen zijn (iconen met TTS en iconen met een wave bestand) dan doet hij het niet goed. - Wakeup.exe vervangen door Wekker.exe en agenda.exe. Het probleem is dat de PSA 1 minuut op voorhand wakker word en de gebruiker verward kan worden (aangezien de PSA wakker word maar nog niets doet) Cédric Moyaert en Thomas Van de Steene
88
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap - Wekker laten aanblijven na reminder (als je de reminder weg doet zet je de wekker uit, dit mag niet want de volgende dag moet de persoon weer gewekt worden). - Geluid niet luid genoeg (sirene geluid nodig) - Een nieuwe setting maken: uur instelbaar of niet (indien de gebruiker niet vertrouwd is met het concept uren)
5.3.4. Tijdsduur Begonnen: 24/04 Beëindigd: 24/04
5.3.5. Verantwoordelijke stagiair(s) Thomas en Cédric
Cédric Moyaert en Thomas Van de Steene
89
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
6. Besluit
Aan het begin van deze stage bevatte het PSA project reeds telefonie-, navigatieen settingsfunctionaliteit. Op het einde van onze stage is dit gamma uitgebreid met oa. volgende items: Battery functionaliteit Op ieder scherm staat nu ook een batterij-icoontje, wanneer u hierop klikt krijgt u een scherm te zien met daarop de batterijstatus van het toestel aangeduid door enerzijds een gekleurd icoon en anderzijds door geschreven tekst onder dit icoon. Deze tekst kan ook voorgelezen worden door Text to Speech. Wanneer het niveau te laag wordt komt er een extra melding dat de gebruiker het toestel moet opladen. Quicksettings en functional scalability Bij de instellingen zijn er 2 tabbladen bijgekomen. Het eerste tabblad “Snel instellen” bevat 3 knoppen (Basis gebruiker, Matige gebruiker en Gevorderde gebruiker). Door te drukken op één van deze drie knoppen wordt de PSA qua functionaliteit aangepast aan de gekozen gebruikersgroep. Met twee vinkjes kan je op dit tabblad ook de functies “Hoog contrast” en “Extra groot” aan- of uitzetten. Het tweede tabblad is functionaliteiten, hier kunt u alsnog specifiek functionaliteiten in- of uitschakelen. Wekker functionaliteit In het hoofdmenu is een nieuwe knop toegevoegd die je naar de wekker applicatie brengt. Hier kan je heel eenvoudig de wekker aan- of uitzetten en het uur instellen. Er is een extra instelling gemaakt die het uur al dan niet instelbaar maakt door de gebruiker (aangezien sommige gebruikers het concept “uren” niet goed snappen). Wanneer de wekker afloopt krijgt de gebruiker een melding te zien en begint er een geluid te spelen. Vergrendelen/ontwaken De optie om het toestel in stand-by te zetten is toegevoegd aan het hoofdmenu. Dit is vooral handig om stroom te besparen wanneer het toestel niet gebruikt wordt. Bij het in stand-by gaan wordt er gekeken wanneer de volgende melding getoond moet worden ( een wekker die afloopt of een afspraak die begint) zodat het toestel tijdig kan ontwaken. Nieuwe contacten De gebruiker kan nu ook zelf een nieuw contact ingeven. De procedure is grotendeels gelijk aan het ingeven van een nieuwe locatie: de gebruiker geeft het telefoonnummer in, neemt een foto van de contactpersoon (optioneel) en spreekt daarna de naam van het contact in. Wanneer de gebruiker geen foto neemt van de contactpersoon wordt een standaard icoon gebruikt.
Cédric Moyaert en Thomas Van de Steene
90
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Agenda In het hoofdmenu vind u ook de nieuwe agendafunctie terug. Het ontwikkelen van een sprekende agenda was onze hoofdopdracht deze stage. Op het agenda scherm ziet u bovenaan de datum van vandaag, de dagnaam is verduidelijkt met een icoontje (een maan voor maandag, een donder voor donderdag). Daaronder vind u alle taken voor die dag, gerangschikt volgens uur. Met de pijltjestoetsen naar links en rechts kunt u de datum wijzigen, met die naar boven en onder kunt u door de taken van de geselecteerde dag lopen. Iedere taak is weergegeven door een klokje aan de linkerkant (die de begintijd aanduid) en een taakomschrijving (verduidelijkt met icoontjes en fotos) aan de rechterkant. De tijd kan zowel digitaal als analoog weergegeven worden. Wanneer men op het klokje duwt, wordt het tijdstip voorgelezen. Wanneer men op de taakomschrijving of op de icoontjes duwt, wordt zowel het tijdstip als de taak voorgelezen. Wanneer men bovenaan op het help-icoontje klikt, wordt de volledige dag taak per taak overlopen en voorgelezen.
SMS Er is ook SMSfunctionaliteit toegevoegd aan het project. De gebruiker krijgt bij ieder bericht een foto van de afzender te zien (indien die beschikbaar is). Hij ziet ook het tijdstip van ontvangen en in een tekstballon onder de foto staat het eigenlijke bericht. Met de pijltjes naar links en rechts kan hij door de berichten bladeren. Er is ook de mogelijkheid om berichten te verwijderen. Zelf berichten sturen is nog niet mogelijk.
Cédric Moyaert en Thomas Van de Steene
91
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
7. Persoonlijke conclusies Aangezien we allebei dezelfde conclusies hadden aan het einde van onze stage hebben we hier onze gedeelde conclusies geschreven.
7.1.
Gedeelde conclusies
Deze stage heeft ons niet alleen veel geleerd over ontwikkeling op mobile devices en het .NET compact framework, het leerde ons ook rekening te houden met je doelpubliek, steeds bedenken voor wie je aan het ontwikkelen bent om het programma zo aantrekkelijk/gebruiksvriendelijk mogelijk te maken. Hoewel dit een zeer interessante stage was en het PSA project een beloftevolle toekomst heeft, willen we toch enkele opmerkingen meegeven aan de mensen die deze stage en het PSA project verderzetten. Dit project is nog niet afgewerkt, en dient het komende jaar/de komende jaren gecontinueerd te worden, aangezien er steeds nieuwe uitbreidingen en bugfixes zullen nodig zijn. Twee kleine opmerkingen waarmee je rekening moet houden zijn: mobile devices zijn zeer traag en het .NET compact framework is niet zeer goed in geheugenbeheer (wij hebben regelmatig te maken gekregen met fouten die veroorzaakt werden door ontoereikend werkgeheugen). Dit hele project is tot nu toe geschreven in C#, werkende op het .NET compact framework. Hoewel dit framework veel functionaliteiten bied, brengt het ook veel beperkingen met zich mee en vele handigheden van het volledige .NET framework zijn verwijderd of aangepast. Waardoor je dus dingen zelf moet gaan schrijven of (externe) dll’s aanroepen. Er kan dus mogelijks uitgekeken worden naar een ander platfom om op te programmeren. Indien mogelijks zelf in een low-level taal als C++, aangezien wij meerdere keren Windows Mobile functionaliteiten hebben moeten onderdrukken. Ook zou het hele PSA project uiteengehaald moeten worden om alle aparte functionaliteiten in een aparte project te steken. Zodoende dat we komen tot één moeder programma dat wanneer nodig het programma oproept met de gewenste functionaliteit(zoals een telefonieprogramma, een navigatieprogramma…). Dit om de stabiliteit (en mogelijks ook de performantie) ervan te verhogen.
Cédric Moyaert en Thomas Van de Steene
92
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
8. Bronvermelding
Codeplex. Managed todayscreen. [Online] http://managedtodayscreen.codeplex.com/. Codeproject. Iphone UI for Windows Mobile. [Online] http://www.codeproject.com/KB/mobile/IPhoneUI.aspx. CodeProject. MAPIdotnet. [Online] http://www.codeproject.com/KB/mobile/PocketPCandSmartphone.aspx. Codeproject. Simple MP3 player for Windows Mobile. [Online] http://www.codeproject.com/KB/mobile/simple_mp3_player_for_ppc.aspx?display= Print. Cogswell, Jeff. 2008. Phone with TAPI. DevSource. [Online] 24 07 2008. http://www.devsource.com/c/a/Architecture/Creating-custom-Phone-AppWindows-Mobile/2/. Decoo, Daute Van Nieuwenhuyse en Davy. Masterproef PSA (Personal Social Assistant). DevSource. 2009. Phone with TAPI. [Online] 2009. http://www.devsource.com/c/a/Architecture/Creating-custom-Phone-AppWindows-Mobile/2/. forum.soft32. Turn off PDA. [Online] http://forum.soft32.com/pda/turn-PDAftopict61452.html. Geekpedia. Get and set the wave sound volume. [Online] http://www.geekpedia.com/tutorial176_Get-and-set-the-wave-sound-volume.html. Microsoft. adjusting the volume using .NET compact framework. [Online] http://msdn.microsoft.com/en-us/magazine/cc163341.aspx. —. CameraCapture project. [Online] http://blogs.msdn.com/marcpe/archive/2006/03/03/542941.aspx. —. How to disable hardware buttons . [Online] http://social.msdn.microsoft.com/Forums/enUS/vssmartdevicesnative/thread/e2f1d468-234f-40e8-bfba-125f1d5c7d4e. —. Invoke a popup menu on menu bar. [Online] http://social.msdn.microsoft.com/Forums/enUS/vssmartdevicesnative/thread/e2f1d468-234f-40e8-bfba-125f1d5c7d4e.
Cédric Moyaert en Thomas Van de Steene
93
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap —. ShowWindow function. [Online] http://msdn.microsoft.com/enus/library/ms633548(VS.85).aspx. —. Take an incoming call. [Online] http://social.msdn.microsoft.com/forums/enUS/netfxcompact/thread/a91d7975-cfe6-4479-b73e-169ec3a14762/. —. 2007. TAPI issues. [Online] 2007. http://support.microsoft.com/default.aspx?scid=kb;en-us;841712. OpenNetCF. Telephony library. [Online] http://www.opennetcf.com/cf/products/telephony.ocf. Overview of the Scalable Video Coding extension of the H.264/AVC standard. Schwarz, H., Marpe, D. en Wiegand, T. 2007. 2007, CSVT, pp. 1103-1120. PCreview. HardwareButton class. [Online] http://www.pcreview.co.uk/forums/thread-2610671.php. Pinkelotje. Custom TomTom stemmen. [Online] http://www.pinkelotje.nl/tomtom.html. Pocketinfo.nl. Eigen stemmen op TomTom. [Online] http://forum.pocketinfo.nl/f19/navigatiesoftware/f276/windows-mobilenavigatiesoftware-aanraakscherm/f23/tomtom-navigator/f105/tomtomplusdiensten-add/53989-eigen-stemmen-op-tomtom-5-a.html. Soft32. Unregister Hotkey. [Online] http://forum.soft32.com/pda/RegisterHotKeyUnregisterFunc1-VK_F1-VK_-F2-UnregisterHotKey-ftopict62292.html. SourceForge. MAPIdotnet C# wrapper for MAPI. [Online] http://sourceforge.net/projects/mapidotnet/.
Cédric Moyaert en Thomas Van de Steene
94
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
9. Lijst met figuren
Figuur 1: AdvPSAControl ....................................................................................................... 10 Figuur 2: AdvIconButtonGroup met verschillende AdvIconButtons ............................... 10 Figuur 3: Het standaard PSA toetsenbord .......................................................................... 11 Figuur 4: Het dynamisch PSA toetsenbord ......................................................................... 11 Figuur 5: AdvColorPicker ....................................................................................................... 11 Figuur 6: AdvPhonePop-up................................................................................................... 12 Figuur 7: : AdvNavigatorPop-up .......................................................................................... 12 Figuur 8: : Traditionele vergrootglasfunctionaliteit ............................................................ 13 Figuur 9: Zoom en navigatie functionaliteit........................................................................ 13 Figuur 10: Aangepaste header en footerbalk ................................................................... 14 Figuur 11: PSA met aangepast kleurenpallet..................................................................... 14 Figuur 12: Tekstlaag................................................................................................................ 15 Figuur 13: : Het telefoonboek ............................................................................................... 17 Figuur 14: Contact met meerdere telefoonnummers ...................................................... 17 Figuur 15: Windows Mobile nummer-ingeef scherm, Figuur 16: PSA nummeringeefscherm ................................................................. 18 Figuur 17: PSA Belscherm ...................................................................................................... 19 Figuur 18: overzicht van de verschillende navigatieschermen ....................................... 20 Figuur 19: Toevoegen van een nieuwe navigatielocatie ................................................ 21 Figuur 20: overzicht structuur database photobased GPS .............................................. 22 Figuur 21: Instellingen icoon in het hoofdmenu................................................................. 23 Figuur 22: Wachtwoordscherm, Figuur 23: Keuzescherm................................................. 23 Figuur 24: Instellingenscherm ................................................................................................ 24 Figuur 25: Version Control System - Client-Server Model .................................................. 26 Figuur 26: Knopsimulatie code ............................................................................................. 29 Figuur 27: Windows incoming call pop-up ......................................................................... 30 Figuur 28: Call pop-up code ................................................................................................ 31 Figuur 29: Hoofdmenu tot nieuw contact .......................................................................... 32 Figuur 30: nieuw contact invoeren ...................................................................................... 33 Figuur 31: Aangepast belscherm ......................................................................................... 35 Figuur 32: Beltoetsenbord ..................................................................................................... 35 Figuur 33: De nieuwe TomTom Navigator stem ................................................................. 37 Figuur 34: SMS gateway ........................................................................................................ 39 Figuur 35: SMS gateway code ............................................................................................. 40 Figuur 36: SMS ophaal code................................................................................................. 41 Figuur 37: Sms berichten, Figuur 38: Sms berichten database ........................................ 43 Figuur 39: Snelinstellingen, Figuur 40: Functionaliteit ......................................................... 46 Figuur 41: Agendascherm .................................................................................................... 48 Figuur 42: Herschaling van de agenda .............................................................................. 49 Figuur 43: Agenda database ............................................................................................... 49 Figuur 44: PictoImport ............................................................................................................ 50 Figuur 45: Batterijscherm ....................................................................................................... 51 Figuur 46: Hardware blokkeer code .................................................................................... 53
Cédric Moyaert en Thomas Van de Steene
95
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Figuur 47: Softkey simulatie code ........................................................................................ 54 Figuur 48: Actief proces code .............................................................................................. 56 Figuur 49: busy cursor Windows mobile .............................................................................. 58 Figuur 50: Wait cursor code .................................................................................................. 59 Figuur 51: default cursor code ............................................................................................. 59 Figuur 52: Colorpicker, Figuur 53: Colorpicker uitgeklapt................................................. 60 Figuur 54: Apple Iphone unlock slider ................................................................................. 64 Figuur 55: PSA unlock slider ................................................................................................... 65 Figuur 56: Today Screen Schema ........................................................................................ 66 Figuur 57: check volume code ............................................................................................ 69 Figuur 58: Wekkerfunctionaliteit ........................................................................................... 70 Figuur 59: Wekker instellingen............................................................................................... 71 Figuur 60: Wekker niet instelbaar ......................................................................................... 71 Figuur 61: Stand-by code...................................................................................................... 72 Figuur 62: Mediaplayer interface ........................................................................................ 74 Figuur 63: wakeup code ....................................................................................................... 77 Figuur 64: Foto nemen ........................................................................................................... 79
Cédric Moyaert en Thomas Van de Steene
96
10.
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Verklarende woordenlijst
.NET Compact framework Een afgeslankte versie van het .NET framework dat bedoeld is voor smartphones en PDA’s met het Windows Mobile besturingssysteem. COTS Commercial Off The Shelf – Vooraf geprogrammeerde producten die vooral gebruikt worden omwille van tijdsbesparing. C++ Een objectgeoriënteerde programmertaal, gebaseerd op C. C# Een objectgeoriënteerde programmeertaal ontwikkeld door Microsoft als deel van het .NET initiatief en wordt aanzien als één van de belangrijkste talen voor het platform. Gebaseerd op C++. DLL Dynamic link library, een bibliotheek met functies die door meerdere applicaties gebruikt kunnen worden. DTMF Dual Tone Multi Frequency – Een techniek om tijdens een telefoongesprek opdrachten door te sturen over de telefoon lijn. Deze opdrachten worden verstuurd door het indrukker van een nummertoets. Een voorbeeld hiervan is wanneer u naar uw voicemail belt en de computerstem vraagt om een taal te kiezen door het respectievelijke nummer in te toetsen. Form Een form is een makkelijke manier om een GUI scherm te maken. Het is een container voor componenten als knoppen, tekstvelden, scrollbars,… GUI Graphical User Interface, de vormgeving van het programma, de gebruikersomgeving. Library Zie DLL. m-health Mobile-health, mobile apparaten (vooral gsm’s en smartphones) gebruiken als medisch hulpmiddel (medicatiewekker, hartslagmeter,…) Managed code Code die uitgevoerd wordt op een virtuele machine, dit zorgt voor meer veiligheid en gemak. Populaire programmeertalen om managed code in te schrijven zijn C# en Visual Basic .NET.
Cédric Moyaert en Thomas Van de Steene
97
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap Native/unmanaged code Code die rechtstreeks het besturingssysteem aanspreekt en geen tussenliggende laag gebruikt. P/INVOKE Platform Invoke, stelt de programmeur instaat om native code aan te roepen vanuit managed code Pop-up Een meldingsscherm dat tevoorschijn “springt” boven alle andere schermen. SDK Software development Kit, een verzameling hulpmiddelen die handig zijn bij het ontwikkelen van computerprogrammas. TTS Text-to-Speech, een module die geschreven tekst dynamisch kan laten voorlezen door een gesproken stem. Windows Mobile Het besturingssysteem van Microsoft voor smartphones en PDA’s.
Cédric Moyaert en Thomas Van de Steene
98
11.
Projectdossier PSA (Personal Social Assistant) Aanpassen van smartphone gebruikersinterface voor mensen met een (licht) mentale handicap
Bijlagen
Cédric Moyaert en Thomas Van de Steene
99