Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1....

77
Fakultät für Ingenieurwissenschaften und Informatik Institut für Datenbanken und Informationssysteme Masterarbeit im Studiengang Informatik Konzeption, Implementierung und Evaluation eines Rahmenwerks zur Auslesung der Herzfrequenz durch Fitnesstracker in Android vorgelegt von Florian Malsam Januar 2018 1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer: Dr. Rüdiger Pryss Matrikelnummer 900021 Arbeit vorgelegt am: 22.01.2018

Transcript of Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1....

Page 1: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Fakultaumlt fuumlr Ingenieurwissenschaften und InformatikInstitut fuumlr Datenbanken und Informationssysteme

Masterarbeitim Studiengang Informatik

Konzeption Implementierung undEvaluation eines Rahmenwerks zurAuslesung der Herzfrequenz durch

Fitnesstracker in Android

vorgelegt von

Florian Malsam

Januar 2018

1 Gutachter Prof Dr Manfred Reichert2 Gutachter Dr Ruumldiger PryssBetreuer Dr Ruumldiger PryssMatrikelnummer 900021Arbeit vorgelegt am 22012018

ii

Danksagungen

An dieser Stelle moumlchte ich mich bei meinen Themengebern und den Per-sonen die mich bei dieser Arbeit unterstuumltzt haben bedanken

Vielen Dank an Dr Ruumldiger Pryss fuumlr die Bereitstellung des Themas unddie Betreuung der Arbeit

Ein weiterer Dank gilt Prof Dr Manfred Reichert fuumlr die Gutachtertaumltigkeitbei dieser Arbeit

Ich danke auch Dr Winfried Schlee fuumlr die Unterstuumltzung bei der Evaluati-on

Meinen Eltern danke ich fuumlr die Unterstuumltzung waumlhrend meines Studi-ums

Auszligerdem danke ich Philipp fuumlr das Korrekturlesen dieser Arbeit und al-len Testpersonen die sich die Zeit genommen haben an der Evaluationteilzunehmen

iii

iv

Inhaltsverzeichnis

1 Einleitung 111 Problemstellung 212 Zielsetzung 213 Aufbau der Arbeit 314 Zusammenfassung 3

2 Grundlagen 521 Track Your Tinnitus 522 Verwandte Arbeiten 623 Fitnesstracker 824 Bluetooth 9

241 Bluetooth Low Energy 1025 ANT 10

251 ANT+ 1126 Android 1127 Eingesetzte Hardware 11

271 Mio Alpha 1 12272 Mio Alpha 2 15273 Garmin Vivosmart HR+ 16274 Fazit Fitnesstracker 16275 Smartphones 17

28 Zusammenfassung 17

3 Konzeption 1931 Ziel 1932 Anforderungsanalyse 20

321 Nicht funktionale Anforderungen 20322 Funktionale Anforderungen 21

33 Architektur 22331 Callbacks 24332 Datenmodell 27333 Exceptions 28

v

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 2: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

ii

Danksagungen

An dieser Stelle moumlchte ich mich bei meinen Themengebern und den Per-sonen die mich bei dieser Arbeit unterstuumltzt haben bedanken

Vielen Dank an Dr Ruumldiger Pryss fuumlr die Bereitstellung des Themas unddie Betreuung der Arbeit

Ein weiterer Dank gilt Prof Dr Manfred Reichert fuumlr die Gutachtertaumltigkeitbei dieser Arbeit

Ich danke auch Dr Winfried Schlee fuumlr die Unterstuumltzung bei der Evaluati-on

Meinen Eltern danke ich fuumlr die Unterstuumltzung waumlhrend meines Studi-ums

Auszligerdem danke ich Philipp fuumlr das Korrekturlesen dieser Arbeit und al-len Testpersonen die sich die Zeit genommen haben an der Evaluationteilzunehmen

iii

iv

Inhaltsverzeichnis

1 Einleitung 111 Problemstellung 212 Zielsetzung 213 Aufbau der Arbeit 314 Zusammenfassung 3

2 Grundlagen 521 Track Your Tinnitus 522 Verwandte Arbeiten 623 Fitnesstracker 824 Bluetooth 9

241 Bluetooth Low Energy 1025 ANT 10

251 ANT+ 1126 Android 1127 Eingesetzte Hardware 11

271 Mio Alpha 1 12272 Mio Alpha 2 15273 Garmin Vivosmart HR+ 16274 Fazit Fitnesstracker 16275 Smartphones 17

28 Zusammenfassung 17

3 Konzeption 1931 Ziel 1932 Anforderungsanalyse 20

321 Nicht funktionale Anforderungen 20322 Funktionale Anforderungen 21

33 Architektur 22331 Callbacks 24332 Datenmodell 27333 Exceptions 28

v

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 3: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Danksagungen

An dieser Stelle moumlchte ich mich bei meinen Themengebern und den Per-sonen die mich bei dieser Arbeit unterstuumltzt haben bedanken

Vielen Dank an Dr Ruumldiger Pryss fuumlr die Bereitstellung des Themas unddie Betreuung der Arbeit

Ein weiterer Dank gilt Prof Dr Manfred Reichert fuumlr die Gutachtertaumltigkeitbei dieser Arbeit

Ich danke auch Dr Winfried Schlee fuumlr die Unterstuumltzung bei der Evaluati-on

Meinen Eltern danke ich fuumlr die Unterstuumltzung waumlhrend meines Studi-ums

Auszligerdem danke ich Philipp fuumlr das Korrekturlesen dieser Arbeit und al-len Testpersonen die sich die Zeit genommen haben an der Evaluationteilzunehmen

iii

iv

Inhaltsverzeichnis

1 Einleitung 111 Problemstellung 212 Zielsetzung 213 Aufbau der Arbeit 314 Zusammenfassung 3

2 Grundlagen 521 Track Your Tinnitus 522 Verwandte Arbeiten 623 Fitnesstracker 824 Bluetooth 9

241 Bluetooth Low Energy 1025 ANT 10

251 ANT+ 1126 Android 1127 Eingesetzte Hardware 11

271 Mio Alpha 1 12272 Mio Alpha 2 15273 Garmin Vivosmart HR+ 16274 Fazit Fitnesstracker 16275 Smartphones 17

28 Zusammenfassung 17

3 Konzeption 1931 Ziel 1932 Anforderungsanalyse 20

321 Nicht funktionale Anforderungen 20322 Funktionale Anforderungen 21

33 Architektur 22331 Callbacks 24332 Datenmodell 27333 Exceptions 28

v

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 4: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

iv

Inhaltsverzeichnis

1 Einleitung 111 Problemstellung 212 Zielsetzung 213 Aufbau der Arbeit 314 Zusammenfassung 3

2 Grundlagen 521 Track Your Tinnitus 522 Verwandte Arbeiten 623 Fitnesstracker 824 Bluetooth 9

241 Bluetooth Low Energy 1025 ANT 10

251 ANT+ 1126 Android 1127 Eingesetzte Hardware 11

271 Mio Alpha 1 12272 Mio Alpha 2 15273 Garmin Vivosmart HR+ 16274 Fazit Fitnesstracker 16275 Smartphones 17

28 Zusammenfassung 17

3 Konzeption 1931 Ziel 1932 Anforderungsanalyse 20

321 Nicht funktionale Anforderungen 20322 Funktionale Anforderungen 21

33 Architektur 22331 Callbacks 24332 Datenmodell 27333 Exceptions 28

v

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 5: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Inhaltsverzeichnis

1 Einleitung 111 Problemstellung 212 Zielsetzung 213 Aufbau der Arbeit 314 Zusammenfassung 3

2 Grundlagen 521 Track Your Tinnitus 522 Verwandte Arbeiten 623 Fitnesstracker 824 Bluetooth 9

241 Bluetooth Low Energy 1025 ANT 10

251 ANT+ 1126 Android 1127 Eingesetzte Hardware 11

271 Mio Alpha 1 12272 Mio Alpha 2 15273 Garmin Vivosmart HR+ 16274 Fazit Fitnesstracker 16275 Smartphones 17

28 Zusammenfassung 17

3 Konzeption 1931 Ziel 1932 Anforderungsanalyse 20

321 Nicht funktionale Anforderungen 20322 Funktionale Anforderungen 21

33 Architektur 22331 Callbacks 24332 Datenmodell 27333 Exceptions 28

v

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 6: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Inhaltsverzeichnis

34 Testapplikation 28341 Ziel 28342 Anforderungsanalyse Testapplikation 29343 Architektur 31

35 Zusammenfassung 31

4 Implementierung 3341 Implementierungsdetails 33

411 Geraumlte suchen 33412 Verbindung herstellen 37413 Messung starten 39

42 Erweiterungsmoumlglichkeit 42421 Sensor 42422 Manager Klasse 42

43 Benutzung 45

5 Anforderungsabgleich 4751 Nicht funktionale Anforderungen 4752 Funktionale Anforderungen 48

6 Evaluation 4961 Ziel 4962 Szenario 5063 Frageboumlgen 5064 Testpersonen 5165 Ergebnisse 5266 Fazit 5767 Zusammenfassung 57

7 Zusammenfassung und Ausblick 5971 Zusammenfassung 5972 Ausblick 59

A Anhang 63

Literaturverzeichnis 65

vi

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 7: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 1

Einleitung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert

bdquoDas Institut fuumlr Datenbanken und Informationssysteme (DBIS) der UniversitaumltUlm forscht seit 1990 in den Bereichen der prozess- bzw daten-orientiertenInformationssysteme und aktueller Datenbank-Management-Systeme (Pro-cess and Data Science) Im Fokus der Forschung der Arbeitsgruppe von ProfDr Manfred Reichert (Leiter des Instituts) steht die Flexibilitaumlt von prozess-orientierten Informationssystemen entlang des Lebenszyklus (DesignKonfiguration Betrieb und Optimierung)ldquo [18]

Die Erfassung von Daten durch groszlige Menschenmengen mittels Smartphones oder an-deren mobilen Geraumlten wird als Mobile Crowd Sensing definiert [40] Bei TYT sind spe-ziell die persoumlnlichen Daten von Tinnitus Patienten relevant Ziel war es ein System zuentwerfen durch das Tinnituspatienten mit Hilfe von mobilen Frageboumlgen aktuelle Tinni-tusparameter wie aktuelle Wahrnehmung des Tinnitus momentane Belastung durch denTinnitus aktuelle Stimmungslage und so weiter in einem System persistieren koumlnnenDiese Daten werden dann fuumlr Forschungszwecke aber auch vom Patienten zur Einsichtin die persoumlnliche Historie verwendet2014 konzipierte und implementierte Jochen Herrmann dieses System in seiner Diplom-arbeit an der Universitaumlt Ulm mit dem Titel ldquoKonzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patientenldquo [25] Durch diesesClient-Server System wird Tinnituspatienten durch mobile Android- und iOS-Applikationendie Moumlglichkeit gegeben ihre Tinnitusparameter mobil zu erfassen und unter ihrem Pro-fil online zu speichern Crowd Sensing profitiert von einer hohen Zahl an Parameternda so aufschlussreichere Analysen moumlglich sind Zudem ist es auch fuumlr den Pateientenvon Vorteil wenn er selbst viele Parameter historisch verfolgen kann Ein Parameter dernoch nicht vom TYT System erfasst wird ist die Herzfrequenz Dafuumlr wird in dieser Arbeit

1

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 8: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 1 Einleitung

ein Rahmenwerk zur Integration von Fitnesstrackern entworfen und implementiert um dieHerzfrequenz abzufragen

11 Problemstellung

Das Track Your Tinnitus System beziehungsweise die Android Applikation erfasst nebenden Antworten aus einem Fragebogen den Geraumluschpegel der Umgebung als weiterenParameter Potentielle andere Faktoren mit Auswirkung auf den Tinnitus wie der Blutdruckdie Sauerstoffsaumlttigung im Blut oder die Herzfrequenz werden bisher nicht beruumlcksichtigtEine weitere Anforderung ist es die Herzfrequenz von einem vom Pateienten getragenenFitnesstracker zu beziehen um so zukuumlnftig eventuell neue Erkenntnisse im Sinne desCrowd Sensing uumlber das Auftreten des Tinnitus zu erlangen

12 Zielsetzung

Ziel dieser Arbeit ist es eine Architektur fuumlr ein modulares Rahmenwerk zur Auslesungder Herzfrequenz von Fitnesstrackern zu erstellen und diese fuumlr Android zu implemen-tieren Dabei wird sich nicht auf einen Uumlbertragungsstandard wie zum Beispiel Bluetoothfestgelegt sondern die Architektur soll flexibel fuumlr theoretisch alle Protokolle erweiterbarsein In dieser Arbeit wird das Protokoll Bluetooth Low Energy am Beispiel vom Mio Alpha[11] und dem Mio Alpha 2 [12] sowie das Protokoll ANT+ am Beispiel vom Garmin vivos-mart HR+ [6] fuumlr die Herzfrequenzmessung implementiert Nach der Implementationspha-se wird das System evaluiert Dafuumlr wurde in Zusammenarbeit mit dem Tinnituszentrumder Universitaumlt Regensburg eine Teststudie entwickelt Diese Teststudie wird durch einePrototyp Applikation an 20 Testpersonen durchgefuumlhrt die im Anschluss Feedback durcheinen Fragebogen geben sollen

2

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 9: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

13 Aufbau der Arbeit

13 Aufbau der Arbeit

Zu Beginn werden in Kapitel 2 die Grundlagen erlaumlutert Dazu gehoumlrt das Track YourTinnitus Projekt die im Projekt verbundene Hardware und die eingesetzten Verbindungs-protokolle In Kapitel 3 wird die Architektur erlaumlutert sowie die Anforderungen an das Rah-menwerk und die Testapplikation definiert Kapitel 4 handelt von der Implementierung desRahmenwerks Hier wird auf spezielle Implementierungsdetails eingegangen und die Er-weiterungsmoumlglichkeit geschildert Auszligerdem wird die empfohlene Benutzung erlaumlutertIn Kapitel 5 werden die Anforderungen an das Rahmenwerk mit den realisierten Funk-tionen abgeglichen In Kapitel 6 wird die Evaluation des Rahmenwerks beziehungsweiseden eingesetzten Fitnesstrackern beschrieben Es wird das Evaluationsszenario geschil-dert und die Ergebnisse praumlsentiert Kapitel 7 fasst die Ergebnisse zusammen und gibteinen Ausblick fuumlr moumlgliche Weiterentwicklungen

14 Zusammenfassung

Im Rahmen der Forschungsarbeit des DBIS Instituts entstand in Zusammenarbeit mit derTinnitus Research Initiative (TRI) der Universitaumlt Regensburg ein Projekt namens TrackYour Tinnitus (TYT) das auf der Mobile Crowd Sensing Forschung basiert Fuumlr die An-droid Applikation dieses Projekts entstand die Anforderung Fitnesstracker bei der Pati-entenbefragung miteinzubunden um deren Herzfrequenz zu beziehen Ziel dieser Arbeitist die Architektur und Implementierung eines Rahmenwerks das dies auf flexible weiseermoumlglicht

3

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 10: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 1 Einleitung

4

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 11: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2

Grundlagen

In diesem Kapitel wird das Track your Tinnitus Projekt vorgestellt es wird die eingesetzteHard- und Software beschrieben und es werden die benoumltigten Verbindungsprotokolledetailliert beschrieben Es werden verwandten Arbeiten vorgestellt und die Studienlage inBezug auf die eingesetzten Fitnesstracker wird untersucht

21 Track Your Tinnitus

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Institutfuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiert als ei-ne akkustische Wahrnehmung obwohl keine physikalische Quelle existiert [39] Fast jederMensch wird in seinem Leben einmal irgendeine Form von Tinnitus wahrnehmen jedochwird dieses Phaumlnomen meist nach einigen Sekunden bis Minuten wieder verschwindenAllerdings nehmen 10 der Bevoumllkerung den Tinnitus dauerhaft wahr und oft bleibt erchronisch das ganze Leben lang Auch im chronischen Fall kann die Wahrnehmung desTinnitus zwischen den Tageszeiten beziehungsweise Tagen variieren indem das stoumlren-de Geraumlusch mehr oder weniger wahrnehmbar ist Diese unterschiedliche Wahrnehmunghaumlngt von verschiedenen Faktoren wie Umgebungslautstaumlrke Tagesaktivitaumlt Stress Ta-geszeit und vielem mehr ab Viele Menschen haben ein gutes Gefuumlhl fuumlr diese Variationund koumlnnen den Verlauf aus dem Gedaumlchtnis rekonstruieren Mit dem TYT System istdie systematische Aufzeichnung des Tinnitus uumlber einen laumlngeren Zeitraum realisierbarDurch die Webseite in Kombination mit dem Smartphone ist es moumlglich den Tinnitusdurch zeitlich zufaumlllig auszufuumlllende Frageboumlgen aufzuzeichnen Somit kann man eventu-ell herausfinden wie das Auftreten des Tinnitus mit der taumlglichen Routine oder bestimmtenAlltagsaktivitaumlten zusammenhaumlngt [19]

bdquoHierfuumlr haben wir eine Webseite und eine App fuumlr iOS und Android entwi-ckelt Die Webseite dient dabei als Informationsquelle fuumlr neue Benutzer undbietet daruumlber hinaus noch weitere Funktionen Das Abfragen der Schwan-

5

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 12: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

kungen der Tinnituswahrnehmung findet nur in den Apps statt Ein Benutzerwird dabei in unregelmaumlszligigen Abstaumlnden daran erinnert einen kurzen Frage-bogen auszufuumlllen Diese Methode nennt man auch ldquoExperience Samplingrdquooder ldquoExperience Sampling Methodrdquound geht auf die Forscher Larson undCsikszentmihalyi zuruumlckldquo [25]

Das TYT System ist in ldquoMobile Crowdsensing Services for Tinnitus Assessment and Pati-ent Feedbackldquo [35] ldquoMobile Crowdsensing Services for Tinnitus Assessment and PatientFeedbackldquo [34] und ldquoMeasuring the Moment-to-Moment Variability of Tinnitus The TrackY-ourTinnitus Smart Phone Appldquo [36] beschrieben Andere Arbeiten lassen vermuten dasses mehre Faktoren fuumlr die Wahrnehmung des Phantomgeraumlusches Tinnitus gibt Dazukoumlnnten Medikation emotionale Aufgewuumlhlltheit Stress Alkohol Koffeinkonsum Infektio-nen Hormonlevel Schlafqualitaumlt oder auch die Herzfrequenz gehoumlren [35] Eine Anfor-derung des TYT Systems beziehungsweise der Android Applikation ist die Aufnahme derHerzfrequenz worum es in dieser Arbeit geht Dies geschieht uumlber potentiell vom Nutzergetragene Fitnesstracker

22 Verwandte Arbeiten

In diesem Abschnitt werden vorherige verwandte Arbeiten die sich mit dem Tinnitus unddem TYT System auszligeinandersetzen kurz zusammengefasst

Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples [32]

In dieser Arbeit von Probst et al wurden verschiedene Methoden verglichen um Datenvon Tinnituspatienten zu beziehen Dafuumlr wurden Daten von 9670 Personen bezogen5017 davon waren auf der Selbsthilfeplattform Tinnitus Talk angemeldet 867 nutzten eineTYT Applikation und 3786 Personen waren in Kontakt mit der ambulanten Tinnitus Klinikin Regensburg Es wurden Alter Geschlecht und Dauer des Tinnitus verglichen Auffaumllligwar dabei dass die Nutzer der TYT Applikation juumlnger waren bei Nutzern von TinnitusTalk war der Anteil an weiblichen Personen houmlher und die Nutzer der neuen Technologien(Tinnitus Talk und TYT Applikation) hatten oumlfter und laumlnger Tinnitus Beschwerden DieImplikation der Forscher daraus ist dass durch crowdsensing und crowdsourcing Plattfor-men der Kontakt zu Tinnituserkrankten die nicht in Kontakt mit einer ambulanten TinnitusKlinik sind erleichtert wird

6

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 13: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

22 Verwandte Arbeiten

Does tinnitus depend on time-of-day An ecological momentary assessment studywith the ldquoTrackYourTinnitusldquo application [30]

In Dieser Arbeit wurden Daten der TYT Applikation genutzt um zu untersuchen ob einZusammenhang zwischen dem Auftreten und der staumlrke des Tinnitus mit der Tageszeitbesteht Die Forscher kamen zu dem Ergebnis dass der Tinnitus nachts und morgensstaumlrker wahrgenommen wird

Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retro-spective Reporting for Neuropsychiatric Symptoms [33]

Normalerweise werden Daten von Tinnitus Patienten ruumlckblickend aufgenommen Diesgeschieht uumlber Gespraumlche oder Frageboumlgen Man weiszlig bisher wenig daruumlber wie aussa-gekraumlftig solche Berichte uumlber die Vergangenheit sind Pryss et al beschaumlftigten sich mitdieser Frage und verglichen herkoumlmmlich aufgenommene Daten mit Daten die durch eineTYT Applikation nicht ruumlckblickend aufgenommen wurden Es wurde aufgezeigt dass eseinen Unterschied zwischen herkoumlmmlich aufgenommenen Daten und Daten die durcheine TYT Applikation aufgenommen wurden gibt

Emotional states as mediators between tinnitus loudness and tinnitus distress indaily life Results from the ldquoTrackYourTinnitusldquo application [31]

In dieser Untersuchung wurden Daten von der TYT Applikation genutzt um die Rolle desemotionalen Zustands ldquoStressldquo in Bezug auf die Wahrnehmung und Belastung durch denTinnitus zu bestimmen Die Untersuchung zeigte auf dass die Tinnitusbelastung durchdie Lautstaumlrke des Tinnitus von der emotionalen Lage abhaumlngig ist

7

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 14: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

23 Fitnesstracker

Ein Fitnesstracker ist ein elektronisches Geraumlt das am Koumlrper heutzutage meistens amHandgelenk getragen wird und dazu dient gesundheitsrelevante Daten zu versenden undaufzuzeichnen Zu diesen Daten gehoumlren oft die Herzfrequenz und die Anzahl zuruumlckge-legter Schritte Oft wird auch Aufschluss uumlber den Energieumsatz oder die Schlafqualitaumltgegeben [5 7] Die Messung der Herzfrequenz geschieht uumlber eine optische Pulsmes-sung Bei der optischen Pulsmessung wird das Blutvolumen in den Arterien gemessenwelches sich beim Pulsschlag aumlndert Auf der Unterseite der Tracker sind LED-Lampenund ein optischer Sensor angebracht Die LED leuchtet auf die Haut und die Reflekti-on des Lichtstrahls ist abhaumlngig vom Blutvolumen Durch die Messung der Reflektionmit Hilfe des optischen Sensors koumlnnen Ruumlckschluumlsse auf den Puls gezogen werden [23S 38] Die meisten Hersteller bieten den Nutzern eine Smartphone Applikation an um die-se Daten auszulesen Es gibt bei einigen Fitnesstrackern allerdings auch die Moumlglichkeitdie Rohdaten auszulesen Dadurch ist es moumlglich den Fitnesstracker mit verschiedenenGeraumlten wie beispielsweise einem Laufband zu koppeln Dies geschieht beispielswei-se uumlber das ANT+ oder das Bluetooth Low Energy Protokoll Laut einer repraumlsentativenUmfrage von Bitkom Research nutzen 31 der Personen uumlber 14 Jahren bereits Gerauml-te um Gesundheits- oder Fitnessdaten zu erfassen 18 davon sind die hier erlaumlutertenFitnesstracker [28]

8

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 15: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

24 Bluetooth

24 Bluetooth

Bluetooth ist ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Distanzuumlber Funk Es wird hauptsaumlchlich genutzt um ldquowireless personal area networksldquo (WPANs)einzurichten Es wird mittlerweile in vielen Geraumlten wie Smartphones Laptops Fahrzeu-gen Druckern et cetera eingesetzt Neuerdings findet es auch in medizinischen und per-soumlnlichen Geraumlten verwendung wozu Fitnesstracker zaumlhlen die fuumlr diese Arbeit relevantsind Bluetooth erlaubt es ad-hoc Netzwerke zwischen verschiedenen Arten von Geraumltenherzustellen um (Audio-)Daten zu uumlbertragen Vorteile von Bluetooth sind die niedrigenKosten der Chips und der geringe Stromverbrauch Zudem ist die Uumlbertragung durch dasgroszlige Frequenzspektrum (24 GHz ISM Band 79 Kanaumlle [26 S 65]) und Frequency Hop-ping Spread Spectrum (FHSS) durch die sich die Uumlbertragungsfrequenz bis zu 1600 malpro Sekunde aumlndert robust Beim klassischen Bluetoothstandard werden sogenannte Pi-conets [26 S 69] (siehe Abbildung 21) erstellt um den Datenaustausch zu ermoumlglichenDieses besteht aus mindestens zwei Bluetoothgeraumlten die sich in physikalischer Naumlhe be-finden und auf dem selben Kanal senden beziehungsweise empfangen In einem Piconetgibt es stets einen Master der die Hopping Frequenz vorgibt an die sich alle Clients hal-ten Ein Beispiel waumlre hierfuumlr ein Computer als Master und eine Bluetoothmaus und eineBluetoothtastatur als Slaves

Abbildung 21 Piconet (Quelle FKR Skript Prof Kargl)

Erfunden wurde Bluetooth urspruumlnglich 1994 von Ericsson Ericsson IBM Intel Nokia undToshiba gruumlndeten die Bluetooth Special Interest Group (SIG) [3] einen non-profit Ver-bund zur Ausarbeitung eines Standards der verbindliche Spezifikationen festlegt Blue-tooth ist in der IEEE 80215 Gruppe [10] fuumlr WPANs standardisiert [17 S 3]

Auf der Applikationsebene wird uumlber Bluetooth Profile kommuniziert Bluetooth Profilesind Schnittstellenspezifikationen die von der Bluetooth Special Interest Group festge-legt wurden um die Kommunikation in einer Bluetooth Umgebung zu standardisieren So-

9

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 16: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

mit kann eine Kommunikation zwischen verschiedendsten Geraumlten implementiert werdenBeispielsweise ist das Headset Profil in den meisten Smartphones implementiert um dieKommunikation mit Freisprecheinrichtungen oder Headsets zu ermoumlglichen

241 Bluetooth Low Energy

Bluetooth Low Energy (BLE) wurde in der Bluetooth 40 Spezifikation eingefuumlhrt und in41 und 42 geupdated BLE arbeitet ebenfalls auf dem 24 GHz ISM Band [22] allerdingsnur noch auf 40 Kanaumllen die dafuumlr 2 statt 1 MHz breit sind [26 S 112][17 S 4] Es wurdeentwickelt um Bluetooth in Geraumlten zu verwenden die per Knopfbatterie (circa 50mAh amBeispiel der PowerStream Li-ion Coin Cell Lir2032 [13]) betrieben werden Im Gegensatzzum klassischen Piconet koumlnnen bei BLE 11 Verbindungen hergestellt werden wie esbei der Kopplung von Fitnesstrackern der Fall ist [9]

Generic Attribute Profile

Eins der erwaumlhnten Bluetooth Profile ist das Generic Attribute Profile (GATT) welchesbei BLE zum Einsatz kommt Das GATT Profil ist ein allgemein gehaltenes Profil unddas einzige Profil das mit BLE kompatibel ist Im Gegensatz zu den anderen Profilenist das GATT Profil fuumlr keinen bestimmten Einsatzzweck vorbestimmt Das GATT Profilrepraumlsentiert lediglich Schluumlssel-Wert Paare

25 ANT

ANT ist ebenfalls ein offener Industriestandard fuumlr die Datenuumlbertragung uumlber kurze Di-stanz uumlber Funk wie BLE Es ist bei den Anwendungsfaumlllen und den technischen DetailsBLE sehr aumlhnlich Es basiert ebenso auf dem 24 GHz ISM Band und wurde auch fuumlr einesehr energiesparende Uumlbertragungen entwickelt [2 S 8] In ANT nimmt ein Geraumlt entwe-der die Position eines Masternodes oder die eines Slavenodes ein Der Masternode ist derInitiator der Verbindung der Verantwortliche des Kanalmanagements und der Hauptuumlber-trager der Daten Am Beispiel eines Fitnesstrackers ist der Tracker der Masternode undes kann mehrere Slavenodes geben die die gesendete Herzfrequenz empfangen Somitsind die Slaveknoten primaumlre Empfaumlnger von Daten [2 S 11] Es ist ebenfalls moumlg-lich gleichzeitig Slave und Master zu sein [27] Dadurch unterstuumltzt ANT eine groszlige Zahlan Netztopologien Anders im Vergleich zu Bluetooth findet kein konstantes FrequencyHopping statt Stattdessen wird sofern eine Stoumlrung des Kanals erkannt wird auf einenanderen Kanal gewechselt Durch Time Division Multiple Access (TDMA) kann einer der125 verfuumlgbaren Kanaumlle fuumlr mehrere unabhaumlngige Verbindungen benutzt werden [2S 17] ANT wurde von Dynastream (mittlerweile ein Tochterunternehmen von Garmin)

10

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 17: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

26 Android

entwickelt Fuumlr Ihre Produkte wurde ein entsprechender Funkstandard benoumltigt den eszu dieser Zeit nicht gab Aus diesem Grund wurde ANT entwickelt und 2003 eingefuumlhrt[21]

251 ANT+

Um fuumlr ANT Interoperabilitaumlt zu gewaumlhrleisten wurde die Erweiterung ANT+ entwickeltHier werden Standards und Datenstrukturen festgelegt um die Kommunikation zu ande-ren ANT+ Produkten zu standardisieren Dadurch wird der Datenaustausch extrem ver-einfacht Es wird hauptsaumlchlich im Sport- Wellnes- und Homehealth-Bereich verwendetDazu zaumlhlen (Koumlrper)Temperatur Sensoren Herzratenmesser Geschwidigkeit- und Di-stanzmesser Blutdruckmesser und so weiter [27]

26 Android

Android ist ein weit verbreitetes Smartphone Betriebssystem und eine Open Source Soft-ware Plattform [14] Zu den Zielgeraumlten gehoumlren Smartphones Netbooks und Tabletcom-puter Auf dem Smartphonemarkt hatte Android im dritten Quartal 2016 laut Strategy Ana-lytics einen weltweiten Marktanteil von 875 [15] Das in dieser Arbeit vorgestellte Rah-menwerk wurde fuumlr die Android Plattform mit der Benutzung von Smartphones ab AndroidVersion 18 entwickelt da in dieser Version BLE eingefuumlhrt wurde

27 Eingesetzte Hardware

In diesem Unterkapitel wird die eingesetzt Hardware naumlher beschrieben Es folgen die Fit-nesstracker die mit dem Rahmenwerk laut Anforderungsanalyse mindestens kompatibelsein sollten Der Garmin Vivosmart HR+ wurde dabei nicht in der Evaluation eingesetztAuszligerdem werden die getestetn beziehungsweise verwendeten Smartphones und derenAndroid Version aufgelistet

11

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 18: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

271 Mio Alpha 1

Der Mio Alpha 1 Fitnesstracker der Firma Mio Global ist laut Beschreibung der erste Fit-nesstracker der die Messung optisch uumlber das Handgelenk durchfuumlhrt Der Fitnesstrackerkam im Jahr 2013 auf den Markt Der Vorteil dieses Trackers in Bezug auf diese Arbeit istdass er uumlber einen Modus verfuumlgt bei dem die Herzfrequenz uumlber BLE im offiziell festge-legten Format ohne Verschluumlsselung gesendet wird Somit ist es moumlglich mit beliebigenBLE faumlhigen Geraumlten die Daten zu interpretierenIm Folgenden wird ein Auszug der Studienlage wiedergegeben

How accurate are the wrist-based heart rate monitors during walking and runningactivities Are they accurate enough [38]

Eine Studie durchgefuumlhrt von Stahl et al verglich unter anderem die Herzfrequenz-messung des Mio Alpha 1 mit einer Messung via Brustgurt Die Probanten wurdenangewiesen 30 Minuten auf einem Laufband zu gehen beziehungsweise zu laufenAufgeteilt waren die 30 Minuten in 6 Intervalle a 5 Minuten

Methode Dauer EinstellungLaufband 5 Minuten 32 kmhLaufband 5 Minuten 48 kmhLaufband 5 Minuten 64 kmhLaufband 5 Minuten 80 kmhLaufband 5 Minuten 96 kmhLaufband 5 Minuten 48 kmh

Tabelle 21 Stahl et al Testprotokoll

Die Messung des Mio Alpha 1 korrelierte hier sehr stark (r=0929) mit der des Brustgurtes

12

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 19: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

27 Eingesetzte Hardware

Mio Heart Rate Accuracy vs EKG [24]

Ebenso untersuchte Dr Mark Gorelick der State University San Francisco die Genauigkeitder Herzratenmessung des Mio Alpha 1 anhand eines EKG Geraumlts Hierbei wurden dieProbanden dazu angewiesen einen Fahrradergometer Test und im Anschluss einen Lauf-bandtest zu machen Beim Fahrradergometertest handelte es sich um einen YMCA Testbei dem die Belastung waumlhrend des Tests an die Leistung des Probanden angepasst wirdHierfuumlr wird die Belastung nach der ersten Belastungsphase individuell an die Testpersonangepasst je nachdem wie stark die Herzfrequenz schon bei der ersten Stufe reagierthat Abbildung 22 veranschaulicht dieses Vorgehen Der Laufbandtest war aufgeteilt in 3Intervalle a 4 Minuten

Abbildung 22 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x MeterLeistungsangabe

13

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 20: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

Der Mio Alpha 1 zeigte eine sehr starke Korrelation von r=099 im Vergleich mit dem EKGGeraumlt bei einer Differenz von 033∓119 Schlaumlgen Minute im Mittel Waumlhrend des Testshatte der Mio Alpha 1 zu 93 eine kleinere Abweichung als 5 Schlaumlge Minute zum EKG

Methode Dauer EinstellungLaufband 4 Minuten 32 kmhLaufband 4 Minuten 64 kmhLaufband 4 Minuten 96 kmh

Tabelle 22 Gorelick Testprotokoll

Auch beim Laufbandtest erzielte der Mio Alpha 1 bei 64 und 96 kmh eine sehr stakeKorrelation mit dem EKG Geraumlt von r=099 bei einer Differenz von 026∓113 Schlaumlgen Minute im Mittel Waumlhrend des Tests hatte der Mio Alpha 1 zu 97 eine kleinere Abwei-chung als 5 Schlaumlge Minute zum EKG Zusaumltzlich wurde noch ein Maximaltest an einerTestperson durchgefuumlhrt Die Testperson rannte 1 Minute lang ihre Houmlchstgeschwindig-keit von 23 kmh Bei diesem Versuch lag die mittlere Differenz zwischen dem Mio Alpha1 und dem EKG Geraumlt bei ∓1 Schlag Minute

Beurteilung

Anzumerken ist dass Dr Mark Gorelick die Stelle ldquoDirector of Product Science andInnovationldquo bei Mio Global besetzt

Evaluation of wearable consumer heart rate monitors based on photopletysmogra-phy [29]

Parak und Korhonen testeten das Geraumlt an mit einem Uumlbungsprotokoll aus Sitzen Lie-gen Gehen Laufen Fahrradfahren und gaumlngigen Alltagsbewegungen Hierbei erreichteder Fitnesstracker nur zu 7783 eine Genauigkeit von weniger als 5 Abweichung zumReferenzgeraumlt Die Forscher kamen zu dem Ergebnis dass die Messgenauigkeit womoumlg-lich von mehreren Faktoren abhaumlngen kann wie ausgefuumlhrte Aktivitaumlt oder auch genauePlatzierung des Geraumlts

Comparison of Non-Invasive Individual Monitoring of the Training and Health of Ath-letes with Commercially Available Wearable Technologies [20]

Duumlking et al analysierten die Sinnhaftigkeit von Fitnesstrackern fuumlr Athleten zur Trai-ningskontrolle beziehungsweise -steuerung Dabei erwaumlhnten sie im Zusammenhang mitdem Mio Global 2 dass der Mio Global 1 anfaumlllig fuumlr Bewegungsartefakte sei

14

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 21: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

27 Eingesetzte Hardware

272 Mio Alpha 2

Der Nachfolger des Mio Alpha 1 kam 2015 auf den Markt und erweitert diesen hauptsaumlch-lich um Funktionen wie Workoutmanagement Hintergrundbeleuchtung Stoppuhr und umeinen Beschleunigungsmesser Der Mechanismus zum Messen der Herzfrequenz bleibtwie bisher

Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and EnergyExpenditure in a Diverse Cohort [37]

Shcherbina et al untersuchten die Fehlerrate der Herzfrequenz- und Energieverbrauch-messung von kommerziell erwerbbaren Geraumlten die am Handgelenk getragen werdenDie Messungen wurden im Sitzen Gehen Laufen und auf dem Fahrradergometergemacht

Methode Dauer EinstellungSitzen 5 Minuten -Laufband gehen 5 Minuten 48 kmh mit 05 SteigungLaufband gehen 5 Minuten 64 kmh mit 05 SteigungLaufband laufen 5 Minuten 9 kmh mit 05 SteigungLaufband laufen 5 Minuten 11 kmh mit 05 SteigungPause 3 Minuten -Fahrradergometer 5 Minuten 88 WattFahrradergometer 5 Minuten 160 WattPause 1 Minute -

Tabelle 23 Shcherbina et al Testprotokoll

Der Mio Alpha 2 hatte bei dem Versuch beim Laufen und Fahrradergometer eine Fehler-rate von lt5 beim Gehen 8 und beim Sitzen 10

15

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 22: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

Abbildung 23 Mio Alpha 2 Ergebnis [37]

273 Garmin Vivosmart HR+

Der Garmin Visosmart HR+ ist seit 2016 auf dem Markt und verfuumlgt ebenfalls uumlber Senso-ren zur optischen Pulsmessung Ebenso ist es moumlglich die Herzfrequenzdaten im Roh-format uumlber das ANT+ Protokoll zu senden wodurch er fuumlr diese Arbeit als Testgeraumltdient

274 Fazit Fitnesstracker

Die Ergebnisse der Untersuchungen der Genauigkeit von Fitnesstrackern divergierenstark Es laumlsst sich vermuten dass die Genauigkeit der Messung stark von weiterenVariablen abhaumlngig ist Duumlking et al kamen zu dem Entschluss dass Fitnesstrackernoch nicht genug wissenschftlich untersucht wurden um Athleten stabile Daten bezuumlglichihrer Herzfrequenz zu liefern Als Begruumlndung nennen sie die Bewegungsartefakte undeine zu niedrige Abtastfrequenz Stattdessen empfehlen sie verschiedene Geraumlte anverschiedenen Koumlrperteilen zu kombinieren um ein besseres Gesamtbild zu bekommen[20] Auch Shcherbina el al weisen darauf hin dass Faktoren wie dunklere Hautgroumlszligerer Handgelenkumfang und houmlherer BMI zu einer erhoumlhten Fehlerrate beitragenkoumlnnen [37]

16

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 23: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

28 Zusammenfassung

275 Smartphones

Bei der Evaluation der Arbeit wurden verschiedene Android Smartphones verwendet Dasaumllteste Geraumlt war das Nexus 4 von Google das Ende 2012 auf den Markt kam Auf demGeraumlt befand sich allerdings die neuere Android Version 601 Das Desire 626G vonHTC ist seit April 2015 auf dem Markt und war im Betrieb mit der Android Version 43Das aktuellste Geraumlt war das vom chinesischen Hersteller Cubot entwickelte X18 mit derAndroid Version 70 dicht gefolgt vom Sasmsung Galaxy S8 das im April 2017 auf demMarkt erschien und mit der Android Version 70 betrieben wurde

Es folgt eine tabellarisierte Darstellung der verwendeten Geraumlte

Name Hersteller Android Version ErscheinungsdatumNexus 4 Google 601 112012Galaxy S7 Samsung 60 32016Galaxy S8 Samsung 70 42017G4 LG 60 62015Desire 626G HTC 43 042015One Mini HTC 442 82013X18 Cubot 70 820173T OnePlus 711 112016

Tabelle 24 Liste der verwendeten Smartphones

28 Zusammenfassung

Track Your Tinnitus (TYT) ist ein Projekt der Tinnitus Research Initiative und dem Insti-tut fuumlr Datenbanken und Informationssysteme der Universitaumlt Ulm Tinnitus ist definiertals eine akkustische Wahrnehmung obwohl keine physikalische Quelle existiert Durchdie entwickelte Software im TYT Projekt ist es moumlglich den Tinnitus durch zeitlich zufaumllligauszufuumlllende Frageboumlgen aufzuzeichnen was Informationen fuumlr die Tinnitusforschungbereitstellen sollEine weitere Anforderung des TYT ist es die Herzfrequenz mittels Fitnesstrackern aus-zulesen Fitnesstracker sind elektronische Geraumlte die meistens am Handgelenk getragenwerden und unter anderem die Herzfrequenz bestimmen koumlnnenFuumlr die Uumlbertragung der vom Fitnesstracker generierten Daten gibt es verschiedene Pro-tokolle Diese Arbeit befasst sich mit dem ANT+ und dem BLE Protokoll zwei Protokolledie auf dem 24 GHz ISM Band basieren und entwickelt wurden um mit wenig Energieauszukommen

17

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 24: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 2 Grundlagen

Die Implementierung geschieht fuumlr das Smartphone Betriebssystem AndroidDie bei dieser Arbeit eingesetzte Hardware besteht aus dem Mio Alpha 1 dem Mio Al-pha 2 und dem Garmin Vivosmart HR+ Fitnesstracker und 7 Smartphones mit teilweiseverschiedenen Android Versionen

18

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 25: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3

Konzeption

Nachdem die Grundlagen erlaumlutert wurden wird jetzt das entwickelte Konzept vorgestelltDieses Konzept gilt als Grundlage der Implementierung und legt die spezifischen Anfor-derungen fest Das Ziel aus Kapitel 1 wird praumlzisiert und es wird auf technische Detailseingegangen Die Anforderungesanalyse mit funktionalen und nicht funktionalen Anforde-rungen wird in Abschnitt 32 durchgefuumlhrt Im Abschnitt 33 werden die grundlegendenKomponenten und deren Zusammenspiel sowie externe Schnittstellen definiert

31 Ziel

Das Ziel dieser Software ist es ein Rahmenwerk darzustellen durch das die Kommu-nikation der Herzfrequenz mit gaumlngigen Fitnesstrackern vereinfacht wird Der Android-Entwickler sollte sich nicht mit spezifischen Implementierungen der einzelnen Verbin-dungsprotokolle auseinander setzen muumlssen Der Entwickler soll gegen eine Schnittstelleprogrammieren koumlnnen damit nur marginale Aumlnderungen noumltig sind falls angesproche-ne Geraumlte variieren Es soll ohne groszligen Aufwand moumlglich sein das Rahmenwerk durchneue Protokolle zu erweitern Dies geschieht durch einen modularen schnittstellenbasier-ten Aufbau des RahmenwerksZudem sollte das Rahmenwerk ab Android 43 lauffaumlhig sein

19

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 26: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

32 Anforderungsanalyse

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an das Rahmen-werk herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionale undnicht funktionale Anforderungen

321 Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Herzfrequenzdaten Es soll dem Benutzer des Rahmenwerks

moumlglich sein ohne Kenntnisse der einzelnenVerbindungsprotokolle oder Standards stan-dardisierte Herzfrequenzdaten von verschie-denen Fitnesstrackern auszulesen

2 Modulare Architektur Das Rahmenwerk soll loose gekoppelt seindamit Aumlnderungen am Framework keine oderminimale Aumlnderungen am restlichen Codemit sich ziehen Auszligerdem soll die Erweiter-barkeit von Fitnesstrackern beziehungsweiseVerbindungsprotokollen beruumlcksichtigt wer-den

3 Ab Android 43 Das Rahmenwerk soll ab Android 43 (Einfuumlh-rung von BLE) funktionsfaumlhig sein

4 Ab Android 50 Das Rahmenwerk soll die aktualisierte BLEImplementierung ab Android 50 beruumlcksich-tigen

Tabelle 31 Nicht funktionale Anforderungen des Rahmenwerks

20

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 27: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

32 Anforderungsanalyse

322 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Typ Es soll moumlglich sein den Typ des zu benut-

zenden Fitnesstrackers anzugeben2 Scan Es soll eine Scan Methode existieren die

die Umgebung nach Fitnesstrackern des ent-sprechenden Typs scannt

3 Scan Callback Es soll eine Callback-Methode existieren diebei einem gefundenen Geraumlt aufgerufen wird

4 Connect Es soll moumlglich sein sich mit einem zuvor ge-fundenen Geraumlt zu verbinden

5 Connect to Adress Es soll moumlglich sein sich anhand einerAdresse zu einem Geraumlt zu verbinden fallsdieses verfuumlgbar ist ohne davor einen Scanmachen zu muumlssen

6 Connection State Callback Es soll eine Callback-Methode existieren diebei einer Aumlnderung des Verbindungsstatusaufgerufen wird

7 Start Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung auf unbestimmte Zeit zu starten

8 Start Measurement 2 Es soll moumlglich sein eine Herzfrequenzmes-sung fuumlr eine bestimmte Zeit zu starten

9 New Value Callback Es soll eine Callback-Methode existieren diebei einem neu eingetroffenen Herzfrequenz-wert aufgerufen wird

10 Second Callback Es soll eine Callback-Methode existieren dienach jeder vergangenen Sekunde im Fall ei-ner Messung auf Zeit aufgerufen wird

11 Finished Callback Bei einer Messung auf Zeit wird falls sieexistiert eine Callback-Methode aufgerufenwenn die Messung beendet ist

12 Stop Measurement Es soll moumlglich sein eine Herzfrequenzmes-sung manuell zu stoppen

Tabelle 32 Funktionale Anforderungen des Rahmenwerks

21

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 28: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

33 Architektur

In diesem Kapitel werden die vorhandenen Komponenten und deren Beziehungen zuein-ander beschrieben Eine wichtige Anforderung an die Architektur ist die Flexibilitaumlt und dieErweiterbarkeit Das bedeutet im Einzelnen

bull Die Moumlglichkeit gegen eine Schnittstelle zu programmieren

bull Die Moumlglichkeit das Rahmenwerk um weitere Sensoren beziehungsweise Uumlbertra-gungsprotokolle zu erweitern

Fuumlr diese Architekturanforderung ist das Strategiemuster sehr gut geeignet Durch dasStrategiemuster ist es moumlglich unterschiedliche Implementierungen zur Laufzeit zu waumlh-len Es werden Familien von ldquoAlgorithmenldquo definiert jeder wird fuumlr sich abgekapselt unddurch eine Schnittstelle austauschbar gemacht

Abbildung 31 Strategiemuster

Durch das Strategiemuster ist die Anwendung flexibel und nie an die jeweiligen Implemen-tierungen gebunden So lassen sich verschiedene Sensoren die verschiedene Protokollebenutzen austauschbar einsetzen

Statt einem Interface als Strategiegeber wird eine abstrakte Klasse verwendet um be-stimmte Implementierungen vorzugeben Durch das festgelegte Datenmodell koumlnnen soschon Daten unabhaumlngig von Sensor oder Protokoll verarbeitet werden ohne dass eine

22

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 29: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

33 Architektur

weitere Implementierung notwendig ist Im Folgenden ist der Aufbau der Manager Schnitt-stelle zu sehen Die Manager-Klasse kapselt die Interaktion mit den Sensoren

Abbildung 32 Klassenhierarchie Managerklassen

Die Manager interagieren mit Sensoren ihres Typs Die Architektur der Sensoren ist eben-falls im Stil des Strategiemusters Auszligerdem ist in der Schnittstellendefinition der Senso-ren ein Feld eines beliebigen Typs fuumlr den Originalsensor vorgesehen

23

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 30: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

Abbildung 33 Klassenhierarchie Sensoren

331 Callbacks

Da die Anwendung groumlszligtenteils asynchron ablaumluft muss der Aufrufer zwangslaumlufig uumlberAumlnderungen oder neue Ereignisse informiert werden Es wird ein sogenanntes ldquoUmkeh-rung der Steuerungldquo Paradigma benoumltigt

Beobachtermuster

Das Beobachtermuster gehoumlrt zu den ldquoUmkehrung der Steuerungldquo Paradigmen In Javawird das Beobachtermuster mit Hilfe der Klasse Observables und der Schnittstelle Ob-server realisiert Objekte die von Observable ableiten koumlnnen von Implementierungender Schnittstelle Observer beobachtet werden Das ist vorallem hilfreich wenn man eine

24

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 31: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

33 Architektur

Art publish-subscribe Anwendung aufbauen will oder mehrere Beobachter benachrichtigtwerden sollen

Abbildung 34 Prinzip des Beobachtermusters

25

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 32: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

Klassische Ruumlckruffunktion

Die klassische Ruumlckruffunktion gehoumlrt ebenso zu den ldquoUmkehrung der Steuerungldquo Pa-radigmen Beim Instanziieren des Rahmenwerks werden Methoden uumlber implementierteSchnittstellen registriert die dann vom Rahmenwerk aufgerufen werden und somit denProgrammablauf beeinflussen koumlnnen

Da in dieser Arbeit nur eine simple Ruumlckruffunktion benoumltigt wird wurde die klassischeRuumlckruffunktion implementiert

Die Ruumlckruffunktionen werden in der Schnittstelle HeartRateCallbacks definiert

deviceFoundBeim Scan wurde ein Sensor gefunden

connectionStateChangedVerbindungszustand zum Sensor hat sich veraumlndert

measurementDoneMessung auf Zeit ist abgeschlossen

newHeartrateDataNeuer Herzfrequenz-Wert ist eingetroffen

secondDoneBei der Messung auf Zeit ist eine Sekunde abgelaufen

1 public interface HeartRateCallbacks

2

3 void deviceFound(final HeartRateSensor device)

4 void connectionStateChanged(HeartRateSensor s

5 HeartRateManagerCONNECTION state)

6 void measurementDone(HeartRateDataSet s)

7 void newHeartrateData(HeartRateData d)

8 void secondDone(int counter)

9

Listing 31 Interface HeartRateCallbacks

26

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 33: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

33 Architektur

332 Datenmodell

Fuumlr die generierten Daten wird ein entsprechendes Datenmodell benoumltigt das die Datennach einer festgelegten Struktur kapselt Die Anforderungen an ein Objekt dieses Daten-modells sind folgende

bull Enthaumllt eine gesamte Messung

bull Enthaumllt den Maximalwert der Messung

bull Enthaumllt den Minimalwert der Messung

bull Enthaumllt den Durchschnittswert der Messung

bull Enthaumllt alle Einzelwerte der Messung inkl Timestamp

bull Enthaumllt Start- und Endzeitpunkte der Messung

Aus den Anforderungen an das Datenmodell ergibt sich eine zwei Klassen Konstellation

Abbildung 35 Datenmodell

27

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 34: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

333 Exceptions

Dem uumlblichen Java Coding Stil entsprechend wurde die HeartRateException die von Ex-ception abgeleitet ist definiert um die Ausnahmebehandlung zu vereinfachen und uner-wartetes Verhalten besser nachvollziehen zu koumlnnen

34 Testapplikation

Die Android-Testapplikation wurde entwickelt um das Rahmenwerk zu testen und die Eva-luation durchzufuumlhren Sie ist abgestimmt an die Anforderungen der Evaluation und derAnforderungsanalyse Mit der Testapplikation soll es moumlglich sein die angebotenen Funk-tionen des Rahmenwerks zu nutzen die in Kapitel 32 beschrieben wurden Unter ande-rem die Suche nach Geraumlten die Verbindung mit Geraumlten und das Starten von Messun-gen

341 Ziel

Die Testapplikation ist eine Android Applikation die das beschriebene Rahmenwerk ein-setzt Mit der Testapplikation soll es moumlglich sein die Umgebung nach vorhandenen BLEoder ANT+ faumlhigen Geraumlten zu durchsuchen Die gefundenen Geraumlte sollen aufgelistetwerden und es soll die Moumlglichkeit bestehen sich mit diesen zu Verbinden Anschlie-szligend soll eine Herzfrequenzmessung mit dem erfolgreich verbundenen Geraumlt gestartetwerden koumlnnen Die dabei produzierten Messdaten sollen persistiert werden und expor-tierbar sein

28

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 35: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

34 Testapplikation

342 Anforderungsanalyse Testapplikation

Bei der Anforderungsermittlung haben sich die folgenden Anforderungen an die Testappli-kation herausgestellt Die Auflistungen der Anforderungen sind aufgeteilt in funktionaleund nicht funktionale Anforderungen

Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben Anforderungen an die Nutzbarkeit desSystems Sie sind auch bekannt als Bedingungs- oder Qualitaumltsanforderungen undbeschreiben wie die Software arbeiten soll [16]

Nummer Titel Beschreibung1 Testen Das Rahmenwerk soll in der Testapplikation

genutzt werden um Herzfrequenzdaten zu er-halten

2 Persistenz Die Messdaten muumlssen in der Testapplikationpersistiert werden

3 Export Die Messergebnisse muumlssen exportiert wer-den koumlnnen

Tabelle 33 Nicht funktionale Anforderungen der Testapplikation

29

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 36: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

Funktionale Anforderungen

Funktionale Anforderungen beschreiben die Aufgaben die die Software loumlsen kann unddas Verhalten der Software [16]

Nummer Titel Beschreibung1 Scan Die Scan Methode soll gestartet werden koumln-

nen2 Scanergebnisse Die Ergebnisse des Scans sollen durch die

Ruumlckrufmethode in einer ListView sichtbarsein

3 Connect Die Verbindung mit einem kompatiblen Geraumltsoll hergestellt werden koumlnnen

4 Connection State Der Connection State soll mithilfe derentsprechenden Ruumlckrufmethode ersichtlichsein

5 Messung 1 Drei Messungen auf Zeit a 2 1 1 Minuten sol-len uumlber Buttons gestartet werden koumlnnen

6 Stop Eine Messung soll uumlber einen Button ge-stoppt werden koumlnnen

7 Zeit Die verbleibende Zeit der Messung soll durchder entsprechenden Ruumlckrufmethode darge-stellt werden

8 Persistenz Die Ergebnisse der Messung sollen in einerSQLite Datenbank persistiert werden

9 Export Die Ergebnisse der Messungen sollen durcheine Export-Methode per Mail exportiert wer-den koumlnnen

Tabelle 34 Funktionale Anforderungen der Testapplikation

30

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 37: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

35 Zusammenfassung

343 Architektur

Um die Anforderungen zu realisieren ist eine Oberflaumlche mit sechs Buttons noumltig um diejeweiligen Aktionen auszufuumlhren Im Fall des Scans wird eine ListView angezeigt diedie gefundenen Geraumlte verwaltet und auswaumlhlbar macht Zusaumltzlich ist eine Anzeige desVerbindungsstatus notwendig Beim Klick auf den Export Button soll die Datenbankdateials E-Mail anhang versendet werden Ein Textfeld wird eingefuumlgt um die Testperson zuidentifizieren Das ist in einer Android Activity realisierbar

Abbildung 36 Architektur Testapplikation

35 Zusammenfassung

Das Ziel der Software ist es ein modulares Rahmenwerk darzustellen durch das die Kom-munikation mit gaumlngigen Fitnesstrackern vereinfacht wird Zudem soll sie einfach erweiter-bar sein Bei der Anforderungsanalyse werden die funktionalen und die nicht funktionalenAnforderungen separat betrachtet Die Architektur setzt auf das Stragiemuster um aus-tauschbare Komponenten zu realisieren Es wird ein geeignetes Datenmodell definiertdas die Messdaten abbildet Zudem werden eigene Java Exceptions definiert Die Kom-munikation zur Anwendungsapplikation findet uumlber klassische Ruumlckrufmethoden statt Eswird eine Android Applikation erstellt um das Rahmenwerk zu testen und die Evaluati-

31

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 38: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 3 Konzeption

on durchzufuumlhren Diese ist sehr simpel aufgebaut und es ist moumlglich die Messdaten zupersistieren und exportieren

32

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 39: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4

Implementierung

In diesem Kapitel wird auf bestimmte Implementierungsaspekte eingegangen Hauptsaumlch-lich wird die Kommunikation uumlber die Protokolle BLE und ANT+ in den jeweiligen Adapternbeschrieben Zudem werden Empfehlungen gegeben wie das Rahmenwerk sinnvoll er-weitert werden kann wenn Bedarf nach neuen Sensoren beziehungsweise Protokollenbesteht Zuletzt wird auf die empfohlene Benutzung des Rahmenwerks eingegangen undBeispiele anhand der Testapplikation gezeigt Dafuumlr werden Codeausschnitte verwendetdie keinen Anspruch auf Vollstaumlndigkeit haben da sie nur zu Demonstrationszwecken undeventuell gekuumlrzt eingefuumlgt werden

Auf die Testapplikation wird nur in Bezug zur Anwendung des Rahmenwerks eingegan-gen da die Implementierung ansonsten nicht relevant fuumlr diese Dokumentation ist

41 Implementierungsdetails

411 Geraumlte suchen

Die startScanning() Methode ist eine abstrakte Methode in HeartRateManager und wirdvon den Adaptern mit Implementierungspflicht geerbt Sie startet die Suche nach ent-sprechenden Geraumlten die im Fall einer erfolgreichen Suche durch die RuumlckruffunktiondeviceFound(HeartRateSensor device) an die aufrufende Software uumlbergeben werden

BLE

Bevor man die Systemmethoden der Android Bluetooth API nutzen kann benoumltigt maneine Instanz des BluetoothManagers Dieser verwaltet Bluetooth-Interaktionen auf einerhoumlheren Ebene wie zum Beispiel Informationen uumlber alle verbundenen Geraumlte Uumlber denBluetoothManager bekommt man Zugriff auf eine Instanz des BluetoothAdapters der fuumlralle Aktionen auf niedriger Ebene zustaumlndig ist Der BluetoothAdapter ermoumlglicht es zum

33

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 40: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

Beispiel die Suche nach Geraumlten zu starten Verbindungen zu Geraumlten herzustellen oderSockets fuumlr eingehende Verbindungen zu erstellen

1 public void initialize () throws HeartRateException

2 if (mBluetoothManager == null)

3 mBluetoothManager = (BluetoothManager) mParent

getSystemService(ContextBLUETOOTH_SERVICE)

4 if (mBluetoothManager == null)

5 throw new HeartRateException(Could not get

Bluetooth Manager)

6

7

8

9 if(mBluetoothAdapter == null)

10 mBluetoothAdapter = mBluetoothManagergetAdapter ()

11 if (mBluetoothAdapter == null)

12 throw new HeartRateException(Could not get Bluetooth

Adapter)

13

14

15 if( mParentgetPackageManager ()hasSystemFeature(

PackageManagerFEATURE_BLUETOOTH_LE))

16 throw new HeartRateException(Hardware does not

support BLE)

17

Listing 41 init() Methode des BleAdapters des Rahmenwerks

In der Android API 18 wurde BLE eingefuumlhrt Ab API 21 wurde das Vorgehen fuumlr einenScan geaumlndert somit muss man zur Laufzeit zwischen verschiedenen Android Versionenunterscheiden

API 18-20

Der Scan wird mit der Methode startLeScan() des BluetoothAdapters gestartet Als Para-meter wird ein Objekt der Klasse LeScanCallback uumlbergeben um uumlber gefundene Geraumlteoder Fehler informiert zu werden Im Fall eines gefundenen Geraumlts wird die Ruumlckrufmetho-de onLeScan() aufgerufen die das Geraumlt an sich die Signalstaumlrke und den ScanRecordals Byte-Array als Parameter enthaumllt Der ScanRecord enthaumllt die Advertising Informatio-nen die vom entsprechenden Geraumlt bereitgestellt werden Um den ScanRecord einfacherauszuwerten wird die Hilfsklasse AlternateScanRecord entwickelt der Firma Nordic Se-miconductor verwendet Aus dem ScanRecord koumlnnen dann Informationen uumlber die an-

34

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 41: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

41 Implementierungsdetails

gebotenen Services entnommen werden In diesem Fall werden Geraumlte gefiltert die denHeart Rate Service anbieten [8]

1 if (BuildVERSIONSDK_INT lt 21)

2 mBluetoothAdapterstartLeScan(mLeScanCallback =

3 new BluetoothAdapterLeScanCallback ()

4 Override

5 public void onLeScan(final BluetoothDevice device int

rssi

6 byte[] scanRecord)

7

8 BleSensor mdv = new BleSensor(device)

9 AlternateScanRecord asr = AlternateScanRecord

parseFromBytes(scanRecord)

10

11 if(asrgetServiceUuids ()contains(new ParcelUuid(

UUIDfromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(mdv)

14 if( deviceMapcontainsKey(mdvgetAdress ()))

15 deviceMapput(mdvgetAdress () mdv)

16

17

18 )

19

Listing 42 init() Ausschnitt startScan Methode des BleAdapters API 18-20

API ge 21

Ab API 21 wird die Scan Aktion um ein separates Scanner Objekt erweitert Zudem istder ScanRecord kein Byte-Array mehr sondern ein Objekt des Typs ScanRecord somitist es ohne Hilfsklassen moumlglich einfach durch das Objekt zu navigieren Das Starten desScans geschieht uumlber den vom BluetoothAdapter bezogenen Scanner mit der MethodestartScan() Auch hier wird ein Object fuumlr Ruumlckruffunktionen uumlbergeben allerdings vomebenfalls neuen Typ ScanCallback Durch ein ebenfalls neues ScanSettings Objekt hatman noch die Moumlglichkeit den Scan zu beeinflussen Im folgenden wird der Scan ModeSCAN_MODE_LOW_LATENCY verwendet um die bestmoumlglichste Suche zu gewaumlhrleis-ten

35

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 42: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

1 ScanSettingsBuilder builder = new ScanSettingsBuilder ()

2 buildersetScanMode(ScanSettingsSCAN_MODE_LOW_LATENCY)

3 if(mBluetoothAdapter = null ampamp builder = null)

4 mBluetoothAdaptergetBluetoothLeScanner ()startScan(null

builderbuild() mDeviceFoundCallback = new ScanCallback

()

5 public void onScanResult(int callbackType ScanResult

result)

6 if (BuildVERSIONSDK_INT gt 20)

7

8 BleSensor bleSensor = null

9 bleSensor = new BleSensor(resultgetDevice ())

10

11 if(bleSensor = null ampamp resultgetScanRecord () =

null ampamp resultgetScanRecord ()getServiceUuids ()

= null ampamp resultgetScanRecord ()

getServiceUuids ()contains(new ParcelUuid(UUID

fromString(HEARTRATE_SERVICE_UUID))))

12

13 callBacksdeviceFound(bleSensor)

14

15 if( deviceMapcontainsKey(bleSensorgetAdress ())

)

16 deviceMapput(bleSensorgetAdress ()

bleSensor)

17

18

19

20

Listing 43 init() Ausschnitt startScan Methode des BleAdapters API gt= 21

ANT+

Eine ANT API im Android SDK existiert nicht Die Firma Dynastream Innovations Incstellt ein SDK bereit um mit Android Geraumlten mit ANT+ Geraumlten zu kommunizieren Fuumlrdie Nutzung muumlssen auf dem ANT+ faumlhigen Android Smartphone die Applikationen ANTRadio Service und ANT+ Plugins Service installiert sein [4]

Um einen Scan zu starten wird ein ScanController benoumltigt den man mit der MethodeAntPlusHeartRatePccrequestAsyncScanController() der API anfordern kann AlsParameter wird auch hier eine Instanz der Callback Schnittstelle AsyncScanControl-

36

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 43: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

41 Implementierungsdetails

lerIAsyncScanResultReceiver uumlbergeben in der die Ruumlckrufmethoden ausimplementiertsind

In der Ruumlckrufmethode onSearchResult() wird dann das gefundene Geraumlt behandelt

1 AntPlusHeartRatePccrequestAsyncScanController(mParent 0

2 new AsyncScanControllerIAsyncScanResultReceiver ()

3

4 Override

5 public void onSearchResult(final AsyncScanController

AsyncScanResultDeviceInfo deviceFound)

6

7 AntplusSensor gd = new AntplusSensor(deviceFound)

8 callBacksdeviceFound(gd)

9 if( deviceMapcontainsKey(gdgetAdress ()))

10 deviceMapput(gdgetAdress () gd)

11

12 )

Listing 44 Ausschnitt der startScan Methode in AntplusManager

412 Verbindung herstellen

Werden entsprechende Geraumlte gefunden ist es moumlglich eine Verbindung zu diesen her-zustellen um spaumlter die Herzfrequenzdaten anzufordern Um Informationen zum Ver-bindungsstatus zuruumlckzugeben wird die Ruumlckrufmethode connectionStateChanged() ver-wendet

BLE

Das BluetoothDevice Objekt das durch den erfolgreichen Scan erzeugt wurde besitzt dieMethode connectGatt() welche einen Verbindungsversuch zu dem damit asoziiertenBluetooth Geraumlt startet Als Parameter wird der Methode connectGatt() ein Objekt desTyps BluetoothGattCallback uumlbergeben das die Ruumlckrufmethoden realisiert Der Ruumlckga-bewert ist ein BluetoothGatt Objekt das Methoden bereitstellt um mit den BLE Geraumltenzu kommunizieren Daher wird zuvor sichergestellt ob zu dem entsprechenden BluetoothGeraumlt schon ein BluetoothGatt Objekt existiert und wenn ja wird statt connectGatt() einsimples connect() am BluetoothGatt Objekt aufgerufen was einer erneuten Verbindungs-herstellung zum entsprechenden Geraumlt entspricht

37

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 44: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

1 if(mBluetoothGatt =null)

2 mBluetoothGattdisconnect ()

3 if(mBluetoothGatt = null ampamp mBluetoothGattgetDevice ()

getAddress ()equals(sgetAdress ()))

4

5 just reconnect

6 if( mBluetoothGattconnect ())

7 throw new HeartRateException(Reconnect failed)

8

9

10 BluetoothDevice btDevice = mBluetoothAdaptergetRemoteDevice

(sgetAdress ())

11 mBluetoothGatt = btDeviceconnectGatt(mParent false

btleGattCallback)

12 if(mBluetoothGatt == null)

13 throw new HeartRateException(Connect failed)

Listing 45 Ausschnitt der connect Methode in BleManager

ANT+

Mit der Methode requestDeviceAccess() des ScanControllers wird ein Verbindungsver-such zu einem ANT+ Geraumlt gestartet Als Methodenparameter werden das AsyncScan-ControllerAsyncScanResultDeviceInfo Objekt welches beim erfolgreichen Scan erstelltwurde und zwei Objekte fuumlr die Ruumlckruffunktionen uumlbergeben Das erste Ruumlckrufob-jekt ist vom Typ AntPluginPccIPluginAccessResultReceiver und behandelt die Ruumlckmel-dung bezuumlglich dem Verbindungsvorgang Das zweite Ruumlckrufobjekt ist vom Typ AntPlu-ginPccIPluginAccessResultReceiver und behandelt Ruumlckmeldungen die Zustandsaumlnde-rungen der Verbindung beinhalten Bei einem erfolgreichen Verbindungsaufbau wird einObjekt vom Typ AntPlusHeartRatePcc zuruumlckgegeben mit dem die Kommunikation zumANT+ Geraumlt stattfindet

1 hrScanCtrlrequestDeviceAccess(asyncScanResultDeviceInfo

2 new AntPluginPccIPluginAccessResultReceiver lt

AntPlusHeartRatePcc gt()

3

4 Override

5 public void onResultReceived(AntPlusHeartRatePcc result

6 RequestAccessResult resultCode DeviceState

initialDeviceState)

7

8 if(resultCode == RequestAccessResultSEARCH_TIMEOUT)

38

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 45: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

41 Implementierungsdetails

9

10 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTION

DISCONNECTED)

11

12 else

13

14 callBacksconnectionStateChanged(new AntplusSensor(

asyncScanResultDeviceInfo) CONNECTIONCONNECTED

)

15 base_IPluginAccessResultReceiveronResultReceived(

result resultCode initialDeviceState)

16 heartRatePcc = result

17

18

19 iDeviceStateChangeReceiver)

Listing 46 Ausschnitt der connect Methode in AntplusManager

413 Messung starten

Wenn die Verbindung zu einem Fitnesstracker hergestellt ist ist es moumlglich die Herzfre-quenzmessung zu starten Es gibt die Moumlglichkeit die Messung fuumlr eine beliebige oderfuumlr eine begrenze Zeit lang zu starten Es gibt folgende Ruumlckrufmethoden die in diesemZusammenhang aufgerufen werden koumlnnen

bull newHeartRateData neues Datum eingetroffen

bull secondDone eine Sekunde der Messung ist voruumlber

bull measurementDone die Messung ist fertig

BLE

Anhand des BluetoothGatt Objekts werden die angebotenen Services des verbunde-nen Geraumlts ermittelt Anschlieszligend wird der die HeartrateMeasurement Characteristicherausgefiltert und der entsprechende Descriptor angefordert Mit Hilfe der Charac-teristic und des Descriptors ist es moumlglich die Notifikation uumlber die Herzfrequenz zuaktivieren Dazu wird der Ruumlckruf aktiviert der bei Aumlnderung einer Characteristicaufgerufen wird und anschlieszligend der Descriptor mit der Option BluetoothGattDescrip-torENABLE_NOTIFICATION_VALUE an das Geraumlt gesendet

39

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 46: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

Aumlnderungen des Werts der Characteristic fuumlhren nun zum Aufruf der RuumlckrufmethodeonCharacteristicChanged() im BluetoothGattCallback Objekt

1 List ltBluetoothGattService gt services = mBluetoothGatt

getServices ()

2 for (BluetoothGattService service services)

3 List ltBluetoothGattCharacteristic gt characteristics =

servicegetCharacteristics ()

4 if(servicegetUuid ()toString ()equals(

HEARTRATE_SERVICE_UUID))

5

6 for(BluetoothGattCharacteristic c characteristics)

7 if(cgetUuid ()toString ()equals(

HEARTRATE_MEASUREMENT_CHARACTERISTIC_UUID))

8

9 List ltBluetoothGattDescriptor gt descriptors

10 if(( descriptors = cgetDescriptors ()) = null ampamp

descriptorssize() gt 0)

11

12 BluetoothGattDescriptor descriptor =

descriptorsget(0)

13 if(descriptorgetUuid ()toString ()equals(

CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID

))

14

15 boolean success = mBluetoothGatt

setCharacteristicNotification(c true)

16 if( success)

17 throw new HeartRateException(Setting

proper notification status for

characteristic failed)

18

19 descriptorsetValue(

BluetoothGattDescriptor

ENABLE_NOTIFICATION_VALUE)

20 mBluetoothGattwriteDescriptor(descriptor)

21

22 throw new MeasurementException(GATT

Descriptor not available)

40

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 47: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

41 Implementierungsdetails

23

24

25

26

27

Listing 47 Ausschnitt der startMeasurement Methode in BleManager

ANT+

Uumlber das durch das Herstellen der Verbindung erstellte Objekt der Klasse AntPlusHe-artRatePcc mit dem die Kommunikation mit dem ANT+ Geraumlt realisiert wird laumlsst sichdas Senden der Herzfrequenz aktivieren Dazu wird die subscribeHeartRateDataEvent()Methode aufgerufen Als Parameter wird eine Instanz der Schnittstelle AntPlusHeartRa-tePccIHeartRateDataReceiver() fuumlr Ruumlckruffunktionen uumlbergeben In der Ruumlckrufmetho-de onNewHeartRateData() wird dann das eingetroffene Datum behandelt

1 public void subscribeToHrEvents ()

2

3

4 hrPccsubscribeHeartRateDataEvent(new AntPlusHeartRatePcc

IHeartRateDataReceiver ()

5

6 Override

7 public void onNewHeartRateData(final long estTimestamp

EnumSet ltEventFlag gt eventFlags

8 final int computedHeartRate final long heartBeatCount

9 final BigDecimal heartBeatEventTime final

AntPlusHeartRatePccDataState dataState)

10

11 final String textHeartRate = StringvalueOf(

computedHeartRate)

12 + (( AntPlusHeartRatePccDataStateZERO_DETECTED

equals(dataState)) )

13

14

15

16

17

18

Listing 48 Ausschnitt der startMeasurement Methode in AntplusManager

41

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 48: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

42 Erweiterungsmoumlglichkeit

Kann das Rahmenwerk die Anforderungen fuumlr einen bestimmten Typ eines Fitness-trackers nicht erfuumlllen und bietet dieser eine Moumlglichkeit um mit der Android SDK zukommunizieren ist es moumlglich das Rahmenwerk zu erweitern Im Folgenden wirderlaumlutert wie man hier praktisch vorgehen kann

421 Sensor

Fuumlr die Geraumlte des neuen Protokolls wird stellvertretend eine neue Sensor Klasse erstelltUm die Geraumlte mit dem Rahmenwerk kompatibel zu machen implementiert diese Klassedie Schnittstelle HeartRateSensor Neben den Getter und Setter Methoden kann je nachzu implementierendem Protokoll ein protokollspezifisches Objekt abgelegt werden fallses zur internen Kommunikation noumltig ist Um den Austausch der Sensoren uumlber verschie-dene Activitys zu ermoumlglichen erweitert die HeartRateSensor Schnittstelle die ParcelableSchnittstelle Diese Methoden gilt es ebenfalls entsprechend zu implementieren

422 Manager Klasse

Die neu erstellte Manager Klasse muss von der abstrakten Klasse HeartRateManagerableiten Anschlieszligend sind die abstrakten Methoden zu implementieren

1 public class XManager extends HeartRateManager

2 public XManager(HeartRateCallbacks callbacks) throws

HeartRateException

3

4 super(callbacks)

5

6 Override

7 public void startScanning ()

8

9

10 Override

11 public void stopScanning ()

12

13

14 Override

15 public void connect(HeartRateSensor s) throws

HeartRateException

42

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 49: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

42 Erweiterungsmoumlglichkeit

16

17

18 Override

19 public void close ()

20

21

22 Override

23 public void startMeasurement () throws HeartRateException

24

25 Override

26 public HeartRateDataSet stopMeasurement ()

27 code for stoping measurement

28 running = false

29 return getHeartRateDataSet ()

30

31

Listing 49 Beispiel einer Manager Klasse

Konstruktor

Im Konstruktor muss mindestens ein Objekt der Klasse HeartRateCallbacks uumlbergebenwerden Dieses muss dann mit super an die Basisklasse uumlbergeben werden

startScanning

In dieser Klasse wird der Scan nach Geraumlten des neu zu implementierenden Protokollsrealisiert Bei neu gefundenen Geraumlten empfiehlt es sich diese in der Hashmap device-Map abzulegen um den aktuellen Status der gefundenen Geraumlte zu halten GefundeneGeraumlte sollten mit callBacksdeviceFound(HeartRateSensor) an die aufrufende Anwen-dung uumlbergeben werden

connect

Implementation des Verbindungsaufbaus der Parameter ist das Geraumlt mit dem die Verbin-dung aufgebaut werden soll Der zu nutzende Ruumlckruf ist connectionStateChanged()

startMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten gesendetwerden sollen Dabei sollte man folgendes beachten Um die Messung auf Zeit korrektzu implementieren sollte man beim Eintreffen des ersten Wertes folgendes Codegeruumlstverwenden Im Falle einer Messung auf Zeit werden in der Basisklasse die Variablen ti-mer_started und running auf true und counter auf die entsprechende Sekundenanzahlgesetzt In diesem Fall sollte man beim ersten Herzfrequenzdatum den Timer starten

43

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 50: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

Damit der Timer nur einmal gestartet wird wird timer_started anschlieszligend wieder auffalse gesetzt Im Timer-Thread wird dann der counter sekundenweise herunter gezaumlhltund entsprechend der secondDone() Ruumlckruf aufgerufen Das eingetroffene Herzdatumwird mit der Ruumlckruffunktion newHeartrateData() uumlbergeben und sollte der ArrayList he-artRateValues hinzugefuumlgt werden

1 Neuer Wert eingetroffen

2 if(timer_started)

3

4 timer_started = false

5 new Thread(new Runnable ()

6 public void run()

7 while (counter gt 0 ampamp running)

8 try

9 Threadsleep (1000)

10

11 catch (InterruptedException e)

12

13 counter --

14 callBackssecondDone(counter)

15

16 if(running)

17

18 callBacksmeasurementDone(stopMeasurement ())

19 running = false

20

21

22 )start()

23

24

25 if(running)

26

27 Date d = new Date()

28 int heartRate =0 TODO set heart frequency value

29 HeartRateData tmp = new HeartRateData(heartRate d

getTime ())

30 if(callBacks = null)

31 callBacksnewHeartrateData(tmp)

32 getHeartRateValues ()add(tmp)

44

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 51: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

43 Benutzung

33

Listing 410 Beispiel der Implementierung beim Eintreffen eines neuen Datums

stopMeasurement

Hier soll dem verbundenen Geraumlt signalisiert werden dass Herzfrequenzdaten nicht mehrgesendet werden sollen Der Ruumlckgabewert sollte die heartRateValues ArrayList sein

43 Benutzung

Die Benutzung des Rahmenwerks war in den vorherigen Abschnitten schon teilweise er-sichtlich In diesem Abschnitt wird genauer erlaumlutert wie man das Rahmenwerk in eineAndroid Applikation einbauen kann

Rechte

In der AndroidManifest Datei muumlssen die BLUETOOTH und BLUETOOTH_ADMIN Rech-te gesetzt werden Fuumlr eine Nutzung unter Android 60 muss zusaumltzlich das Recht AC-CESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION gesetzt werden [1]

Ruumlckruffunktionen

Ein Objekt einer Klasse die HeartRateCallbacks implementiert muss vor dem erstellen derInstanz des Rahmenwerks erstellt werden Hierfuumlr kann man die Null Klasse benutzen unddie benoumltigten Ruumlckrufmethoden uumlberschreiben

1 callbacks = new HeartRateCallbacksNull()

2 Override

3 public void connectionStateChanged(HeartRateSensor s

HeartRateManagerCONNECTION state)

4 if(state == HeartRateManagerCONNECTIONCONNECTED)

5

6

7 Override

8 public void measurementDone(HeartRateDataSet data)

9

10

11

12 Override

13 public void deviceFound(final HeartRateSensor device)

14

15

16 Override

45

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 52: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 4 Implementierung

17 public void newHeartrateData(HeartRateData d)

18

19

20

21 Override public void secondDone(int counter)

22

23

24

25

Listing 411 Beispiel Erstellung Ruumlckrufobjekt

Managerobjekt erstellen

Nachdem der das Ruumlckrufobjekt erstellt wurde kann eine Instanz des entsprechendenManagers erstellt werden der das Ruumlckrufobjekt uumlbergeben wird

1 HeartRateManager hrm

2 try

3 if(DEVICE_TYPE == HeartrateEnumDEVICE_TYPE_MIO)

4

5 hrm = new BleManager(this callbacks)

6 else

7

8 hrm = new AntplusManager(this callbacks)

9

10 catch(HeartRateException e)

11

12

13

Listing 412 Erstellung einer Manager Instanz

Danach lassen sich die Methoden startScanning() stopScanning() connect() startMea-surement() stopMeasurement() in Kombination mit den Ruumlckrufmethoden nutzen

46

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 53: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 5

Anforderungsabgleich

In diesem Kapitel werden die Anforderungen aus Kapitel 3 erneut aufgegriffen und mitden Funktionen des implementierten Rahmenwerk verglichen

51 Nicht funktionale Anforderungen

Nummer Titel Beschreibung1 Herzfrequenzdaten Anforderung erfuumlllt Der Anwender des Fra-

meworks kann Herzfrequenzdaten im festge-legten Datenformat von verschiedenen Fit-nesstrackern beziehen ohne sich mit den Ei-genschaften der einzelnen Protokollen zu be-schaumlftigen

2 Modulare Architektur Anforderung erfuumlllt Durch die schnittstellen-basierte Architektur nach dem Strategiemus-ter ist eine Erweiterung problemlos moumlglichsiehe Kapitel 42 ErweiterungsmoumlglichkeitDurch die Generalisierungen ziehen Aumlnde-rungen im Rahmenwerk keine oder wenigeAumlnderungen in der Anwendung nach sich

3 Ab Android 43 Anforderung erfuumlllt Android Smartphones abAndroid Version 43 werden vom Rahmen-werk unterstuumltzt Siehe Kapitel 275 einge-setzte Hardware

4 Ab Android 50 Anforderung erfuumlllt Es werden ab AndroidAPI 21 die neuen SDK Methoden und Klas-sen verwendet Siehe Kapitel 4

47

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 54: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 5 Anforderungsabgleich

52 Funktionale Anforderungen

Nummer Titel Beschreibung1 Typ Anforderung erfuumlllt Siehe Kapitel 43 Mana-

ger Objekt erstellen2 Scan Anforderung erfuumlllt Die Methode startScan-

ning() erfuumlllt diese Anforderung Siehe Ka-pitel 411

3 Scan Callback Anforderung erfuumlllt Die Ruumlckrufmethode de-viceFound() wird aufgerufen sobald einGeraumlt gefunden wurde

4 Connect Anforderung erfuumlllt Siehe Kapitel 412 Ver-bindung herstellen

5 Connect to Adress Anforderung erfuumlllt Uumlbergibt man derconnect() Methode statt dem HeartRate-Sensor nur die Adresse wird ebenfalls eineVerbindung hergestellt

6 Connection State Callback Anforderung erfuumlllt Aumlndert sich der Zustandder Verbindung wird dies uumlber die Ruumlck-rufmethode connectionStateChanged() zu-ruumlckgegeben

7 Start Measurement Anforderung erfuumlllt Siehe Kapitel 413 Mes-sung starten

8 Start Measurement 2 Anforderung erfuumlllt Die Messung auf Zeit wirddurch einen Timer im Rahmenwerk realisiert

9 New Value Callback Anforderung erfuumlllt Beim Eintreffen einesneuen Herzfrequenzdatums wird die Ruumlckruf-methode newHeartrateData() aufgerufen

10 Second Callback Anforderung erfuumlllt Nach jeder vergangenenSekunde wird die Ruumlckrufmethode second-Done() aufgerufen

11 Finished Callback Anforderung erfuumlllt Nach dem erfolgreichenBeenden einer Messung wird die Ruumlckrufme-thode measurementDone() aufgerufen

12 Stop Measurement Anforderung erfuumlllt Mit der Methode stop-Measurement() kann die Messung gestopptwerden und die Messergebnisse koumlnnen be-zogen werden

48

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 55: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6

Evaluation

In diesem Kapitel folgt die Auswertung der durchgefuumlhrten Evaluation Da es in der Evalu-ierung hauptsaumlchlich um das Testen des Rahmenwerks geht werden die Ergebnisse derEvaluation lediglich deskriptiv aufgezeigt In der Evaluation wird das entwickelte Rahmen-werk getestet Dazu wird die Testapplikation die in Kapitel 34 beschrieben wird verwen-det Mit der Testapplikation werden an 20 Testpersonen Herzfrequenzmessungen durch-gefuumlhrt Die Testpersonen werden vorab und anschlieszligend durch einen Fragebogen imZusammenhang mit der Evaluation befragt

61 Ziel

Das Ziel der Evaluation ist zum Einen das Testen des Rahmenwerks im Sinne eines Sys-temtests

ldquoSystem testing is concerned with testing the behavior of an entire systemEffective unit and integration testing will have identified many of the softwaredefects System testing is usually considered appropriate for assessing thenonfunctional system requirementsmdashsuch as security speed accuracy andreliability (see Functional and Non-Functional Requirements in the SoftwareRequirements KA and Software Quality Requirements in the Software QualityKA) External interfaces to other applications utilities hardware devices orthe operating environments are also usually evaluated at this levelbdquo [16]

Auszligerdem wird durch die Auswertung der Messergebnisse ein grobes Bild der Genauig-keit der eingesetzten Fitnesstracker generiert Durch die Befragung der Testpersonen solleine Einschaumltzung der Praxistauglichkeit gegeben werden

49

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 56: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6 Evaluation

62 Szenario

In Zusammenarbeit mit der Tinnitus Research Initiative wurde ein Szenario entwickelt dasdie Anforderungen an die Evaluation erfuumlllt Fuumlr die Messung werden zwei Fitnesstrackerdes Herstellers Mio Global verwendet die vom DBIS Institut bereitgestellt werden DieTestpersonen tragen beide Fitnesstracker parallel Am rechten Arm befindet sich das MioAlpha 2 und am linken Arm das Mio Alpha Armband An den Geraumlten wird anschlieszligendder Bluetooth Herzfrequenz-Sendemodus aktiviert Danach wird folgendes Testprotokollangewandt

Tabelle 61 Testprotokoll Evaluation

Aktivitaumlt Dauer ZweckSitzen 1 Minute finden des PulsesSitzen 2 Minute Messen des RuhepulsesGehen 1 Minute Messen des Pulses beim GehenGehen und Fragebogen beantworten 1 Minute Messen des Pulses beim Gehen waumlhrend

Fragebogen ausgefuumlllt wird

63 Frageboumlgen

Testfragebogen

Es wurde ein Fragebogen erstellt der Informationen zu den Testpersonen aufnimmt Zu-dem wird vor der Messung eine Einschaumltzung des aktuellen Pulses verlangt Im Anschlussder Messung wird der subjektive Aufwand der Messung abgefragt Auszligerdem wird nochdas Verhaumlltnis zur Durchfuumlhrung von Pulsmessungen und Nutzung von Fitnesstrackernabgefragt Der Fragebogen ist im Anhang A1 ersichtlich

Fragebogen waumlhrend der Messung

Als Fragebogen waumlhrend der Messung wurde eine geeignete Fragebogen SmartphoneApplikation gesucht um die Umstaumlnde der spaumlteren Benutzung des Rahmenwerks zusimulieren Es wurde eine Applikation verwendet die kostenlos ist offline benutzbar istund relativ wenig komplexe Fragen beinhaltet Die Android Applikation ldquoFuumlhrerschein App2018 - Fahrschule Theorieldquo laumlsst sich im PlayStore finden und uumlber diesen installierenFuumlr den Testlauf wurden zufaumlllige Fragen ausgesucht

50

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 57: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

64 Testpersonen

64 Testpersonen

Bei der Evaluation nahmen 20 Testpersonen teil Davon waren 10 Frauen und 10 MaumlnnerDas Durchschnittsalter betrug 269 Jahre Die aumllteste Person war 61 Jahre alt die juumlngstePerson war 17 Jahre alt Die Hautfarbe der getesteten Personen ist weiszlig

Tabelle 62 Testpersonen

Nr Geschlecht Alter Jahre der Ausbildung ab Grundschule1 w 26 162 m 26 153 m 26 134 m 26 185 m 26 206 w 27 177 m 25 188 w 61 119 m 17 1210 w 24 1311 m 28 1912 m 26 1813 w 28 1614 w 24 1715 w 28 1816 w 25 1817 w 25 1818 m 25 1919 m 23 1620 w 22 16

51

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 58: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6 Evaluation

65 Ergebnisse

Die Messdaten die bei der Evaluation entstanden sind werden im Folgenden aufbereitetHierbei werden Durchschnittswerte beider Sensoren betrachtet und die Ergebnisse beiderSensoren anhand ihrer Korrelation verglichen

Der durchschnittliche Ruhepuls uumlber beide Sensoren bei der ldquoBaselineldquo Messung lag bei6936 Schlaumlgen pro Minute Der durchschnittliche Puls uumlber beide Sensoren bei der ldquoGe-henldquo Messung lag bei 8987 Schlaumlge pro Minute Der durchschnittliche Puls uumlber beideSensoren bei der ldquoGehen+Fragebogenldquo Messung lag bei 8516 Schlaumlgen pro Minute

Der durchschnittliche Ruhepuls der ldquoBaselineldquo Messung des Mio Alpha 2 betraumlgt 6903Schlaumlge pro Minute Der durchschnittliche Ruhepuls der Messung des Mio Alpha 1 betraumlgt697 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoBaselineldquo Messung bei 067 Schlaumlgen pro Minute Der Korrelationskoeffizientbeider Sensoren liegt bei der ldquoBaselineldquo Messung bei 0799

Abbildung 61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung

Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 2 betraumlgt 8875 Schlaumlgepro Minute Der durchschnittliche Puls der ldquoGehenldquo Messung des Mio Alpha 1 betraumlgt

52

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 59: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

65 Ergebnisse

9099 Schlaumlge pro Minute Somit liegt die durchschnittliche Abweichung beider Sensorenbei der ldquoGehenldquo Messung bei 224 Schlaumlgen pro Minute Der Korrelationskoeffizient beiderSensoren liegt bei der ldquoGehenldquo Messung bei 049

Abbildung 62 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung

Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messung des Mio Alpha 2 betraumlgt8759 Schlaumlge pro Minute Der durchschnittliche Puls der ldquoGehen+Fragebogenldquo Messungdes Mio Alpha 1 betraumlgt 8274 Schlaumlge pro Minute Somit liegt die durchschnittliche Ab-weichung beider Sensoren bei der ldquoGehen+Fragebogenldquo Messung bei 485 Schlaumlgen proMinute Der Korrelationskoeffizient beider Sensoren liegt bei der ldquoGehen+FragebogenldquoMessung bei 069

Im Schnitt war der Puls bei der ldquoGehen+Fragebogenldquo Messung 5 Schlaumlge pro Minuteniedriger als bei der ldquoGehenldquo Messung Beim Mio Alpha 2 war der Puls bei der ldquoGe-hen+Fragebogenldquo Messung 116 Schlaumlge pro Minute niedriger als bei der ldquoGehenldquo Mes-

53

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 60: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6 Evaluation

Abbildung 63 Bildliche Darstellung der Korrelation bei der ldquoGehen+FragebogenldquoMessung

sung Beim Mio Alpha 1 war der Puls bei der ldquoGehen+Fragebogenldquo Messung 825 Schlaumlgepro Minute niedriger als bei der ldquoGehenldquo Messung

Die durchschnittliche Schaumltzung der Testpersonen ihres Ruhepules lag bei 7045 Schlauml-gen pro Minute Somit ergibt sich eine Abweichung zum durchschnittlich gemessenenRuhepuls uumlber beide Sensoren von 109 Schlaumlgen pro Minute uumlber den Mio Alpha 2 von145 Schlaumlgen pro Minute und uumlber den Mio Alpha 1 von 075 Schlaumlgen pro Minute

Die anschlieszligende Befragung zur Evaluation kam zu folgendem Ergebnis

54

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 61: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

65 Ergebnisse

Tabe

lle6

3E

rgeb

nis

derB

efra

gung

Nr

Ges

chaumlt

zter

Ruh

epul

sW

ardi

eM

essu

ngau

fwaumln

dig

Reg

elm

aumlszligig

Fitn

ess-

trac

ker

imE

insa

tz

Reg

elm

aumlszligig

eP

uls-

mes

sung

1

68ne

inne

inja

260

nein

nein

nein

372

nein

nein

nein

455

nein

nein

ja5

60ja

jane

utra

l6

90ne

inne

inne

in7

60ja

nein

nein

860

neut

ral

nein

nein

970

jane

inne

in10

60ne

utra

lne

inne

in11

60ja

nein

nein

1280

nein

nein

nein

1382

nein

nein

nein

1470

nein

nein

nein

1580

neut

ral

nein

neut

ral

1660

nein

nein

nein

1785

nein

nein

nein

1870

nein

nein

nein

1910

5ne

inne

inne

utra

l20

62ne

inne

inne

inG

esam

t70

45

4ja

|3ne

utra

l|13

nein

1ja

|0ne

utra

l|19

nein

2ja

|3ne

utra

l|15

nein

55

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 62: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6 Evaluation

Tabelle64M

ittelwerte

dereinzelnenM

essungenN

rS

1B

aselineS

1G

ehenS

1G

ehen+

FragebogenS

2B

aselineS

2G

ehenS

2G

ehen+

Fragebogen1

69788135599042105263

90389830517007563025

86163934438644262295

26247663551

80810344837869090909

6252100848124137931

79542372883

65841584167769387755

79870370376526086957

79280701758575409836

44899137931

86945454558286666667

4910526316865

83116666675

67836538469156862745

82842105266849137931

90196721318461403509

67233628319

10059090911075535714

71844827591050172414

93557

69621848749555932203

97352941187071428571

969664814815

8631092437

895087719378

88830508478655932203

79333333339

64133928578147368421

72683333335810169492

80533333337291071429

107692982456

91264150949406896552

76529914538203278689

775090909111

72145299158094

8060655738716754386

85379310347894915254

126787394958

82383333338186666667

67948275861012586207

843392857113

6567796618941666667

82603448286550909091

88468085117377966102

148397368421

84645833339505769231

83813559321147413793

954833333315

50641025649511111111

11903278695025210084

86590163937683606557

168131092437

10013559329704918033

81672268919676666667

881967213117

7149572658261818182

6226861538462

86583333335445762712

187131683168

8277777778685

69927927937601886792

65413793119

73263157899292727273

89685185197335344828

88641509438401923077

208178632479

9816949153110862069

79773913041217868852

1138363636S

chnitt6902751459

88748072848758911397

69700839519098801212

8273661584

56

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 63: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

66 Fazit

Auffaumllligkeiten

Die Messungen Mio Alpha 2 konnten nicht immer auf Anhieb korrekt durchgefuumlhrt wer-den Aus bisher nicht bekannten Gruumlnden wurde waumlhrend der Messung die Verbindungzwischen dem Smartphone und dem Fitnesstracker unterbrochen Daraufhin wurde dieMessung wiederholt

66 Fazit

Ziel dieser Evaluation war es das Rahmenwerk auf Funktion zu pruumlfen Dieser Test wurdeerfolgreich anhand 20 Testpersonen mit jeweils 6 Messungen aufgeteilt auf zwei Fitness-tracker durchgefuumlhrt Das geschilderte Evaluationsszenario wurde entsprechend durch-gefuumlhrt die Ergebnisse wurden detailliert verglichen und beschrieben Die Ergebnissesind fuumlr eine weitere Betrachtung und eine Auswertung bereit

67 Zusammenfassung

Ziel der Evaluation ist das Testen des Rahmenwerks im Sinne eines Systemtests unddie Vermittlung eines groben Eindrucks der Messergebnisse der ausgewaumlhlten Fitness-tracker Mit der Tinnitus Research Initiative wurde ein Szenario entwickelt das die Anfor-derungen der Evaluation erfuumlllt Dieses Szenario beinhaltet 3 Messungen pro Testpersonmit jeweils zwei Fitnesstrackern (ein Geraumlt pro Arm) und einen vorherigen und anschlie-szligenden Fragebogen Es nahmen 20 Testpersonen an der Evaluation teil

Die Korrelationen der Messungen zwischen dem Alpha Mio 2 und dem Alpha Mio 1 sindzusammengefasst wie folgt

bull ldquoBaselineldquo Messung 0799

bull ldquoGehenldquo Messung 049

bull ldquoGehen+Fragebogenldquo Messung 069

57

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 64: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 6 Evaluation

58

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 65: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 7

Zusammenfassung und Ausblick

71 Zusammenfassung

Die Zielsetzung dieser Arbeit entstand durch die Anforderungen des Track Your TinnitusSystems Das Track Your Tinnitus System beinhaltet eine Android Applikation Eine dernoch nicht implementierten Anforderungen dieser Applikation ist das Auslesen von Herz-frequenzdaten der Patienten beziehungsweise deren Fitnesstrackern falls diese entspre-chende benoumltigte Funktionen bereitstellen Das Ziel dieser Arbeit war das Design und dieImplementierung eines entsprechenden flexiblen Rahmenwerks zur Auslesung der Herz-rate von Fitnesstrackern Es wurden zwei Verbindungsprotokolle implementiert BluetoothLow Energy und ANT+ Voraussetzung ist dass die Fitnesstracker die Herzfrequenz nichtverschluumlsselt und dem standard folgend uumlber das jeweilige Protokoll senden Als Test-geraumlte dienten der Mio Alpha 1 der Mio Alpha 2 und der Garmin vivosmart HR+ und8 Android Smartphones mit 3 verschiedenen Haupt-Versionen des Betriebssystems DieArchitektur wurde anhand der Anforderungsanalyse modular gestaltet sodass die Imple-mentierung generalisiert werden und das Rahmenwerk einfach erweiterbar ist Nachdemdas Rahmenwerk in den Grundfunktionen stabil implementiert wurde fand ein Abgleichder Anforderungen statt der positiv ausfiel Anschlieszligend wurde das Rahmenwerk in ei-nem ausgiebigen Test mit 20 Testpersonen evaluiert und die Ergebnisse zur detailliertenBewertung praumlsentiert

72 Ausblick

In erster Linie diente die Entwicklung des Rahmenwerks der Erweiterung der Track YourTinnitus Android Applikation Diese Arbeit erlaumlutert die Nutzung des Rahmenwerks undermoumlglicht diesen Schritt Desweiteren waumlre es moumlglich das Rahmenwerk um ein Verbin-dungsprotokoll oder anders funktionierenden Tracker zu erweitern Das nicht determinis-tische Verhalten des Mio Alpha 2 beschrieben in Kapitel 65 sollte genauer (gegebenen-

59

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 66: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Kapitel 7 Zusammenfassung und Ausblick

falls auf der Transportschicht) untersucht werden Da der Garmin vivosmart HR+ Trackernur waumlhrend der Entwicklung getestet wurde ist es auch angebracht fuumlr diesen Typ Tra-cker eine entsprechende Evaluation durchzufuumlhren Eine weitere interessante Evaluationwaumlre der Vergleich der Messung mit einem geeichten medizinischen Messgeraumlt

60

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 67: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Eigenstaumlndigkeitserklaumlrung

Hiermit versichere ich dass ich die vorliegende Arbeit selbstaumlndig verfasst und keine an-deren als die angegebenen Hilfsmittel verwendet habe Sinngemaumlszlige Uumlbernahmen ausanderen Werken sind als solche kenntlich gemacht und mit genauer Quellenangabe (auchaus elektronischen Medien) versehen

Ulm den 22012018 Florian Malsam

61

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 68: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Anhang A

Anhang

63

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 69: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Anhang A Anhang

Abbildung A1 Fragebogen der Evaluation

64

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 70: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Literaturverzeichnis

[1] Android 60 changes Android 60 changes https developer

androidcomaboutversionsmarshmallowandroid-60-changeshtml

behavior-hardware-id

[2] ANT Message Protocol and Usage ANT Message Protocol and Usage Rev 51

[3] Bluetooth Webseite Bluetooth Webseite wwwbluetoothcom

[4] Creating ANT+ Android Applications Creating ANT+ Android Applications wwwthisisantcom

[5] Fitbit Webseite Fitbit Webseite httpswwwfitbitcom

[6] Garmin vivosmart HR+ manual Garmin vivosmart HR+ manual httpwww8garmincommanualswebhelpvivosmarthrEN-US

[7] Garmin Webseite Garmin Webseite httpswwwgarmincom

[8] Heart Rate Service Heart Rate Service httpswwwbluetoothcom

specificationsgattviewerattributeXmlFile=orgbluetoothservice

heart_ratexml

[9] How Bluetooth Works How Bluetooth Works httpswwwbluetoothcomwhat-is-bluetooth-technologyhow-it-worksle-p2p

[10] IEEE 80215 Working Group for Wireless Specialty Networks IEEE 80215 WorkingGroup for Wireless Specialty Networks httpgrouperieeeorggroups80215

[11] Mio 1 Manual Mio 1 Manual httpswwwmioglobalcomdocsmio_alpha_userguide_engpdf

[12] Mio 2 Manual Mio 2 Manual httpswwwmioglobalcomdocsmio_alpha2_complete-user-guide_enpdf

[13] PowerStream Li-ion Coin Cell Lir2032 Data Sheet PowerStream Li-ion Coin CellLir2032 Data Sheet

[14] Android Source Android Source Nov 2017 httpssourceandroidcom

setup

65

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 71: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Literaturverzeichnis

[15] Strategy Analytics Android Captures Record 88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Strategy Analytics Android Captures Record88 Percent Share of GlobalSmartphone Shipments in Q3 2016 Nov 2017 httpswwwstrategyanalyticscom strategy-analytics news strategy-analytics-press-releases

strategy-analytics-press-release20161102WmHB-Kjia70

[16] ABRAN A BOURQUE P DUPUIS R MOORE J W Guide to the softwareengineering body of knowledge-SWEBOK IEEE Press 2001

[17] BATRA J P J B M NIST Special Publication 800-121 In csrcnistgov (2017)

[18] DBIS DBIS Universitaumlt Ulm In Homepage der Universitaumlt Ulm (2017) https

wwwuni-ulmdeiniui-dbisstartseite]

[19] DBIS Track Your Tinnitus DBIS Seite In DBIS (2017) httpswwwuni-ulm

deiniui-dbisforschunglaufende-projektetrackyourtinnitus

[20] DUumlKING P HOTHO A HOLMBERG H-C FUSS F K SPERLICH B Comparison of Non-Invasive Individual Monitoring of the Training and Health ofAthletes with Commercially Available Wearable Technologies In Frontiers inPhysiology 7 (2016) S 71 ndash ISSN 1664ndash042X

[21] DYNASTREAM ANT history In ANT Webseite (2017) httpswwwthisisant

comcompanyd1history

[22] FARAGHER H An Analysis of the Accuracy of Bluetooth Low Energy for IndoorPositioning Applications In Proceedings of the 27th International Technical Meetingof The Satellite Division of the Institute of Navigation (2014)

[23] GERLACH H-E Praktische Phlebologie - Empfehlungen zur differenziertenDiagnostik und Therapie phlebologischer Krankheitsbilder 69 Tabellen Stuttgart Georg Thieme Verlag 2006 ndash ISBN 978ndash3ndash131ndash19232ndash5

[24] GORELICK D M Mio Heart Rate Accuracy vs EKG In Mio Heart Rate AccuracyStudy Brief (2013)

[25] HERRMANN J Konzeption und technische Realisierung einesmobilen Frameworks zur Unterstuumltzung tinnitusgeschaumldigter Patienten UniverstitaumltUlm Diplomarbeit 2014

[26] KARGL Mobile Communication and Bluetooth In Advanced Concepts of ComputerNetworks (2015)

[27] KHSSIBI B V S Idoudi Presentation and analysis of a new technology for low-powerwireless sensor network In International Journal of Digital Information and WirelessCommunications (2013)

66

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 72: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Literaturverzeichnis

[28] MAAS R Fitness-Tracker und Datenschutz Bitkom 2016 ndash Forschungsbericht

[29] PARAK J KORHONEN I Evaluation of wearable consumer heart rate monitorsbased on photopletysmography In 2014 36th Annual International Conference ofthe IEEE Engineering in Medicine and Biology Society 2014 ndash ISSN 1094ndash687X S3670ndash3673

[30] PROBST T PRYSS R LANGGUTH B RAUSCHECKER J SCHOBEL J REICHERT M SPILIOPOULOU M SCHLEE W ZIMMERMANN J Doestinnitus depend on time-of-day An ecological momentary assessment study withthe ldquoTrackYourTinnitusldquo application In Frontiers in Aging Neuroscience 9 (2017) S253ndash253

[31] PROBST T PRYSS R LANGGUTH B SCHLEE W Emotional states asmediators between tinnitus loudness and tinnitus distress in daily life Results fromthe ldquoTrackYourTinnitusldquo application In Scientific Reports 6 (2016) February

[32] PROBST T PRYSS R LANGGUTH B SPILIOPOULOU M LANDGREBE M VESALA M HARRISON S SCHOBEL J REICHERT M STACH M SCHLEE W Outpatient Tinnitus Clinic Self-Help Web Platform or Mobile Application to RecruitTinnitus Study Samples In Frontiers in Aging Neuroscience 9 (2017) April S 113ndash113

[33] PRYSS R PROBST T SCHLEE W SCHOBEL J LANGGUTH B NEFF P SPILIOPOULOU M REICHERT M Mobile Crowdsensing for the Juxtaposition ofRealtime Assessments and Retrospective Reporting for NeuropsychiatricSymptoms In 30th IEEE International Symposium on Computer-Based MedicalSystems (CBMS 2017) IEEE Computer Society Press June 2017

[34] PRYSS R SCHLEE W LANGGUTH B REICHERT M Mobile CrowdsensingServices for Tinnitus Assessment and Patient Feedback In 6th IEEE InternationalConference on AI amp Mobile Services (IEEE AIMS 2017) IEEE Computer SocietyPress June 2017

[35] R P M R B L W S Mobile Crowd Sensing Services for Tinnitus AssessmentTherapy and Research In Mobile Services (MS) 2015 IEEE InternationalConference (2014)

[36] SCHLEE W PRYSS R PROBST T SCHOBEL J BACHMEIER A REICHERTM LANGGUTH B Measuring the Moment-to-Moment Variability of Tinnitus TheTrackYourTinnitus Smart Phone App In Frontiers in Aging Neuroscience 8 (2016)December S 294ndash294

[37] SHCHERBINA A MATTSSON C M WAGGOTT D SALISBURY H CHRISTLEJ W HASTIE T WHEELER M T ASHLEY E A Accuracy in Wrist-Worn Sensor-Based Measurements of Heart Rate and Energy Expenditure in a Diverse Cohort In

67

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 73: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Literaturverzeichnis

Journal of Personalized Medicine (2017)

[38] STAHL S E AN H-S DINKEL D M NOBLE J M LEE J-M How accurateare the wrist-based heart rate monitors during walking and running activities Arethey accurate enough In BMJ Open Sport amp Exercise Medicine 2 (2016) Nr 1

[39] T P R P B L W S Emotion dynamics and tinnitus Daily life data from theldquoTrackYourTinnitusrdquo application In Scientific Reports 6 (2016)

[40] TALASILA B Curtmola Mobile Crowd Sensing In Department of Computer ScienceNew Jersey Institute of Technology Newark NJ USA (2014)

68

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 74: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Abbildungsverzeichnis

21 Piconet (Quelle FKR Skript Prof Kargl) 922 YMCA Test (Quelle wwwlaxymcaorg) kgm = Kilogram x Meter Leistungs-

angabe 1323 Mio Alpha 2 Ergebnis [37] 16

31 Strategiemuster 2232 Klassenhierarchie Managerklassen 2333 Klassenhierarchie Sensoren 2434 Prinzip des Beobachtermusters 2535 Datenmodell 2736 Architektur Testapplikation 31

61 Bildliche Darstellung der Korrelation bei der ldquoBaselineldquo Messung 5262 Bildliche Darstellung der Korrelation bei der ldquoGehenldquo Messung 5363 Bildliche Darstellung der Korrelation bei der ldquoGehen+Fragebogenldquo Messung 54

A1 Fragebogen der Evaluation 64

69

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 75: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Abbildungsverzeichnis

70

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis
Page 76: Konzeption, Implementierung und Evaluation eines ...dbis.eprints.uni-ulm.de/1594/1/MA_Mal_2018.pdf1. Gutachter Prof. Dr. Manfred Reichert 2. Gutachter Dr. Rüdiger Pryss Betreuer:

Tabellenverzeichnis

21 Stahl et al Testprotokoll 1222 Gorelick Testprotokoll 1423 Shcherbina et al Testprotokoll 1524 Liste der verwendeten Smartphones 17

31 Nicht funktionale Anforderungen des Rahmenwerks 2032 Funktionale Anforderungen des Rahmenwerks 2133 Nicht funktionale Anforderungen der Testapplikation 2934 Funktionale Anforderungen der Testapplikation 30

61 Testprotokoll Evaluation 5062 Testpersonen 5163 Mittelwerte der einzelnen Messungen 5564 Ergebnis der Befragung 56

71

  • Einleitung
    • Problemstellung
    • Zielsetzung
    • Aufbau der Arbeit
    • Zusammenfassung
      • Grundlagen
        • Track Your Tinnitus
        • Verwandte Arbeiten
        • Fitnesstracker
        • Bluetooth
          • Bluetooth Low Energy
            • ANT
              • ANT+
                • Android
                • Eingesetzte Hardware
                  • Mio Alpha 1
                  • Mio Alpha 2
                  • Garmin Vivosmart HR+
                  • Fazit Fitnesstracker
                  • Smartphones
                    • Zusammenfassung
                      • Konzeption
                        • Ziel
                        • Anforderungsanalyse
                          • Nicht funktionale Anforderungen
                          • Funktionale Anforderungen
                            • Architektur
                              • Callbacks
                              • Datenmodell
                              • Exceptions
                                • Testapplikation
                                  • Ziel
                                  • Anforderungsanalyse Testapplikation
                                  • Architektur
                                    • Zusammenfassung
                                      • Implementierung
                                        • Implementierungsdetails
                                          • Geraumlte suchen
                                          • Verbindung herstellen
                                          • Messung starten
                                            • Erweiterungsmoumlglichkeit
                                              • Sensor
                                              • Manager Klasse
                                                • Benutzung
                                                  • Anforderungsabgleich
                                                    • Nicht funktionale Anforderungen
                                                    • Funktionale Anforderungen
                                                      • Evaluation
                                                        • Ziel
                                                        • Szenario
                                                        • Frageboumlgen
                                                        • Testpersonen
                                                        • Ergebnisse
                                                        • Fazit
                                                        • Zusammenfassung
                                                          • Zusammenfassung und Ausblick
                                                            • Zusammenfassung
                                                            • Ausblick
                                                              • Anhang
                                                              • Literaturverzeichnis