EasyRun En løbers bedste ven



Relaterede dokumenter
Database for udviklere. Jan Lund Madsen PBS10107

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

Arkitektur for begyndere

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

Installation og Drift. Aplanner for Windows Systemer Version

Indholdsfortegnelse for kapitel 3

Remote m. Bluetooth Interface Projekt Rapport

Arduino Programmering

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

TDCs Signaturserver. 11/05 - Version TDC Erhverv Sikkerhed og certifikater

Hurtig Start Guide 1

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

Deling i Windows. Netteknik 1

Hvorfor skal vi bruge objekt orienteret databaser?

Viditronic NDVR Quick Guide. Ver. 2.0

Streame fra Winamp til Dreambox/pc på netværk.

PID2000 Archive Service

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

Opsætning af terminalklient til Dantek BiblioMatik 20. januar 2006

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

Microcontroller, Arduino

Grundlæggende OOA - OOD

Citrix CSP og Certificate Store Provider

Fjernstyring af Lego-robot med WiiMote og Tahoe-II

Netværk & elektronik

MANUAL SKIOLD GØR EN FORSKEL DM6000 INSTALLATION

MANUAL SKIOLD GØR EN FORSKEL DISTRIWIN SERVICE INSTALLATION

2017 Recordit.nu version 2. Call Recorder Kvikguide for Apresa Client

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre...

Opdatering af firmware

Deling i Windows. - via NetBIOS eller Hjemmegruppe! Netteknik 1

BOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE KØBENHAVN Ø TLF Webservices Installationsvejledning

Studieordning del

Microcontroller, Arduino

SYSTEMDOKUMENTATION AF POC

-Krav til klinikkens udstyr (hardware/netværk mm.)

Vejledning til Retsinformation web services test stubs

Fuld installation af Jit-klient

Indholdsfortegnelse for kapitel 1

WELLPLOT ARCGIS BRUGERMANUAL I G I S A P S

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

Delfi Connect. Bruger vejledning 1. TILSLUTNING INSTALLATION MENUSTRUKTUR...4

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

Programmering af CS7050 TCP/IP modul

Kom godt i gang med SkoleVDI. - Sådan kommer du på VDI

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Netværksmålinger. - en introduktion! Netteknik. TCP - IP - Ethernet

Svendeprøve Projekt Tyveri alarm

Installationsvejledning for CAB Service Platform med CABInstall

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

Installations- og. Brugervejledning. Rambøll CAREArkiv - version feb Rambøll Informatik A/S. j.nr. LLP feb.

Vejledning til Teknisk opsætning

inox App inox Funktioner

2. Systemarkitektur... 2

Opsætning af klient til Hosted CRM

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

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

Projekt rapport. for. Zigbee kommunikation

Studieordning del

IP Modul report / Netværks software manual 1.0 Funktions beskrivelse:

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

LAB ØVELSE KONFIGURATION AF DHCP PÅ DANSK AF KIM DONNERBORG / RTS

Routeren. - og lag 3 switchen! Netteknik 1

Kravspecifikation For. Gruppen

4. Tilslut batteri backup i centralen til dens konnekter. I tilfældet af en alarm indtast Masterkoden (default 1234) for at afstille alarmen

Skyfillers Online Backup. Kundemanual

Indhold. Download driver Find version af Windows Hent drivers til Windows Udpak driver... 6

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

\ \ Computerens Anatomi / /

Wii Software Modificering. Uber Guide

Civilstyrelsen. Lex Dania editor Installationsvejledning. Version:

Oversigts billedet: Statistik siden:

IAI Quick Start Guide

Hvordan laver jeg mit eget kort på ArcGIS Online?

Bedrebolig.htk.dk. Beskrivelse af version juni 2015

Introduktion OBS: Forberedelse

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

MobileCTI Dialer Installations og konfigurations vejledning

WINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9

Trimble Access Service (Sync)

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

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

Fable Kom godt i gang

Arduino Programmering

Bruger Manual PC Valtronics IP Kamera - Windows system

Opstartsvejledning ATS aktørudgave

Infrastruktur i hjemmet og begreber

Opsætning af forbindelse til Danmarks Statistik

MT90 Vejledning. Forord. Website: Kontakt: Tillykke med din nye GPS tracker MT90.

Kursuskatalog 2012 TwinCAT Basic og Extended

Generelt gælder det at SQL serveren skal understøtte SQL Authentication (Mixed mode) da SIMS Serveren kommunikerer gennem en SQL bruger.

MobileStatus Server Installation og konfigurationsvejledning

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Datatekniker med programmering som speciale

Navision Stat (NS 9.2)

Visility HomeSquidBridge Opsætningsvejledning

Sikker Drift. Sikker Drift Light inkluderer. Sikker Drift Standard inkluderer

Transkript:

En løbers bedsteven Anders Arnfast 06525, Martin Søberg 0655, Ken Falk 06504 09

. INDHOLD. Indhold... 2 2. Introduktion... 3 Opsætning... 3 3. System arkitekturdesign... 4 4. Hardware Design... 5 Ethernet Controller & Touch Controller... 5 SD Kort... 5 Accelerometer... 6 5. Software Design... 7 Presentation layer... 7 Controller... 7 Views... 7 UIElements... 8 Business layer & Data acces layer... 8 Accelerometer... 9 Runner... 9 SimRunner... 9 PersisterFileSystem... 9 XMLParser... 9 ConnectionHandler... 0 TCPServer... 0 6. Resultater... 7. Konklusion... 2

2. INTRODUKTION I dette projekt skal der designes og udvikles et løbehjælpemiddel der kan vise følgende under et løb: Løbelængde. Nuværende hastighed. Gennemsnitlige hastighed. Energi forbrænding. Have følgende funktionaliteter: Downloade en brugerprofil fra en desktop pc indeholdende navn, vægt og skridtlængde Kunne gemme hvert løb der er fortaget, dvs. løbet skal kunne persisteres. Gøre det muligt at løbe mod et tidligere løb som er gemt. Kunne uploade samt download gemte løb til en PC. Til udvikling af disse bliver der benyttet: Tahoe-II kort, til at installere applikationen på. Accelerometer, til at registrere antal skridt. Ethernet, til at kommunikere med PC med. Touch skærm, til brugergrænseflade. Dette projekt er fungerer som afsluttende opgave i ITEWM faget og vil give et indblik i hvorledes der udvikles systemet til embedede enheder. OPSÆTNING For at desktop applikationen kan kommunikere med EasyGo platformen over ethernet, skal desktop pc en konfigureres med opsætningen på Figur 2. Ip i desktop applikationen er sat til at connecte til 92.68..23, hvilket er Tahoe-II kortets ip. Hvis dette kræves ændre foregår det i TCPClient og string host= <<nye ip>>. 3 Figur - Ip opsætning på desktop pc'en.

3. SYSTEM ARKITEKTURDESIGN Figur 2 - Diagram over system arkitekturen 4

4. HARDWARE DESIGN Til udvikling er der benyttet et Tahoe-II development board, som ses på figuren herunder. Figur 3 - Hardware oversigt, Tahoe-II Ethernet Controller & Touch Controller På dette kort benyttes SPI bussen til kommunikation med Ethernet Controlleren, driveren til denne er wrappet i.net Micro Frameworket under System.Net.Sockets. SPI benyttes også til Touch Controlleren, som håndterer alle inputs på skærmen. Disse touch inputs er linket til applikationen igennem frameworket Microsoft.SPOT.Touch.Touch.Initialize( <<Applikation>> ), hvilket resulterer i at alle touch inputs bliver sendt til funktionen OnStylusDown(StylusEventArgs e) som findes i UIElement. SD Kort SPI bussen benyttes også til at tilgå SD kortet. På dette kort er der placeret en fil system. Dette kan tilgås gennem klassen System.IO.Directory og der derefter benyttes almindelige Streams til at placere data på kortet. 5

Accelerometer IC2 bussen benyttes til at kommunikere med accelerometret på Tahoo-II kortet. Device Solutions har udgivet en driver til MMA7455 accelerometret. Da der i dette projekt skulle registreres skridt, ville det være optimalt at modtage interrupts fra accelerometret. Databladet for MMA7455 blev gennemgået, og det viste sig at det netop var muligt at sætte MMA7455 op til at give interrupts, hvis accelerationen på en af x- y-z akserne oversteg en konfigurérbar grænseværdi. Dette var en optimal løsning, da der således ikke skulle konstant skulle polles på accelerometret, men at problemet blev løst på hardware niveau, og der kunne modtages et interrupt, når der var foretaget en interessant acceleration(et skridt). Der blev skrevet en klasse, som udvidede mulighederne i driveren fra Device Solutions, således at der kunne modtages interrupts fra accelerometret. Det viste sig desværre, at der ikke blev modtaget interrupts fra accelerometret, og polling løsningen måtte implementeres i stedet. Dette var lidt ærgeligt, da databladet for MMA7455 lagde op til en sådan løsning, samt der ifølge Tahoo-II specifikationen var forbindelse fra cpu ens GPIO4 pin til accelerometerets interruptpin (INT). Det kunne dog tyde på at det var et generelt problem, da MMA7455 driveren fra Device Solutions heller ikke understøtter interrupt funktionaliterne beskrevet i databladet for MMA7455 accelerometret. 6

5. SOFTWARE DESIGN PRESENTATION LAYER ConnectionHandler Views UIElements Controller RunModel IRunner IRunner Runner SimRunner IPersister Persister Controller Presentation layer er bygget op omkring MVC ( Model View Controller ) princippet. Controlleren har mulighed for at styre hvilket views der skal vises, samt modellere RunModellen. Controlleren får input fra Runner klassen, der giver de værdier der opsamles fra den nuværende løbe tur. SimRunner arbejder på tidligere gemte løbeture og bliver brugt når skal lave et Ghost Løb ( man løber imod en tidligere gemt løb). Controlleren har også forbindelse til at persister sådan er i stand til at hente og gemme løb. Controlleren hoster også ConnectionHandler, der styrer alle connectins over ethernet til systemet. Views Views ActionView MenuView GhostLoadView RunView UploadView GhostView 7

Der er 6 forskellige views i systemet. MenuView og Action view bliver brugt i til at håndtere genellelle inputs fra brugeren. MenuView bliver altid vist, samt ActionView kun bliver vist under normal og ghost run. Dette er gjort for at ikke skulle lave input panel i alle views, og i stedet genbruge noget kode. RunView repræsentere det view man ser når man løber normalt og GhostView repræsentere det view når man løber imod en tidligere tid. GhostLoadView er det view hvor man loader et tidligere løb. UploadViewet bruges når der en ekstern klient der vil tilgår vores løbe device. UIElements Da Micro Frameworket ikke stiller mange UI elementer til rådighed, har det været nødvendigt at lave nogen selv. RunButton fungere som en button, i en simpel udgave, som vi kender fra.net Frameworket. RunElement viser løbe status, og får en RunModel injectet,som den arbejder op imod. RunListBox er en simpellistbox der bliver brugt når man skal være hvilken tidligere rute man vil løbe imod BUSINESS LAYER & DATA ACCES LAYER IRunner SimRunner IPersister PersisterFileSystem XmlParser IRunner Runner Run ConnectionHandler * Accelerometer RunData TCPServer MMA7455 I2CBus Figur 4 - Klasse diagram for BLL og DAL 8

Accelerometer Denne klasse implementerer IAccelerometer interfacet. Denne klasse afkobler systemet fra MMA7455 driveren tilgængelig fra Device Solutions hjemmeside. Dette betyder, at der kunne benyttes en anden driver i systemet, og at kun ville være nødvendigt udskifte Data Access Laget, men de øvrige lag kunne genbruges uden ændringer, så længe at IAccelerometer interfacet stadig implementeres. Accelerometer klassen har ansvaret for at kommunikerer med accelerometer hardware, og afgive events, når der er registreret et skridt. Runner Udfører de beregninger der skal til for at beregne. Løbelængde. Nuværende hastighed. Gennemsnitlige hastighed. Energi forbrænding. Dette gøres ved brug af events fra Accelerometeret og informationer fra Hvert 2. sekund sender Timeren et event med de nyeste beregninger til brugergrænsefladen. SimRunner Denne klasse benytter et forud lavet løb som lægger gemt på SD Kortet. Når SimRunner kører opdaterer den brugergrænsefladen med RunData objekter ud fra deres timestamps PersisterFileSystem Denne klasse kan persistere et Run på filsystemet, kan hente navnet på alle de filer som ligger i mappen og hente en et Run objekt fra filsystemet igennem XMLParser. Arver fra IPersister således at andre persisterings metoder kan laves. Eksempelvis benytter klassen Persister en anden persisterings metode, men persistering på igennem fil systemet blev foretrukket. XMLParser Denne klasse har metoder til at håndtere xml serialization. Da.Net Micro Frameworket ikke håndterer direkte xml serialization er dette gjort igennem manuel kodning. string RunToXml(Run run) Denne metode kan serializere et Run objekt til en string. Denne string er bygget op efter xml standarden. Eksempel på en returneret string ses herunder. <savedrun> <run runnername="ketil" starttime="0"> <rundata avaragespeed="3.5" burnage="0" currentspeed="3.5" totallength="0" totaltime="0"/> <rundata avaragespeed="3.5" burnage="0" currentspeed="3.5" totallength="7" totaltime="20000000"/> <rundata avaragespeed="3.5" burnage="0" currentspeed="3.5" totallength="4" totaltime="40000000"/> </run> </savedrun> 9

Run FromXmlFile(string filename) Denne metode kan læse en fil, med indehold som set ovenstående, og konvertere det til et Run objekt. ConnectionHandler I denne bliver alle klient forbindelserne håndteret. Klienterne kan lave et request om fire forskellige ting. Få vist hvilke løb er tilstede, downloade et bestemt løb, uploade et bestemt løb, downloade en brugerprofil filen eller uploade en brugerprofil. TCPServer Tcp serveren venter på at der forbinder en klient og returnerer den socket som klienten er forbundet på til ConnectionHandler. I denne benyttes der af vigtige klasser: System.Net.Sockets.socket til at vente på klient forbindelser og holde klient info. System.SPOT.Net.NetworkInfo til at hente IP på kortet. System.Net.Sockets.ProtocolType.TCP til at angive at det er en tcp forbindelse der bliver oprettet, dette giver en form for datasikring. 0

6. RESULTATER Der er blevet udviklet en prototype af på Tahoo-II udviklingskit et. er i stand til at registrere skridt ved hjælp af accelerometret på Tahoo-II kortet. Der er endvidere udviklet en tynd desktop applikation, som gør det muligt at loade brugerprofiler ned på platformen gennem et ethernetkabel. Brugerprofilen består af brugerens navn, vægt og skridtlængde. Denne information benytter til at udregne hastighed, forbrænding og distance for et løb. Det er endvidere muligt at up- og downloade et gemt løb til en desktop pc via ethernetkabel. Herefter er det muligt at løbe mod et gemt ghost løb. Det er udviklet en brugergrænsefalde, som viser relevant løbedata. Brugergrænsefalden benytter touchskærmen til at modtage inputs fra brugeren. 7. KONKLUSION er blevet udviklet på Tahoo-II udviklingsplatformen. Et færdigt produkt vil naturligvis have en meget anderledes og mere praktisk formfaktor. Der vil endvidere skulle udvikles en energikilde, formodentlig i form af en genopladeligt batteri..net Micro FrameWork er et meget sparsomt framework i forhold til.net til desktop pc er, men de mest basale funktionaliteter er dog til rådighed, gennem samme API som det fulde.net framework. Derved kan meget kode portes direkte fra desktop applikationer. Så Microsoft har ret i at springet fra.net ned til at kode.net Micro ikke er så stort, og det kan gøres.net udviklingserfaring. Der hvor Micro Framework adskiller sig mest fra.net, er den nære kobling til harware enheder. I den forbindelse introduceres der også en del nye biblioteker. Det har også vist sig, at langt de største problemer har bestået i at kommunikere med hardwaren. Da der f.eks. skulle kommunikeres med et SD kort, for at persistere data, kunne dette SD kort ikke tilgås. Det viste sig, at være fordi kortet skulle formateres med som FAT6, og med en clusterstørrelse på 52bytes. Der var også problemer med at aktivere interrupts på accelerometret, og det var nødvendigt at polle værdier fra det i stedet. Det kan konkluderes, at Microsoft med.net Miro Framework har formået at gøre programmering til en embeded chip enkel for udviklere med erfaring i.net platformen. Det er muligt at portere meget kode fra det fulde.net til.net Micro med en lille indlærings indsats. Det kræves dog en større indlæring, så snart, at der skal kommunikeres med hardware, da der herigennem introduceres nye og ukendte biblioteker i forhold til.net framwork et.