ITWEM1. Home Management System. Udarbejdet af: Mads Michelsen (04200) Morten Engberg (04268) Sune Hedetoft (03800) Dato: 4.



Relaterede dokumenter
EasyRun En løbers bedste ven

IAI Quick Start Guide

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Projekt rapport. for. Zigbee kommunikation

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Svendeprøve Projekt Tyveri alarm

1 Ordliste 2. 2 Indledning Problemstillinger Problemformulering Problemafgrænsning Mål med projektet...

Efter installation af GEM Drive Studio software fra Delta s CD-rom, skal hoved skærmbilledet se således ud: (koden til administrator adgang er: admin)

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

2. Systemarkitektur... 2

Projekt Rapport. Windows Embedded Mobile. Rasmus Larsen, Thomas Vogel & Harald Nielsen. Version 1.00 Side 1 af 26

WEM1 Projekt. Bluetooth-Remote. Anders Bilde (06740) Kim Thomsen (06768) Peter Bertelsen (05210)

ITWIN1. Afsluttende projekt. PhotoDays. Benjamin Sørensen (02284) Tomas Stæhr Berg (03539)

Arduino Programmering

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Grafisk visning af hjertelyde

ITWEM1. Kitchen Commander. Group 8 - SVAPS 4/6/2009. Kasper Sørensen Jesper Thue Kristensen Frederik Laulund

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

Microcontroller, Arduino

Indholdsfortegnelse for kapitel 3

Manual til Kundekartotek

Automatisk Vandingssystem. Rettelser. 1 af 11

MobileCTI Dialer Installations og konfigurations vejledning

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Database for udviklere. Jan Lund Madsen PBS10107

Indholdsfortegnelse:

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob

Installation af GPS med tilslutning til USB port

Guide til opdatering af Parrot CK3100 LCD, 3200LS Color, 3200LS+ og MK6100 med en Parrot Dongle

Fjernstyring af Lego-robot med WiiMote og Tahoe-II

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Software Dokumentation

PID2000 Archive Service

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE

Microcontroller, Arduino

Systemair Connect. Opsætning

FitLight Trainer brugsvejledning. Tablet controller. version 1.7

PHP kode til hjemmeside menu.

DM531 - Softwarearkitektur Projekt - TaxaTracer, Statisk Kort. Martin Dissing-Hansen Alexander Poopeiko Jens Riise Danielsen

Grundlæggende OOA - OOD

Vejledning til Teknisk opsætning

ELCANIC A/S. ENERGY METER Type ENG110. Version Inkl. PC program: ENG110. Version Betjeningsvejledning

Installation og afvikling

Resumé NSI har udviklet en funktionel prototype med en visuel brugergrænseflade, der giver ikke-teknikere mulighed for at tilgå adviseringsservicen.

Micro-pixel Neopixel til micro:bit

Tildel fast IP adresse til BC9xxx med BootP og oprettelse kommunikation fra TwinCat

Introduktion OBS: Forberedelse

Remote m. Bluetooth Interface Projekt Rapport

Kravspecifikation For. Gruppen

Der er forsøgt skrevet en lille notits hver gang der er lavet noget, dog kan der være nogle ting som ikke er blevet kommenteret.

Dell Adapter - USB 3.0 til HDMI/VGA/Ethernet/USB 2.0

INSTALLATIONSGUIDE. Installationsguide. for Dynamics AX 4.0. til. dansk udgave. Frederiksberg, maj Docversion: 1.01.

Automatisk Vandingssystem

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

INSTALLATIONSGUIDE. Installationsguide. for Dynamics AX 4.0. til. dansk udgave. Frederiksberg, januar Docversion: 1.02.

Westermo GDW-11 GSM Modem forbindelse til CXxxxx

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Arkitektur for begyndere

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Wahlberg Surtitle Display

SimPal-T4. GSM Stikkontakt Bestillings nummer Vejledning Manual version 2.0

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC.

ØKONOMISTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE

Brugermanual. Tripple Track Fleet

Opsætning af xcon og Logix Controller

Automatisk Vandingssystem. Rettelser. 1 af 11

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Tildel fast IP adresse til BC9xxx med ARP og oprettelse kommunikation fra TwinCat

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

GSM SMS Modem MODEL: SA RTU-1 V1.01

Mobile løsninger til salg, service og flådestyring. Jens Davidsen CEO WPA Mobile ApS.

Compass GPS installation

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

OpenTele datamonitoreringsplatform

FireBUS PARKERINGSVENTILATION

Manual til Statistik. ShopStatistics. Med forklaring og eksempler på hvordan man håndterer statistik. Consulo ApS

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

Start af nyt schematic projekt i Quartus II

IT Support Guide. Installation af netværksprinter (direkte IP print)

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system

Plugin-arkitektur med.net

Vejledning til opsætning af: Dankort terminal model Flexi : Side 2 HUB : Side 4 Opsætning af PSAM : Side 5. Vigtigt!

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Netværks opsætning af IP modulet:

Selektro CCM App. Brugermanual. Selektro CCM App Brugermanual DK. Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup. Copyright Selektro A/S 2017

03/ PW xxxxxdk BETJENINGSVEJLEDNING. SKIOLD FlexMix PC software Version 2.34

Indholdsfortegnelse for kapitel 1

Ventilationsaggregater. Systemair Access. Automatik til Geniox ventilationsaggregater

Dr.Sherlock INSTALLATION. 1.0 Diagram TEMPERATUR - OVERVÅGNING

Standardisering af PLC Programmering. SESAM Præsentation 2. November 2016

Wii Software Modificering. Uber Guide

Sektornet VPN Installationsvejledning Windows Vista/7

Kontraktbilag 5 Beskrivelse af integration mellem defibrillator/monitor og Præhospital Patientjournal.

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor

DME Bootstrap Version 1.4x

AUTOMATION SERVICE. Sådan anvender du programmet Automation Service. Udviklet af PC SCHEMATIC A/S

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Forskellige Java versioner

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn

Transkript:

ITWEM1 Home Management System I2C Temp. Sensor GPIO Tænd/Sluk Sensor SPI Alarm Bluetooth Udarbejdet af: Mads Michelsen (04200) Morten Engberg (04268) Sune Hedetoft (03800) Dato: 4. juni 2009 Ingeniørhøjskolen i Århus

Indholdsfortegnelse 1 Indledning 1 1.1 Formål 1 1.2 Referencer 1 1.3 Definitioner 1 1.4 Læsevejledning 2 2 Projektbeskrivelse 3 2.1 Hardware 3 3 Arkitekturdesign 5 3.1 HMS Konsol 5 3.1.1 Presentation layer 6 3.1.2 Business Layer 6 3.1.2.1 HMS MeasurePoint 8 3.1.3 Data Access Layer 9 3.2 HMS Mobil Klient 11 3.2.1 Presentation layer 12 3.2.2 Business layer 13 3.2.3 Data Access layer 14 4 Resultat og test 15 4.1 Diskussion af opnåede resultater 16 5 Opnåede erfaringer 16 5.1 Tahoe touchscreen events 16 5.2 Invalid Operation Exception 16 5.3 Serialisering mellem Compact - og Micro Framework 16 5.4 MF og 1-Wire 16 6 Konklusion 17 6.1 Fremtid 17 7 Bilag 18 7.1 Figurliste 18 7.2 Tabelliste 18 7.3 Diagram farve betegnelser 18 7.4 Billeder af HMS 18 7.4.1 HMS Konsol 18 7.4.2 HMS Mobil Klient 19

1 Indledning 1.1 Formål I forbindelse med ITWEM1 kurset på Ingeniørhøjskolen i Århus (IHA), skal der udarbejdes et projekt, hvor der inddrages dele af den teori der er blevet undervist i. Denne rapport beskriver det projekt som Morten Engberg, Mads Michelsen og Sune Hedetoft har beskæftiget sig med. Projektet har fået navnet: Home Management System (HMS) og omhandler et system til overvågning af hjemmet. Rapporten vil give læseren, med den rette tekniske forståelse for faget, et indblik i, hvordan løsningen er blevet implementeret og hvordan det endelige resultat er blevet opfyldt i henhold til en udført test. 1.2 Referencer Bánský, P. (2007). 1-Wire Bus and.net Micro Framework. Hentede 2009 fra About.NET in Embedded World: http://bansky.net/blog/2007/10/one-wire-bus-and-micro-framework/ Device Solutions.net. (2009). Tahoe-II Development Board. Hentede 2009 fra http://devicesolutions.net/products/tahoeii.aspx Kühner, J. (2008). Expert.NET Micro Framework. Apress. Martin, R. C., & Martin, M. (2006). Agile Principles, Patterns and Practices in C#. Pearson Education Inc. Microsoft. (2009). WindowsClient.NET. Hentede 2009 fra Windows Presentation Foundation: http://windowsclient.net/ Århus Tekniske Bibliotek. (2009). Litteraturlister og litteraturhenvisninger. Hentede 2009 fra http://www.atb.dk/litteraturlister-og-litteraturhenvisninger-6595.aspx 1.3 Definitioner Følgende liste forklarer de definitioner der er anvendt i rapporten Definition Forklaring HMS Home Management System IHA Ingeniørhøjskolen i Århus Tahoe Tahoe II developer kit (Device Solutions.net, 2009) HMS Mobil Klient Applikationen der afvikles på Windows Mobile og kan forbinde til HMS HMS Konsol Applikationen der afvikles på Tahoe II Developer kit og har forbindelse til enheder i hjemmet. WPF Windows Presentation Foundation (Microsoft, 2009) MF.NET Micro Framework CF.NET Compact Framework 03800 Sune Høffding Hedetoft Side 1 af 19

1.4 Læsevejledning Denne rapport indeholder en generel beskrivelse, samt funktionelle krav og design af HMS. Der er ligeledes vedlagt en CD, hvor denne rapport findes i digital form. Derudover er der på cd en vedlagt datablade og kildekoden for systemet. Kapitel 1: Indledning Indledning til projektet, formål, referencer og definitioner. Kapitel 2: Projektbeskrivelse Definerer projektets funktionelle krav, og en generel beskrivelse af systemet. Kapitel 3: Arkitekturdesign Implementering af systemet og den anvendte arkitektur. Kapitel 4: Resultat og test Resultat og test af systemet Kapitel 5: Opnåede erfaringer Beskriver opnåede erfaringer og problemstillinger under projektet Kapitel 6: Konklusion Konklusion af systemet Kapitel 7: Bilag Refererede dokumenter gennem rapporten, samt yderligere information der ikke falder ind i rapportens punkter. Generelt: Referencer angives med Harvard-formatet (Århus Tekniske Bibliotek, 2009), som angiver forfatter/virksomhed efterfulgt af årstal. Læseren kan ved en sådan henvisning slå op i referencer og finde uddybende information til emnet. Figurer nummers med fortløbende figurnummer efterfulgt af beskrivende tekst Tabeller nummers med fortløbende tabelnummer efterfulgt af beskrivende tekst Forkortelser angives i parenteser efter det fulde navn. Forkortelsen anvendes herefter uden uddybning af dens betydning 03800 Sune Høffding Hedetoft Side 2 af 19

2 Projektbeskrivelse Ideen med HMS er at integrerer forskellige perifere enheder i hjemmet, som f.eks. lys, temperatur og alarm sensorer. Systemet skal gøre det muligt at overvåge, om man f.eks. har er glemt at slukke lyset i bryggerset, om temperaturen er tilpas i alle rum, eller om man f.eks. har glemt at lukke alle vinduer i huset inden man tager hjemmefra. Figur 1 Illustration af Home Mangement System (HMS) Ovenstående billede viser en illustration af det ønskede system. Mobiltelefonen/PDA kommunikerer via Bluetooth med Tahoe II kortet, som er forbundet til forskellige perifere enheder. Enhederne kan aflæses fra både Tahoe II og mobiltelefon/pda, som vises til brugeren via et grafisk layout. På Tahoe II og mobiltelefon/pda, vil det grafiske bruger interface anvende touch funktionaliteten. 2.1 Hardware Projektet tager brug af følgende hardware. Tahoe II Developer Kit Windows Mobile Serial til Bluetooth Adapter Temperaturføler (I2C) Tænd/Sluk sensor (GPIO ) Alarm simuleret med STK500 developer kit (SPI) 03800 Sune Høffding Hedetoft Side 3 af 19

Figur 2 illustrerer et blokdiagram over systemet. SPI GPIO Figur 2 HMS Blokdiagram 03800 Sune Høffding Hedetoft Side 4 af 19

3 Arkitekturdesign Det samlet HMS er delt op i to delsystemer. Udvikling til HMS konsol, som er et Microsoft.NET Micro framework applikation og HMS mobil klient som er en Windows Mobile applikation, udviklet i Microsoft.NET Compact framework. I de efterfølgende afsnit beskrives arkitekturen for de to delsystemer. 3.1 HMS Konsol Applikationen på HMS konsolen er udviklet i Microsoft.NET Micro Framework og er bygget som en lagdelt struktur. Presentation layer HMS GUI Business layer RemoteController HMS Controller HMS Mesaurepoints Data Access Layer Data Layer HMS Communication Legend Egenudviklede pakker og klasser Eksterne Pakker og klasser Interfaces Sensors Bluetooth Ekstern Hardware Figur 3 Pakkediagram HMS Konsol Lag Presentation layer Business layer Data Access layer Data layer Beskrivelse Indeholder HMS GUI pakken, som præsenterer den grafisk brugergrænseflade. Står for al forretningslogik mellem presentation layer og Data access layer. RemoteController klassen står dog udelukkende for logikken til HMS mobil klient. Her tilgås der adgang til de forskellige perifere enheder fra forskellige busser, som er understøttet af HMS konsolen. Er perifere enheder, i form af temperaturføler og simuleret døre, vinduer, lys og alarm, som er koblet til HMS konsolen. Bluetooth enheden anvendes til forbindelse mellem HMS konsole og HMS mobil klient 03800 Sune Høffding Hedetoft Side 5 af 19

3.1.1 Presentation layer Her beskrives det udviklede menu struktur til HMS Konsol. Programmet viser ved opstart en hovedmenu, hvor der kan trykkes ind på undermenuer. Hver undermenu viser enheder af den pågældende type og har mulighed for at returnere til hovedmenuen. Presentation layer HMS GUI Application Window +Run() Program -mainprogram +Main() BaseWindow «interface» IState Menu Windows MainMenuWindow WindowsMenuWindow LightsMenuWindow StateHandler +Start(in p : Program) DoorsMenuWindow TempMenuWindow SetupMenuWindow Business layer HMS Controller Figur 4 Klassediagram over pakken HMS GUI Ved programopstart sender Program klassen en instans af sig selv til StateHandler. Denne sørger for at sætte første State til MainMenu og derved loade et Window objekt i program objektet. Når programmet er startet og Main Menu vises, vil event fra brugerinput registreres og kalde et nyt State via IState interfacet, som så loader den valgte menu. Til generering af det grafiske layout på hver menu vindue, er der anvendt Micro Frameworkets GUI objekt model, som er baseret WPF (Microsoft, 2009), men som er uden XAML understøttelse. Dvs. at alle objekter skal oprettes og placeres manuelt i paneler, i den rigtige rækkefølge. 3.1.2 Business Layer Business laget har ansvaret for at styre forretningslogikken for HMS. Figur 5 illustrerer business lagets opbygning. Pakken HMS MeasurePoint er beskrevet i afsnit 3.1.2.1 03800 Sune Høffding Hedetoft Side 6 af 19

Figur 5 Klassediagram over pakken HMS Controller Klassen HMSControl er en singleton og har ansvar for at tilføje nye måleenheder til systemet, som derved ligges i en arraylist. Måleenhederne er angivet i pakken HMS MeasurePoint, som er uddybet i afsnit 3.1.2.1. Klassen kører sin egen tråd som fyrer en række events, når der er hentet en ny måling. Eventene indeholder et array med MeasurePoint på den samme type enhed. HMSControl implementere 2 interfaces, som anvendes af den HMS GUI pakken, samt RemoteController klassen. Denne klasse står for forretningslogikken til at styre den information, som skal sendes til HMS Mobil Klient. Kommunikationen sker over en Bluetooth forbindelse, som tilgås gennem UART bussen i HMS Communication pakken. 03800 Sune Høffding Hedetoft Side 7 af 19

3.1.2.1 HMS MeasurePoint Pakken har ansvaret for at holde styre på alle de måleenheder som systemet kan supportere, samt opsamling af målingerne. Figur 6 Klassediagram over pakken HMS MeasurePoint Systemet supporterer en række måleenheder, som er angivet i denne pakke. Alle enheder afledes fra MeasaurePoint klassen. MeasurePoint klassen indeholder en arraylist med de sidste ti målinger for hver enhed. En måling er af typen Measaurement. Fra measurepoint er det derfor muligt at få den nyeste måling samt de sidste ti målinger. Da systemet har forskellige temperaturføler, er disse afledt af klassen Temperature. Temperaturfølerne anvender I2C bussen og kører deres egen tråd, som derved henter en ny måling ved et bestemt interval. Alarm klassen anvender SPI bussen, mens de resterende enheder Door, Window, og Light anvender GPIO (Input/Output) bussen. Fælles for disse enheder er at de abonnerer på et event i HMS Communication pakken, som fyres når der sker en ændring som f.eks. hvis en dør låses eller omvendt. 03800 Sune Høffding Hedetoft Side 8 af 19

3.1.3 Data Access Layer Laget består af én pakke som har ansvaret for at kommunikere til de perifere enheder, samt bluetooth modulet, som er installeret på forskellige busser på HMS konsolen. Figur 7 Klassediagram over pakken HMS Communication Systemet anvender en række busses, som er implementeret på dette lag. Fælles for alle busser er at de er afledt fra BUS, som er en abstrakt klasse, der har to abstrakte funktioner (Write, Read). Herunder er der udtaget koden for hvordan de forskellige busser sættes op i.net Micro Framework. 03800 Sune Høffding Hedetoft Side 9 af 19

UARTBus opsætning: Til at kommunikere over en bluetooth forbindelse er der anvendt en RS232 bluetooth adapter. På Tahoe kortet er UART1 forbundet til en RS232 transivere. Kommunikationen til denne sker gennem en seriel comport (COM1) og kan sættes op på følgende måde: SerialPortObj = new SerialPort(portName, 9600, Parity.None, 8, StopBits.One); SerialPortObj.Open(); SerialPortObj.DataReceived += new SerialDataReceivedEventHandler(this.SerialData); Der abonneres på et event, som bliver kaldt, når der modtages data. I2CBus opsætning: I2C bussen anvendes af temperaturfølerne. Der er to vigtige parameter for opsætning af I2C bussen. Adresse på enheden som der skal kommunikeres med samt clockfrekvensen. Herunder ses instansiering af I2C bussen. Microsoft.SPOT.Hardware.I2CDevice.Configuration config = new Microsoft.SPOT.Hardware.I2CDevice.Configuration(adresse, clockratekhz); this.device = new Microsoft.SPOT.Hardware.I2CDevice(config); SPIBus opsætning: For hver SPI enhed der skal kommunikeres med, skal der oprettes en instans af SPI klasen. Klassen modtager en SPI.Configuration inner class i dens konstruktor. Herunder ses hvordan opsætning af SPI bussen sker. SPI.Configuration config = new SPI.Configuration( chipselectpin, //chip select port false, //IC is accessed when chip select is low 1, //setup time 1 ms, is actually min 10 ns 1, //hold chip select 1 ms after transfer true, //clock line is high if device is not selected false, //data is sampled at falling edge of clock clockratekhz, //clock rate in khz spimodule //select SPI bus ); this.spibus = new SPI(config); GPIOBus opsætning: I systemet er der anvendt en række Input/output (GPIO) pins til at indikere om døre og vinduer er åbne eller låst, og om lyset er tændt eller slukket. Alle pins er sat til interrupt mode, som betyder at der bliver kaldt et OnInterrupt event, når der kommer et signal på en pin. InterruptPort gpiointerrupt = new InterruptPort( pin, //Pin number false, //Glicth filter Port.ResistorMode.PullUp, //Resistor mode Port.InterruptMode.InterruptEdgeHigh //Interrupt mode ); gpiointerrupt.oninterrupt += new NativeEventHandler(interrupt_OnInterrupt); 03800 Sune Høffding Hedetoft Side 10 af 19

3.2 HMS Mobil Klient Er et Windows Mobile projekt som er udviklet i.net Compact Framework 3.5 og er en mobil udgave af enheden i hjemmet (HMS Konsol), som gør det muligt at se de enkelte sensorers status. Der kommunikeres med HMS Konsol via Bluetooth, hvor data omkring de enkelte sensorer opdateres når deres værdier ændrer sig. Figur 8 viser den overordnede designstruktur for HSM Mobil Klient projektet. Presentation Layer GUI Business Layer SensorController Data Access Layer Data Layer Mobile Communication Legend Egenudviklede pakker og klasser Eksterne Pakker og klasser Interfaces Bluetooth Ekstern Hardware Figur 8 HMS Mobil Klient pakkediagram De enkelte lag og pakker forklares i efterfølgende afsnit. 03800 Sune Høffding Hedetoft Side 11 af 19

3.2.1 Presentation layer GUI delen er lavet med henblik på anvendelse på mobil med touchskæm. Brugeren kan se de forskellige målere der er installeret i huset og trykke sig ind på de enkelte følere for at se deres værdier/status. Presentation Layer GUI Forms HomeForm SetupForm TemperaturesForm «interface» IState 1 * WindowsForm DoorsForm LightsForm «creates» State Business Layer SensorController Figur 9 Klassediagram over pakken GUI GUI laget et opbygget med en state pattern, som søger for et let skift mellem de forskellige Forms som brugeren bliver præsenteret for. Dette pattern medvirker også til at der fra hvilket som helst Form vindue kan skiftes til et andet. 03800 Sune Høffding Hedetoft Side 12 af 19

3.2.2 Business layer Business laget står for oprettelsen af de forskellige sensorer, samt opdatering af sensorernes værdier/status. Figur 10 viser et klassediagram over Business laget. Figur 10 Klassediagram over pakken SensorController SensorController holder styr på de enkelte Sensor objekter og GUI pakken anvender denne til opdatering af sensorer værdier. Sensor er en global klasse som indeholder et antal properties, når der sendes data fra HMS Konsollen serialisieres Sensor objektet og deserialiseres igen på HMS Mobil Klient siden. 03800 Sune Høffding Hedetoft Side 13 af 19

3.2.3 Data Access layer Laget håndterer den indkommende data fra HMS Konsollen og forbereder dataene til Business laget. Figur 11 Klassediagram over pakken Mobile Communication CommunicationProtocol (CP) modtager og deserialiserer data fra HMS Konsollen, som herefter anvendes til at oprette sensorer og opdatere deres værdier/status. CP tilbyder et event til håndtering af modtaget data. Ved at benytte sig af dette event, kan systemet let udbygges til at kommunikere med andre enheder end seriel (Bluetooth). 03800 Sune Høffding Hedetoft Side 14 af 19

4 Resultat og test I dette afsnit præsenteres testresultaterne for det udviklede produkt. Testen er udført som en brugertest, hvor de ønskede krav til systemet opstilles og der indikeres om kravene opfyldes Tabel 1 Brugertest resultat Aktion/Input HMS Konsol: 1) Ved Systemopstart præsenteres brugeren for et grafisk design, hvor der ved hjælp af touchscreen knapper, kan vælges mellem de sensortyper der ønskes at se nærmere på. 2) Ved tryk på Doors præsenteres brugeren for en menu med status på alle tilmeldte dør-sensorer. Sensorerne opdateres løbende. 3) Ved tryk på Windows præsenteres brugeren for en menu med status på alle tilmeldte vindue-sensorer. Sensorerne opdateres løbende. 4) Ved tryk på Lights præsenteres brugeren for en menu med status på alle tilmeldte lys-sensorer. Sensorerne opdateres løbende. 5) Ved tryk på Temperatur præsenteres brugeren for en menu med status på alle tilmeldte lys-sensorer. Sensorerne opdateres løbende. 6) Det er muligt for brugeren, på alle undermenuer, at gå tilbage til Hovedmenu ved at trykke Back på hver menu billede. HMS Mobil Klient: 1) Ved applikationens opstart er det muligt at vælge Connect, hvorpå klienten opretter forbindelse til HMS Konsol. 2) Efter oprettelse af forbindelse til HMS konsol, præsenteres brugeren for et grafisk design, hvor der ved hjælp af touchscreen knapper, kan vælges mellem de sensortyper, der ønskes at se nærmere på. 3) Ved tryk på Doors præsenteres brugeren for en menu med status på alle tilmeldte dør-sensorer. Sensorerne opdateres løbende. 4) Ved tryk på Windows præsenteres brugeren for en menu med status på alle tilmeldte vindue-sensorer. Sensorerne opdateres løbende. 5) Ved tryk på Lights præsenteres brugeren for en menu med status på alle tilmeldte lys-sensorer. Sensorerne opdateres løbende. 6) Ved tryk på Temperatur præsenteres brugeren for en menu med status på alle tilmeldte lys-sensorer. Sensorerne opdateres løbende. 7) Ved tryk på Setup præsenteres brugeren for en menu med setup, hvor det er muligt at vælge den COM port, hvorpå HMS Konsollens bluetooth modul er parret. 8) Det er muligt for brugeren, på alle undermenuer, at gå tilbage til Hovedmenu ved at trykke på Back. Resultat 03800 Sune Høffding Hedetoft Side 15 af 19

4.1 Diskussion af opnåede resultater Som det kan ses på testen, lever det endelige produkt op til forventningerne, der blev sat op ved projektets start. Der har dog været flere komplikationer undervejs, som beskrives i afsnit 5. 5 Opnåede erfaringer 5.1 Tahoe touchscreen events Tahoe touchscreen displayet har vist sig vanskelig, i forbindelse med håndtering af events, oprettet på forskellige menuer (Windows). Problemet var at gamle registrerede events, virkede som om de ikke unsubscribede korrekt og generede mærkelige eksekveringer af efterfølgende nye events. Her blev gamle abonnerede events vilkårligt kaldt i stedet for det aktuelle abonnerede event. Problemet blev antaget som et garbage collect problem og en dårlig disposing/unsubsribing af eventene. Mange løsninger på at unsubscribe korrekt og abonnere nye events blev forsøgt uden held. I sidste ende viste problemet sig at være at være en ukorrekt håndtering af det aktive Window objekt i Application instansen, der herved gav lejlighed til de mystiske klik events på andre menupunkter end det viste. 5.2 Invalid Operation Exception Udviklingen af det grafiske layout på til HMS Konsollen i Micro Frameworket gav i begyndelsen mange uforståelige exceptions af typen Invalid Operation Exception. Gruppen var af den opfattelse at det var manglende forståelse for strukturen af Window og Paneler i forbindelse med parent og children strukturen. Det har derfor været forsøgt anvendt flere forskellige GUI designs undervejs med bl.a. state machine og model view Presenter (MVP), men i sidste ende er en State struktur anvendt, da denne gav det mest overskuelige design, projektets størrelse taget i betragtning. 5.3 Serialisering mellem Compact - og Micro Framework Da der i projektet kommunikeres mellem CF og MF var det ønskeligt at oprette nogle globale objekter og serialisere dem, samt sende dem fra HMS Konsol(MF) til HMS Mobil Klient(CF). Det viste sig at MF understøtter binær serialisering, hvilket CF ikke gør. Der blev herefter forsøgt med XML serialisering, hvilket CF understøtter, men det viste sig at det gjorde MF ikke. Det hele ledte til en del frustration og det blev herefter valgt at oprette de globale objekter, som skulle serialiseres og sendes fra MF til CP, og manuelt serialisere dem i en XML streng. Det var så muligt på CP siden at deserialisere dem og få fat i de globale objekter. 5.4 MF og 1-Wire Det var under projektet en plan at anvende en temperatursensor baseret på 1-Wire kommunikation, men ved nærmere undersøgelse af 1-Wire på Micro Frameworket, har det vist sig at udviklere oplever store problemer med dette pga. timingskravene ikke kan overholdes af Micro Frameworkets timere (Bánský, 2007). Det blev derfor besluttet ikke investere tid på 1-Wire. 03800 Sune Høffding Hedetoft Side 16 af 19

6 Konklusion Det er gruppens opfattelse at projektet er forløbet godt og at resultatet lever op til den opstillede problemstilling. Der er under projektet arbejdet med mange forskellige emner, heriblandt Micro Frameworket, hvor der er blevet arbejdet med grafisk brugergrænseflade, touchscreen, I2C, UART, GPIO, SPI og flertrådsprogrammering. Der er også anvendt Compact Framework i form a HMS Mobil Klienten, hvor der bl.a. er anvendt grafisk brugergrænseflade og Bluetooth via serial port. Arbejdet med alle disse områder har givet en bred erfaring med embeded Windows programmering, som kan anvendes i fremtiden. Projektet har derved været en yderst lærerig proces. Gruppen er desuden fascineret af hvordan managed code har fundet vejen ned til hardware nære komponenter. Det giver en utrolig fleksibilitet og tillader udvikling af systemer med masser af funktionalitet på ganske kort tid. 6.1 Fremtid Udvidelser af projektet er mange, men et emne som persistering af enheder og data har top prioritet, da systemet på nuværende tidspunkt skal opsættes fra bunden ved hver genstart og ikke kan opbevare historik. Som andre udvidelser kan forbindelsen til HMS Mobil Klienten udvides med forbindelse via Internettet så oplysningerne kan ses overalt. Muligheden for at styre varmeapparater og slukke/tænde lys er også oplagte udvidelser af systemet. 03800 Sune Høffding Hedetoft Side 17 af 19

7 Bilag 7.1 Figurliste Figur 1 Illustration af Home Mangement System (HMS)... 3 Figur 2 HMS Blokdiagram... 4 Figur 3 Pakkediagram HMS Konsol... 5 Figur 4 Klassediagram over pakken HMS GUI... 6 Figur 5 Klassediagram over pakken HMS Controller... 7 Figur 6 Klassediagram over pakken HMS MeasurePoint... 8 Figur 7 Klassediagram over pakken HMS Communication... 9 Figur 8 HMS Mobil Klient pakkediagram... 11 Figur 9 Klassediagram over pakken GUI... 12 Figur 10 Klassediagram over pakken SensorController... 13 Figur 11 Klassediagram over pakken Mobile Communication... 14 7.2 Tabelliste Tabel 1 Brugertest resultat... 15 7.3 Diagram farve betegnelser 7.4 Billeder af HMS 7.4.1 HMS Konsol 03800 Sune Høffding Hedetoft Side 18 af 19

7.4.2 HMS Mobil Klient 03800 Sune Høffding Hedetoft Side 19 af 19