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

Relaterede dokumenter
Viditronic NDVR Quick Guide. Ver. 2.0

AgroSoft A/S AgroSync

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

PowerView Motorisering Intelligente gardiner der gør dit liv nemmere

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING

Brugervejledning. ComX brugervejledning version 4.1

COOD-E Brugsvejledning. 2 Tilslutning 3 Opsætning af Wi-Fi 4 Betjening af systemet 5 Catch-Up 6 Fjernbetjeningen

Ruko SmartAir. Updater installation

NVR Client system. Bruger Manual. SuperVision Alarmteknik ApS Cedervej 2, 8462 Harlev J

Tillykke med din nye Cobra søkort plotter. Her er en kort gennemgang i brugen af din nye kortplotter, og de ting du skal være opmærksom på.

Konfigurationsværktøj for MJK Instrumenter

INSTALLATIONS- OG REFERENCEVEJLEDNING ECR8200SPROGRAMMING UTILITY. Code:

Hurtig Start Guide 1

Dansk bruger manual Udarbejdet af Datalogisk A/S 1/27

Fable Kom godt i gang

Kend din Easi-Speak optager

MAG Brugsvejledning. 2 Tilslutning 3 Opsætning af Wi-FI 4 Betjening af systemet 5 Catch-Up 6 Fjernbetjeningen 7 Fejlsøgning

LM Technologies bluetooth seriel adapter Installationsvejledning

Hurtig Start Guide. Wireless NVR System Connection Reolink

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

Installation af GPS med tilslutning til USB port

Fable Kom godt i gang

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

Kom godt i gang med Fable-robotten

Internettet. Tema. på ipad Opdateret d Ældresagens datastue Aktivitetscentret Bavnehøj. Nørre Snede Tema: Internettet på ipad

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss. Brugervejledning Userguide Bedienungsanleitung

MANAGED PC PC INSTALLATION INSTALLATIONS GUIDE V Telefon: CLOUD INFRASTRUKTUR DEPLOYMENT SECURITY

Music hall AV 2.1 Dansk kvik guide. Findes i sort eller silver. Begge med kraftig børstet aluminiumsfront

Avancerede startindstillinger (Oversat fra engelsk via google)

Wahlberg Surtitle Display

Orava Crater 4 brugsvejledning

Orava Crater 4 brugsvejledning

Fjernstyring af Lego-robot med WiiMote og Tahoe-II

ClassPad Add-In Installer

Contents. John Have Jensen Mercantec 2011

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

Kvik guide: GT-Command Mobile

Udlæsning af stregkodefil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Dansk kvik guide til tiptel 274 telefon

ios7 og kontaktstyring

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

Netteknik 1 Byg et netværk med SO-HO router Øvelse

Kvik guide Mitel MC Klient Android

Sådan nulstiller du dine netværks indstillinger i Windows

Betjeningsvejledning til Håndterminal og AnyQuest Host

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO

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

Denne guide er til at opsætte din LG Nexus 5X og få den opdateret softwaremæssigt, samt opsætte UCL mail. LG Nexus 5X... 1

DiSEqC-Positioner. Best. nr. HN4892 (Brugsanvisnings nr. 361)

OpenTele datamonitoreringsplatform

Dansk Skaksalg Vejledning til ur - DGT 2010

BRUGERVEJLEDNING VIDEOKAMERA

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO

Dit eventyr med robotter Der er dig, der bygger

Brugervejledning Side 1

Installationsvejledning

Brugermanual til MOBI:DO Make på Android

INSTALLATIONS- OG REFERENCEVEJLEDNING ECR8200S/8220SPROGRAMMING UTILITY. Code:

Indhold. Vejledning til ur - DGT 2010

Manual til Storskærme og Ur

Indholdsfortegnelse for kapitel 2

Online via USB med ATS8500. Revision 02

MANUAL FRA AGROSOFT Ver

Konfiguration af BOOX Nova. Der tages forbehold for trykfejl og ændringer i producentens / Googles software.

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

LW313 Sweex Wireless 300N Adapter USB

TDC HomeBox ADSL. Installationsvejled ning til dig med bredbåndstelefoni og alm. telefonstik

MANUAL TIL. OptitecRS CIPHERLAB SCANNER

Lommeguide til online-afspilleren "PLEXTALK Pocket"

NoteSync vejledning. Leba Innovation A/S

Macab ST2300 IP. Gert Kaae Hansen

Kvik start opsætning af kamera det første du skal gøre:

BRUGERVEJLEDNING SIGNALFORSTÆRKER

Selene brugervejledning

Indholdsfortegnelse. PBX Switchboard. Manual. Introduktion Grafisk omstillingsbord Let at tilpasse layout Om manualen...

Lommeguide til online-afspilleren "PLEXTALK Linio Pocket"

EasyRun En løbers bedste ven

Brugervejledning for. Telenor Dialer

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

AB mypilot kvikvejledning

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

Forbindelsesvejledning (for COOLPIX)

Installation af Point Yomani terminal

Kodetastatur CT1000. Brugermanual

Kom i gang med Course Tool 1.2

Wi-fi Brugsanvisning. SERIE: IZURU Program: Ewpe Smart. Dansk

RJ Gå til indeks. Gå til indeks

ViKoSys. Virksomheds Kontakt System

INSTALLATIONS GUIDE. Waoo Smart WiFi Air 4920 FIBERBREDBÅND TV TELEFONI

Dansk version. Introduktion. Windows Vista og XP-installation. LW056V2 Sweex Wireless LAN Cardbus Adapter 54 Mbps

Vejledning til GSM alarm sender

Vejledning til DigiTeach digitalt mikroskop

Programmeringsenhed CLIQ. ASSA ABLOY, the global leader in door opening solutions

Sådan kommer du i gang

Brugermanual til System 2000

Set List Maker Quick-Guide 9, 1

JABRA SOLEMATE MAX. Brugervejledning. jabra.com/solematemax NFC. jabra

Installation af MySQL server på PC

Transkript:

Bluetooth-Remote Winamp WEM1 Projekt Anders Bilde (06740) Kim Thomsen (06768) Peter Bertelsen (05210) IHA d. 4. juni 2009 0

Indholdsfortegnelse Figuroversigt... 2 Indledning... 3 System introduktion... 4 Systemets grænseflader... 6 Arkitekturisk design... 7 Bluetooth over Firefly... 8 Konfiguration af switches... 8 LED er... 9 Jumper konfiguration... 9 Interne kommandoer... 10 Server / klient protokol... 11 Software design... 12 Klient... 12 GUI... 12 BLL... 14 Server... 15 Resultater... 16 Systemets fremtid... 16 Konklusion... 17 1

Figuroversigt Figur 1 - Oversigtsdiagram over systemet... 3 Figur 2 - Skærmbillede af skanning og tilslutning... 4 Figur 3 - Skærmbillede af Winamp fjernstyringen... 5 Figur 4 - Skift til forrige nummer... 6 Figur 5 - Skift til næste nummer... 6 Figur 6 - Skru ned for volumen... 6 Figur 7 - Skru op for volumen... 6 Figur 8 - Arkitekturisk opdeling af systemet... 7 Figur 9 - Firefly konfigureringsswitch... 8 Figur 10 - Switch 4 konfigureres til: ON (9600 baudrate) (hvid betyder ON)... 8 Figur 11 - Klient med Firefly... 9 Figur 12 - Konfigurering til: DCE female med CTS (Clear To Send)... 9 Figur 13 - Liste over server/klient protokol... 11 Figur 15 - Lagdelt klassediagram over klient programmet... 12 Figur 16 - Skærmbillede af en fejlbesked... 13 Figur 17 - Root/Child window... 14 Figur 18 - Klassediagram over server programmet... 15 Figur 19 - Server GUI, som læser fra en given COM port... 15 2

Indledning Til eksamensprojektet i faget Windows Embedded 1 (WEM1), fik vi til opgave, at udarbejde et projekt, som skulle basere sig på enten Windows.NET Micro Frameworket eller Windows CE. Vi valgte at lave en fjernstyring af musikafspilningsprogrammet Winamp over Bluetooth. Idéen med projektet er, at man kan styre Winamp, som er installeret på en PC med indbygget Bluetooth, direkte fra et Tahoe-II kort med et tilsluttet Bluetooth device. Systemet består af følgende hardware: Tahoe-II kort. Firefly Bluetooth device. Klient PC, der er forbundet til Tahoe kortet (udelukkende til deployment af programmet). Server PC, med indbygget Bluetooth. Systemets software består af følgende dele: Et klient program (BT-RemoteWinamp), som kører på Tahoe kortet. Et server program, som bl.a. læser på Bluetooth COM-porten samt håndtering af Winamp kommandoer. Nedenfor ses opsætningen af systemet. Klient PC en (til venstre) er tilsluttet Tahoe kortet gennem et USB kabel. Firefly en er tilsluttet Tahoe kortet s COM port (i midten), og kommunikerer med server PC en (til højre) over Bluetooth. Winamp, som er installeret på server PC en, startes og styres så via bl.a. Tahoe kortets trykfølsomme skærm. Figur 1 - Oversigtsdiagram over systemet 3

System introduktion Systemets hovedfunktionaliter er som følger: Når programmet startes op på Tahoe kortet, kan brugeren skanne efter tilgængelige Bluetooth enheder, for derefter at tilslutte til den ønskede enhed. Figur 2 - Skærmbillede af skanning og tilslutning Brugeren kan styre Winamp ved tryk på Tahoe kortets skærm. Dette indebærer: o Play, stop, pause, næste/forrige nummer, volume op/ned, slå repeat (gentag) til/fra, slå shuffle (bland) til/fra, samt springe til en bestemt position i nummeret. meret. Vise brugeren informationer omkring det aktuelle nummer, hvilket indebærer: o Afspillet tid, kunstner + titel samt en progress-bar til visning af nummerets aktuelle position. 4

Figur 3 - Skærmbillede af Winamp fjernstyringen Den orange linje i midten af skærmbilledet, under sangtitlen, repræsenterer progressebaren - den sorte firkant viser positionen. 5

WEM1 Projekt Bluetooth Bluetooth-Remote Winamp Systemets grænseflader Brugergrænsefladen er designet på en sådan måde, så brugeren har flere forskellige måder at fjernstyre Winamp på. Den primære styringsmetode metode er gennem den trykfølsomme skærm. Derudover kan brugeren navigere rundt i Winamp ved at trykke på de 5 hardware-knapper på Tahoe kortet (SW5-9). (SW5 I det første skærmbillede, hvor man vælger hvilken Bluetooth enhed man vil tilslutte, virker SW5 som pil-op, pil SW9 som pil-ned ned og SW7 som enter. Til sidst kan brugeren, når denne er kommet ind til Winamp skærmbilledet, anvende Tahoe kortets accelerometer til at skifte nummer hhv. frem og tilbage, samt skrue op og ned for volumen. Der skiftes til forrige rige nummer ved at vippe kortet ind i mod sig selv. Tiltes kortet væk fra sig selv, skiftes til næste nummer. Der skrues ned for volumen ved at tilte kortet til venstre, og tiltes til højre, hvis man ønsker at skrue op. Figur 4 - Skift til forrige nummer Figur 5 - Skift til næste nummer Figur 6 - Skru ned for volumen Figur 7 - Skru op for volumen 6

Arkitekturisk design Figur 8 - Arkitekturisk opdeling af systemet Vi har anvendt er et Tahoe-II kort fra firmaet Device Solutions. Dette var nærliggende, da vi igennem undervisningen, har lært om kortets funktionaliteter. Samtidig har kortet alle de funktionaliteter, vi havde brug for til vores Winamp projekt nemlig en trykfølsom skærm, knapper, accelerometer, samt COM-port for tilslutning af en Bluetooth device, i vores tilfælde en Firefly Bluetooth Serial Adapter. Se Figur 1 for systemets opsætning. De hardwaremæsssige tilslutninger er som følger: - Tahoe-II kort, som er tilsluttet en PC gennem USB-kabel. - Firefly Bluetooth Serial Adapter, som er tilsluttet Tahoe kortet gennem DB9 serial port (COM port). - Firefly, som er tilsluttet en PC gennem Bluetooth. Denne PC skal have Winamp installeret. Det første punkt ovenfor, er udelukkende til brug for overførsel (deployment) af klient-programmet til Tahoe kortet. I den færdige opsætning, er det derfor ikke nødvendigt med denne tilslutning, da programmet da vil ligge i hukommelsen på Tahoe kortet. 7

Bluetooth over Firefly For at kunne kommunikere trådløst fra Tahoe kortet, har vi valgt at anvende Bluetooth. Da USB-porten allerede anvendes til debugging og strømforsyning til kortet, valgte vi at anvende en Bluetooth Firefly Adapter, der tilsluttes serielporten på kortet. Fordelen ved Bluetooth er, at vi kan sende og modtage direkte over serielporten, efter 2 Bluetooth enheder er blevet paired. Konfiguration af switches På undersiden af Firefly en sidder nogle switches, som gør det muligt at ændre visse indstillinger og f.eks. nulstille til standard indstillingerne. Da vi ikke anvender 2 forskellige Firefly s i dette projekt, er det ikke relevant at anvende auto master eller auto discover, der gør det muligt, nemt at lade 2 enheder forbinde til hinanden. Firefly en skal dog anvende en baudrate på 9600 for at kunne kommunikere korrekt, dvs. switch 4 skal indstilles til ON=9600. Figur 10 - Firefly konfigureringsswitchingsswitch Figur 9 - Switch 4 konfigureres til: ON (9600 baudrate) (hvid betyder ON) 8

LED er Firefly en en er udstyret med 3 forskelligt farvede LED er, der gør det nemt at se hvilken kommunikation der foregår og hvilken state den pt. befinder sig i. Status LED Lokal transmit LED Remote transmit LED Den grønne LED (status) angiver hvilken state Firefly en befinder sig i, og er defineret ud fra følgende tabel: State Status LED blinkehastighed Konfigurering 10 gange i sekundet Startup, fjern-konfigurering 2 gange i sekundet Idle 1 gang i sekundet Forbundet Konstant Både den gule og den røde LED er direkte hardware forbundet, og blinker når der er kommunikation, henholdsvis lokalt (over serielporten) eller remote (over Bluetooth). Jumper konfiguration For at Firefly en skal kunne tilsluttes serielporten på en anden enhed, er det vigtigt at jumperne er konfigureret korrekt. Da Firefly en skal tilsluttes Tahoe kortet (female DTE), jumpes 1+3 og 2+4 og for at data flow et bliver kontrolleret korrekt, jumpes 9+10 (CTS til RTS). Figur 11 - Klient med Firefly Figur 12 - Konfigurering til: DCE female med CTS (Clear To Send) 9

Interne kommandoer Firefly en kontrolleres vha. kommandoer sendt over serielporten. Følgende kommandoer er anvendt i vores protokol, for at kunne anvende og forbinde Firefly en korrekt: Kommando Alias Kommando CMD mode krævet* Firefly respons / action Enter CMD mode $$$ Nej CMD, ellers intet. Exit CMD mode --- Ja END, ellers ERR. Connection status GK Ja 1, hvis forbundet, ellers 0. Kill connection K Ja Kill, hvis forbindelse afbrudt korrekt, ellers ERR. Inquiry scan I,<time> Ja Retunerer alle fundne Bluetooth enheder, med navn og adresse. Store address SR,<adresse> Ja AOK, ellers ERR. Connect C Ja TRYING og forbinder til den gemte adresse. Ellers intet. Pass through P,<text> Ja Sender tekst uden at eksekvere kommandoer. *For at kunne eksekvere kommandoer, kræves det at CMD mode aktiveres. 10

Server / klient protokol Da Firefly en ikke automatisk sender svar tilbage om den er forbundet korrekt over Bluetooth, har vi valgt at implementere vores egen connection handshake. Klienten sender kommandoen CONNECTED? for at forespørge om den er forbundet, og anvender P, foran, for ikke at blive ignoreret i CMD mode. Derudover har vi implementeret en disconnected kommando, til at fortælle serveren, at klienten ikke længere er forbundet og en lang række kommandoer, til at kontrollere Winamp. Disse er enten envejs (ingen server respons), eller kræver en respons fra server: Client Request Server Response P,CONNECTED? CONNECTOK disconnected - nexttrack - prevtrack - play - stop - pause - volumeup - volumedown - shuffle - repeat - getcurrentsongtitle <sangtitel> openwinamp - getshufflestatus 1 ved ON, 0 ellers. getrepeatstatus 1 ved ON, 0 ellers. gettracklenght <Længde i hh:mm:ss> gettrackposition <nuværende position i hh:mm:ss> gettimeleftoftrack <Tid tilbagei hh:mm:ss> setvolume - closewinamp - gettracklenghtinseconds <Længde i sekunder> gettrackpositioninseconds <Nuværende position i sekunder> getplaybackstatus 1, hvis aktiv, 2 hvis stoppet. settrackposition - Figur 13 - Liste over server/klient protokol 11

Software design Klient Figur 14 - Lagdelt klassediagram over klient programmet Vi har delt systemet op i 2 lag: GUI og BLL. GUI I Micro Frameworket findes der stort set ingen GUI komponenter, og da vi skulle udvikle en brugergrænseflade til en touchscreen, var vi nødt til at lave næsten alle komponenterne selv. På alle elementer tjekker vi, om der er trykket på knappen, inden vi sender et event tilbage. Dette gør vi, for bedre at kunne kontrollere hvilke events der skal trigges. Når elementer skal tilføjes til panelet, er det vigtigt, at de bliver tilføjet fra toppen og ned (i vores system). Hvis de ikke tilføjes korrekt, er der nemlig mulighed for, enten at det forkerte event bliver triggered, eller at der slet ikke bliver triggered nogle events. 12

WEM1 Projekt Bluetooth Bluetooth-Remote Winamp Exception håndtering ering har vi udbygget til GUI en, så når de kastes,, vises som en knap på skærmen, med teksten på den aktuelle exception. På figuren nedenfor har vi prøvet at tilslutte til enheden peter, peter men der opstod en fejl under tilslutningen ( peter havde ikke aktiveret akti Bluetooth). Derfor udskrives fejlbeskeden på knappen. Figur 15 - Skærmbillede af en fejlbesked GUI en indeholder to vinduer. Ett vindue hvor man ma kan oprette forbindelse til et Bluetooth luetooth device (ConnectionWindow), og et vindue til at styre Winamp (WinampControl). 13

Vores første udgave af GUI en kørte i en fil, hvor panelet blev clearet, hver gang der blev skiftet side. Dette var uhensigtsmæssigt, da det nærmest vil være umuligt at videreudvikle på. Derfor delte vi det op i flere filer, nemlig ConnectionWindow og WinampControl. ConnectionWindow ligger i samme fil som main en og fungerer som root vinduet. Når der skal vises et nyt vindue, sættes root element s visability til hidden og fokus sættes til det nye vindue, hvorefter det vil fungere ligesom et root element. Når vinduet så lukkes, vil fokus sættes tilbage til root elementet. Denne opbygning gør det nemt at lave flere vinduer til systemet, da man bare sætter sin nye klasse til at nedarve fra childwindow'. Figur 16 - Root/Child window BLL Validate klassen er statisk, forbi der ikke er nogen grund til at oprette et objekt af en funktion, der kun skal validere én inputstreng. serialext klassen er en extension af.net Micro Frameworkets egen SerialPort klasse og er udarbejdet af Pavel Bansky. Den udbygger klassen med normale.net funktioner såsom ReadLine() og ReadTo(). Dog er den udarbejdet til version 2 af frameworket, så vi har modificeret og tilføjet funktioner, for at gøre den mere brugbar. 14

Server BTRemoteServer SerialPortHandler WinampControl WinampFront EndLib Winamp.exe Figur 17 - Klassediagram over server programmet BTRemoteServer indeholder udelukkende GUI til server siden. SerialPortHandler varetager kommunikationen over serielporten. Derudover eksekverer den de forskellige Winamp kommandoer gennem WinampControl klassen, som modtages på Bluetooth serielporten fra klienten. WinampFrontEndLib er et C# API der er baseret på Win32 Message API. Denne indeholder logikken til selve kontrollen af Winamp, vha. diverse konstanter og funktioner til at udføre de forskellige Winamp kommandoer. Figur 18 - Server GUI, som læser fra en given COM port 15

Resultater Vores Winamp fjernstyring virker som tiltænkt. Vi kan styre de grundlæggende Winamp funktionaliteter via Tahoe kortets skærm, knapper og accelerometer. Vi kan starte Winamp på server PC en, starte/stoppe/pause numre, gå frem og tilbage i playlisten, slå bland og gentag funktioner til og fra, samt skrue op og ned for volumen. Derudover kan vi springe til en bestemt tidsposition i numrene. Den trådløse kommunikation over Bluetooth virkede som den skulle. Firefly en, som vi har anvendt, har også været stabil. Vi har på intet tidspunkt oplevet, at have mistet Bluetooth forbindelsen, når vi har været forbundet til den. Systemets fremtid I en fremtidig version af systemet, vil det være nærliggende, at implementere en funktion, der muliggør, at brugeren kan lede efter et bestemt nummer på Winamp playlisten. Hvis dette skal kunne lade sig gøre, bliver brugeren nødt til, at få vist et tastatur på skærmen, så han/hun kan indtaste navnet på det ønskede nummer. En anden mulighed er, at få vist hele playlisten på skærmen, så brugeren vil kunne bladre igennem listen. En kombination af de to ovenstående udvidelsesmuligheder vil dog være at foretrække. Dvs. mulighed for at få vist playlisten, for herefter at få vist et skærmtastatur, så der kan søges efter et bestemt nummer. Som systemet er pt., kræves det, at man sidder med Tahoe kortet i hånden, når man skal fjernstyre sit Winamp. Tahoe kortet kræver strømtilslutning, og det er derfor noget upraktisk. Vores oprindelige idé var derfor også, at systemet skulle kunne køre på en mobiltelefon med.net Compact Framework. På denne måde, vil der blive tale om en decideret Winamp fjernbetjening. I fremtiden skulle systemet derfor udvikles til.net Compact Frameworket. 16

Konklusion Vi kan konstatere at vores system virker efter hensigten. De krav vi satte fra start af, er stort set alle blevet opfyldt. Vi kan fjernstyre Winamp over Bluetooth gennem Tahoekortets trykfølsomme skærm. Vi nåede dog ikke at få porteret systemet til.net Compact Frameworket. Mht. opbygning af en grafisk brugergrænseflade i Micro Frameworket, har vi erfaret, at det ikke er helt så ligetil. De fleste af komponenterne skal nemlig bygges fra bunden. Sammenlignet med GUI opbygning i f.eks. et WPF-projekt, har dette dermed været mere tidskrævende. Generelt synes vi, at projektet har gives os en del erfaring indenfor Micro Frameworket. Vi synes også det har været en spændende arbejdsproces, da vi selv måtte bestemme emnet for projektet. Samtidig har vi fået kendskab til, hvordan kommunikationen over Bluetooth fungerer. Anders Bilde (06740) Kim Thomsen (06768) Peter Bertelsen (05210) 17