• No results found

9.2 Uppfyllda krav

10.1.5 Förbättrat användargränssnitt

Vi har som tidigare nämnts inte lagt någon vikt på användargränssnittet när det gäller färg och form av grafiska komponenter och liknande. Innan man kan anse att man har en färdig version av GoBlue bör man därför titta på utseendet av an- vändargränssnittet och anpassa det som man vill ha det. En anledning till att vi inte har brytt oss om det är att Doberman har stor erfarenhet av design och där- för kan göra detta bättre än oss. Detta ger även möjlighet för den som vidareut- vecklar att bestämma hur detta ska implementeras samt att ge applikationen än- damålsenliga utseenden. Ett förslag är att man skapar möjligheter för användaren att välja utseende själv på applikationen, som i Nokia Sensor [13].

Diskussion - 61

10.2 Erfarenheter

Projektet har gett oss många erfarenheter inom mjukvaruutveckling. Vi har även förstått vikten av att planera vid utveckling av applikationer för mobiltelefoner. Vi har även fått en inblick i tekniken Bluetooth som är ett område som fortfa- rande är ganska nytt och med få användningsområden. För att få en bättre över- blick har vi delat in erfarenheterna i några olika områden.

10.2.1 Symbian C++

Att valet av programmeringsspråk föll på Symbian har gett bra erfarenheter och det kräver lite mer tanke och planering än vad utveckling i Java gör, främst på grund av minneshanteringen som blir mer krävande i Symbianutvecklingen. Va- let har dock inneburit att implementeringen har gått ganska långsamt, jämfört med vad den kanske hade gjort om valet blivit Java. Det var en ganska hög trös- kel innan man kom igång. De olika filer som beskrivs i kapitel 9.4, Programfiler, som utgör en typisk Symbianapplikation var många och inte helt lätt att sätta sig in i. Sedan har en grundläggande sak som hantering av textsträngar känts väldigt krånglig och det tog ett tag innan vi fick klart för oss hur det fungerade med alla olika klasser. En annan sak som har gjort implementeringen långsam är felsök- ning och letande efter minnesläckor. När applikationen har en minnesläcka meddelar emulatorn detta när man stänger ner applikationen. Visual Studio visar adressen för det objekt som inte tagits bort på rätt sätt och man kan då stega ge- nom assemblerinstruktioner för att se när detta minne allokeras. Denna typ av felsökning är dock inte helt lätt och oftast har vi försökt gå igenom koden för att kontrollera att minne som allokerats tagits bort korrekt.

10.2.2 Val av GUI-plattform

Valet av Series 60 har varit positivt. Det är förmodligen den lättaste utveck- lingsplattformen i termer av verktyg, dokumentation och hjälp av olika slag. Fo- rum Nokias discussion board är ett bra forum med inlägg om det mesta. Dock känns det som att det inte är så många färska inlägg, vilket kan tyda på att det inte används lika mycket längre eller att informationen redan finns i andra in- lägg. Det finns även ett annat forum på My-Symbian.com [12b], som verkar vara ganska väl använt men vi har föredragit Nokias forum. Det som vi inte har hittat där har vi heller inte hittat på My-Symbian.com. Vi har tittat lite på hur de

62 - Diskussion

andra plattformarna är uppbyggda och det verkar som alla bygger på samma mönster när det gäller arkitektur, APIer mm.

10.2.3 Utvecklingsmiljön

Andra saker som har gjort utvecklingen långsam är diverse problem med ut- vecklingsmiljön. där egentligen ingenting fungerat helt friktionsfritt. NCF har fungerat väldigt bra för att simulera Bluetoothkommunikation efter att vi väl fått till alla inställningar. Det största problemet hade vi med de virtuella com- portarna som man kan ställa in i det grafiska gränssnittet för NCF. I vår version stämde dock dessa ändringar inte alltid överens med själva programmet och vi var tvungna att ändra i en fil som heter bt.esk för att få det att fungera. Breakpo- ints är ett enkelt sätt att felsöka men, återigen, när man kör emulatorn i NCF finns inte den möjligheten. Då får man ta till alternativa metoder som att skriva ut saker på skärmen vid lämpliga tillfällen vilket är en metod som tar längre tid. De felmeddelanden som emulatorn ger har varit till viss hjälp men felsökningen har tagit mycket tid.

Visual Studio tillsammans med det SDK-plugin som vi har använt fungerar inte alltid som förväntat. I Visual Studio använder man ett workspace där man kan lägga in ett eller flera projekt. När man har lagt in flera projekt i samma works- pace blir det till slut för mycket antingen för Visual Studio eller för datorn att hantera och programmet slutar svara. Det finns ett annat scenario där något gör att man inte längre kan sätta ut breakpoints. Vi har hittat

inlägg i olika forum där folk haft samma problem men ingen verkar ha hittat nå- gon förklaring till problemet. En lösning på båda problemen är att skapa ett nytt workspace i Visual Studio med endast det aktuella projektet. För att bli av med problemet med breakpoints måste man dessutom ta bort alla filer som har ska- pats när man bygger projektet och bygga om från början. När man lägger in yt- terligare projekt är risken stor att man får problem med breakpoints och om man lägger in tillräckligt många projekt kan man räkna med att få problem med att programmet hänger sig. Anledningen till att vi ville ha flera projekt var för att kunna se källkod för vissa exempelapplikationer i samma workspace som koden för GoBlue.

10.2.4 APIer

Det finns många bra APIer som rätt använda sparar mycket tid och minimerar kod i vissa moment. Det är dock inte helt lätt att förstå när och hur man ska an-

Diskussion - 63

vända dem. Dokumentationen är lite svår att hitta rätt i och inte alltid fullstän- dig. Ibland hittar man funktioner i h-filer som inte finns med i någon dokumen- tation. Det hjälpavsnitt som följer med Nokias SDK innehåller dokumentation av APIer och exempelapplikationer där man kan söka och detta har vi använt flitigt.

10.2.5 Dokument

Det finns en mängd dokument på Forum Nokias hemsida som vi har tagit stor del av. Dokumenten är dock väldigt många och ligger på olika ställen på sidan. Det känns väldigt intuitivt till en början var man hittar saker och ting men när man har letat runt ett tag hittar man fler dokument på nya ställen och det blir svårt att få grepp om var man ska leta. Symbians hemsida har också en uppsjö av dokument och den sidan känns mer överskådlig, även om den inte täcker allt när man utvecklar för en viss plattform som Series 60.

10.2.6 Uppdelning av arbetet

Eftersom emulering av Bluetoothkommunikation kräver en processor på minst 2GHz och vi endast har haft tillgång till en dator med den kapaciteten har vi fått dela upp arbetet i två delar, en del bestående av funktionalitetslagret och gräns- snittslagret och en del med kommunikationslagret. Det har fungerat relativt bra och det har också betytt att den ena delen av utvecklingsarbetet inte behövt an- vända NCF för att testa och har således kunnat använda breakpoints för att fel- söka. I slutfasen av projektet när vi försökte få allt att fungera hade det blivit effektivare om vi haft två datorer med möjlighet att testa hela applikationen i NCF.

10.3 Teoretisk analys

Tekniken som GoBlue använder bygger på att minska tiden som två enheter är anslutna med varandra. Som redan konstaterats i kapitel 8.5, Ansluta till annan enhet görs detta för att öka tillgängligheten hos enheten. GoBlue accepterar en- bart anslutningar mellan två enheter i taget. Bluetoothprotokollet arbetar med master/slav förhållanden som beskrivs i kapitel 4.5, Nätverk och tillåter att en master ansluter till sju andra enheter, slavar, och varje slav kan ansluta till minst

64 - Diskussion

en master. Kommunikation med flera enheter samtidigt t ex via en chatfunktion skulle kunna implementeras på flera olika sätt.

• Ansluta, skicka till och koppla ifrån en enhet i taget. Detta kan ta lång tid om protokollet kräver många handskakningar vid anslutning samt om det finns många enheter i närheten.

• Ansluta till alla tillgängliga enheter på en gång och sedan skicka ett med- delande som alla kan ta emot och sedan koppla ifrån. Detta är snabbare än första punkten, dock begränsat till sju andra enheter per anslutning i Blue- tooth fallet.

• Ansluta till alla tillgängliga enheter på en gång skicka och sedan förbli ansluten. Här kan alla enheterna skicka meddelande till varandra genom mastern utan att de är anslutna direkt till varandra. Meddelandet skickas till mastern som vidarebefordrar till övriga enheter.

• En enhet utses till server och de andra enheterna ansluter till denna enhet för att skriva och läsa de meddelanden som skrivs. En typ av svarta tavlan princip där alla har skriv- och läsrättigheter. Om meddelandefrekvensen är tät kan det bli kommunikationsmässigt krävande att hålla sig uppdaterad. • Utan att ansluta skickar man ut meddelandet dvs, utan att veta innan om

någon lyssnar på det. Detta kräver att alla enheter ständigt lyssnar efter inkommande meddelanden utan att först vara anslutna. Detta är inte an- vändbart med Bluetooth då det alltid krävs en anslutning innan kommuni- kation kan förekomma.

Multiple access protokoll som ALOHA och CSMA är inte användbara i Blueto- othsammanhang då dessa bygger på att kommunikationen sker på samma kanal. Bluetooth använder 79 kanaler (se kapitel 4.5, Nätverk) och det kan således exi- stera flera förbindelser parallellt.

10.4 Slutord

Som går att läsa i Bilaga B är mobiltelefonmarknaden idag väldigt fragmenterad när det gäller olika modeller och vilka tekniker de stödjer. Olika modeller fyller olika syften och behov. Det krävs en del eftertanke när man ska utveckla appli- kationer som fungerar på många plattformar, det är svårt att utveckla en applika- tion som fungerar på alla mobiltelefoner på marknaden. På samma sätt som oli- ka enheter fyller olika behov fyller applikationer olika behov och riktar sig till olika målgrupper. Innan man utvecklar en applikation skulle man kanske därför

Diskussion - 65

utgå från vilken målgrupp en applikation ska rikta sig mot snarare än att se till att välja en plattform som når ut till så många modeller som möjligt.

Något som skulle kunna ha gjorts annorlunda är en bättre förundersökning. Att titta på vilka marknadsandelar de olika telefonmodellerna har skulle visa hur många mobiltelefonanvändare man skulle nå ut till med de olika alternativen i kapitel 5, Utvecklingsplattform. Där har valet av GUI-plattform dessutom grun- dats på världsmarknaden men valet av Symbian OS har grundats på Sverige- marknaden, detta beroende på informationstillgänglighet. De olika versionerna av Symbian OS och kompatibiliteten mellan dessa kunde ha utretts i ett tidigare skede men där blev vi lite vilseledda av information som sade att bakåtkompati- bilitet skulle gälla.

Det roligaste med projektet var att installera applikationen på en riktig mobilte- lefon och utseendet är betydligt snyggare på mobiltelefonen än i emulatorn. Det som är lite tråkigt är att det inte går att köra applikationen på alla mobiltelefoner utan endast ett begränsat antal modeller.

67

Referenser

Internet

1 Bedd (2005), Bedd community [www] < http://www.bedd.com/ >

Verifierad: 2005-06-15

2 Benhui (2005), Benhui.net – Source for J2ME Bluetooth Mobile 3DMIDP 2.0 [www]

<http://benhui.net/modules.php?name=Midp2Phones> Verifierad: 2005-06-08

3 Bluetooth Crack (2005), New hack cracks ’secure’ Bluetooth devices [www]

<http://www.lostcoders.net/index-single-1937.htm> Verifierad: 2005-06-14

4 Bluetooth SIG (2004-11-08), Bluetooth Special Interest Group Launches Bluetooth Core Specification Version 2.0 + Enhanced Data Rate [www] <http://www.Bluetooth.com/news/releases.asp?A=2&PID=1437&ARC =1>

Verifierad: 2005-06-09

5 Bluetooth Technology (2005), Bluetooth Technology [www]

<http://progtutorials.tripod.com/Bluetooth_Technology.htm#_Toc41989 843>

Verifierad: 2005-06-09

6 Doberman (2005), Uppdragsgivarna Dobermans hemsida [www] <www.doberman.se>

Verifierad: 2005-08-22

7 Forum Nokia (2005). Forum Nokia – Developer Resources [www] a <http://www.forum.nokia.com/main/1,,1_0,00.html>

Verifierad: 2005-06-08

b < http://discussion.forum.nokia.com/forum/> Verifierad: 2005-06-22

68 - Referenser

c Inlägg i forum av Seppo_fn et al

<http://discussion.forum.nokia.com/forum/showthread.php?s=&threa did=46288&highlight=%2ARProperty%2A>

Verifierad: 2005-08-23

d Inlägg i forum av Brainwestendorf et al

<http://discussion.forum.nokia.com/forum/showthread.php?s=&threa did=22858>

Verifierad: 2005-08-23

8 IEEE 802.15 (2005), IEEE 802.15 Working Group for Wireless Per- sonal Area Networks (WPANs) [www]

< http://www.ieee802.org/15/pub/TG1.html> Verifierad: 2005-06-09

9 Java sun (2005), Connected Limited Device Configuration (CLDC) [www]

<http://java.sun.com/products/cldc/index.jsp> Verifierad: 2005-08-22

10 Mobiluck (2005), Mobiluck Bluetooth Software [www] < http://mobiluck.com/home_en.php>

Verifierad: 2005-06-19

11 Mutimedia 1 (2005), Multimedia 1 Bluetooth Homepage [www] <home.wlv.ac.uk/~c0371166/ Bluetooth_Logo.gif>

Verifierad: 2005-06-09

12 My Symbian (2005), Symbian OS Communicators and Smartphones Info Center [www]

a < http://my-symbian.com/main/index.php> Verifierad: 2005-06-22

b < http://my-symbian.com/forum/> Verifierad: 2005-06-22

13 Nokia Sensor (2005), Nokia Sensor, See and be seen [www] < http://www.nokia.com/nokia/0,1522,,00.html?orig=/sensor > Verifierad: 2005-06-15

14 Series 60 (2005). Series 60 Platform [www]

< http://www.series60.com/terminal_manufacturers > Verifierad: 2005-06-08

Referenser - 69

15 SonyEricsson (2005), Application Focus Areas [www]

<http://developer.sonyericsson.com/site/global/home/techintro/appfocus /p_appfocus.jsp>

Verifierad: 2005-08-23

16 Susning (2005), Skaffa dig en susning.nu [www] a <http://susning.nu/Ad_hoc>

Verifierad: 2005-06-22

b <http://susning.nu/Ad_hoc-n%e4t> Verifierad: 2005-06-22

17 Symbian OS (2005). Symbian OS – the mobile operating system [www] a <http://www.symbian.com/about/history.html> Verifierad: 2005-06-08 b <http://www.symbian.com/technology/create-symb-OS- phones.html> Verifierad: 2005-06-22 c <http://www.symbian.com/developer/> Verifierad: 2005-06-19 d <http://www.symbian.com/developer/techlib/v70sdocs/doc_source/ DevGuides/NewIn7.0s.html#OSGuide%2eNewIn7%2e0s> Verifierad: 2005-06-22 e <http://www.symbian.com/developer/techlib/papers/goodapplication s/goodapps.html> Verifierad: 2005-06-22 f <http://www.symbian.com/developer/techlib/v70sdocs/doc_source/D evGuides/UIs.html#OSGuide%2eUIs> Verifierad: 2005-06-22 g <http://www.symbian.com/developer/techlib/v70sdocs/doc_source/D evGuides/UIs.html#OSGuide%2eUIs> Verifierad: 2005-06-22 h <http://www.symbian.com/developer/techlib/v70sdocs/doc_source/D evGuides/UIs.html#OSGuide%2eUIs> Verifierad: 2005-06-22 i <http://www.symbian.com/developer/techlib/v70sdocs/doc_source/D evGuides/UIs.html#OSGuide%2eUIs> Verifierad: 2005-06-22

70 - Referenser

18 Tutorial-reports (2005), Bluetooth Tutorial [www] a <http://www.tutorial- reports.com/wireless/Bluetooth/introduction.php> Verifierad: 2005-06-22 b < http://www.tutorial- reports.com/wireless/Bluetooth/technology.php > Verifierad: 2005-06-22 c < http://www.tutorial- reports.com/wireless/Bluetooth/Bluetoothcoreprotocols.php> Verifierad: 2005-06-22

19 Wikipedia (2005), Bluetooth – Wikipedia, the free encyclopedia [www] <http://en.wikipedia.org/wiki/Bluetooth>

Verifierad: 2005-06-09

Övriga referenser

20 AO and AS (2004-08-26), Symbian OS: Active Objects And The Active Scheduler, Version 1.0 [www] <http://www.forum.nokia.com/info/sw.nokia.com/id/759268ae-c2b5- 4fed-8e8d- f6f417fc3658/Symbian_OS_Active_Objects_And_The_Active_Schedul er_With_Example_v1_0b_en.zip.html> Verifierad: 2005-06-15

21 Bluetooth Architecture (2000), Bluetooth protocol architecture, white paper [www]

<http://www.omimo.be/magazine/00q4/2000q4_p028.pdf> Verifierad: 2005-06-09

22 Bluetooth Core, (2003-11-05), Specification of the Bluetooth System [www]

<https://www.Bluetooth.org/docman2/ViewProperties.php?group_id=90 &document_content_id=42104>

Referenser - 71

23 Compatibility (2005-05-11), Series 60 Platform: Source And Binary Compatibility, version 1.0 [www] <http://www.forum.nokia.com/info/sw.nokia.com/id/fd3f824a-d989- 4966-8ebc- d057ce74084d/Series_60_Platform_Source_And_Binary_Compatibility v1_0_en.pdf.html> Verifierad: 2005-06-22

24 Designing BT App (2005-04-07) Symbian OS: Designing Bluetooth Ap- plications in C++, version 1.1 [www] <http://www.forum.nokia.com/info/sw.nokia.com/id/6a2eacf4-d451- 4d86-b265- d6452012bd43/Symbian_OS_Designing_Bluetooth_Applications_In_C pp_v1_1_en.pdf.html> Verifierad: 2005-06-21

25 Designing Bluetooth Applications (2005-04-07), Sym-

bian_OS_Designing_Bluetooth_Applications_In_Cpp_v1_0_en.pdf [www]

<http://www.forum.nokia.com/main/1,6566,1_43_40,00.html> Verifierad: 2005-06-17

26 Designing C++ Applications (2003-10-27), Developer Platform 2.0 for Series 60: Designing C++ Applications [www]

<http://www.forum.nokia.com/info/sw.nokia.com/id/4715b98f-f157- 483c-9319-

f0e59857c955/DP_2_0_for_S60_Designing_CPP_Apps_v1_0_en.pdf.ht ml>

Verifierad: 2005-06-17

27 Gamma, Erich; Helm, Richard; Johnson, Ralph; & Vlissides, John (1995).

Design Patterns: Elements of Reusable Object-Oriented Software; Ad- dison Wesley

28 IEEE 802.11j (2004), IEEE Standard for Information technology – tele- communications and information exchange between systems – Local and metropolitan area networks [www]

< http://standards.ieee.org/getieee802/download/802.11j-2004.pdf> Verifierad: 2005-06-14

72 - Referenser

29 Intel Architecture (2000), Bluetooth Architecture Overview, James Kar- dach, Mobile Computing Group, Intel Corporation

<ftp://download.intel.com/technology/itj/q22000/pdf/art_1.pdf> Verifierad: 2005-06-13

30 J2ME (2002), Java 2 Platform, Micro Edition [www] <http://java.sun.com/j2me/reference/whitepapers/#ovw> Verifierad: 2005-08-24

31 Kummel(2005). Tobias Kummel på Doberman. Regelbundna samtal med handledare på Doberman. 2005-02 till 2005-06

32 NCF (2005), Nokia Connectivity Framewok 1.2 [www]

< http://www.forum.nokia.com/info/sw.nokia.com/id/da2861ce-8e48- 4399-b35f-

d332e210cc48/DS__Nokia_Connectivity_Framework.pdf.html> Verifierad: 2005-06-14

33 Personlig trafikinformation (2004), Personlig trafikinformation inom kollektivtrafik, Lars Wellner , Magisterprogram i mobil kommunikation. Högskolan Kalmar

34 Portable UI (2004)

a Symbian OS: Building Portable And Scalable UI v1.0 [www]

<http://www.forum.nokia.com/info/sw.nokia.com/id/09aafdd7-31b9- 4fab-9f6d-

ca5835add82a/Symbian_OS_Building_Portable_And_Scalable_UI_ v1_0_en.pdf.html>

Verifierad: 2005-06-17

b Designing and building portable UIs for Symbian OS: How to design dialog interfaces v1.1 [www]

<http://www.symbian.com/developer/techlib/papers/cpp_porting.asp 35 SDK 2.1 Rel Notes, (2004-05-25), RELEASE NOTE for SERIES 60 SDK

2.1 FOR SYMBIAN OS [www]

<http://www.forum.nokia.com/info/sw.nokia.com/id/03e6ca0d-719e- 4f90-9322-cc96566d81a5/s60_sdk_21_cw_ReleaseNotes.txt.html> Verifierad: 2005-06-21

Referenser - 73

36 SDK 2.6 Rel Notes, (2004-12-14) Release Note for Series 60 2nd Edition SDK for Symbian OS [www]

<http://www.forum.nokia.com/info/sw.nokia.com/id/adf5d863-c083- 4ea8-b316-

04391e30bf31/s60_2nd_fp2_sdk_msb_releasenotes.txt.html> Verifierad: 2005-06-22

37 SDK HELP 2.1 (2004), SDK 2.1 for Symbian OS Supporting Microsoft Visual C++ .NET [www]

< http://www.forum.nokia.com/main/0,,034-4,00.html > Verifierad: 2005-06-13

38 Series 60 Intro (2005-02-03), Series 60 Platform: Introductory Guide [www]

< http://www.series60.com/developers?pbId=20&pbType=7&c_id=2> Verifierad: 2005-06-15

39 Series 60 SDK (2005), Series 60 Developer Platform SDK for Symbian OS, for C++ [www]

http://www.forum.nokia.com/info/sw.nokia.com/id/b5d1f2a6-0087- 4b06-b7c3-832e96a5a1de/DS_Series_60_cpp_SDK.pdf.html Verifierad: 2005-06-14

40 Series 60 White Paper (2004-06-28), Series 60 Developer Platform: In- troductory White Paper Version 1.1 [www]

<http://www.series60.com/?action=showPage&pbType=7&pbId=20&c _id=2&c_id2=0&selectDoc=175>

Verifierad: 2005-06-14

41 Windows Symbian (2005), Symbian OS C++ for Windows C++ pro- grammers [www]

<http://www.symbian.com/developer/techlib/papers/windows_symbian OS/Windows_SymbianOS.pdf>

75

Bilaga A – Ordlista

ACL Asynchronous Connection-Less API

Application Program Interface, en uppsättning beprövade meto- der, klassdefinitioner som kan användas för att kommunicera med andra delsystem.

ARQ Automatic Repeat Request, en av Bluetooth implementeringar av felrättande kod.

AVKON GUI-modul utöver UIKON för Series60

BER Bit Rate Error, anger hur stor sannolikhet det är att en bit blir fel. Låg BER innebär få fel.

CKON GUI-modul utöver UIKON för Series80 och Series90 CLDC Connection Limited Device Configuration

EIKON GUI-modulen i EPOC

EPOC Operativsystem utvecklat för PDA-enheter och mobiltelefoner. Från version 6 kallat Symbian OS.

FEC Forward Error Control, en av Bluetooth implementeringar av fel- rättande kod.

GUI Graphical User Interface, grafiskt användargränssnitt.

IrDA Infrared Data Association, definierar specifikationer för infraröd trådlös kommunikation.

J2ME Java 2 Platform, Micro Edition, Javaplattform som är anpassad för mindre mobila enheter.

JSR

Java Specification Request, en samling APIer som är klumpade tillsammans för att möjliggöra för java att komma åt funktioner utanför den sandbox den befinner sig ifrån början.

JSR 75 Den JSR som låter java läsa och skriva i filsystemet, nödvändigt om man vill kunna läsa och skriva filer genom att använda java. JSR 82

Den JSR som möjliggör att java kan komma åt Bluetooth på en- heten. JSR 82 innefattar även stöd för OBEX på Bluetoothproto- kollet.

L2CAP Logical Link Control and Adaptation Protocol,

LAN Local Area Network, flera datorer som är sammankopplade i ett lokalt nätverk med begränsad räckvidd.

MIDP Mobile Information Device Profile

OBEX Object Exchange, ett transportprotokoll som stöder överföring av hela objekt, används framförallt i IrDA och Bluetoothteknik.

76 - Bilaga A

PAN

Personal Area Network, ett lokalt nätverk som sträcker sig till en

Related documents