Plattform-uavhengig grensesnitt for FTMS - Programmatisk fjernstyring av treningsapparater
Abstract
Denne oppgaven omhandler implementasjon av Fitness Machine Service profilen for Low Energy Bluetooth i et programvarebibliotek som kan integreres i større prosjekter. Tenkt bruksområdet for et slikt bibliotek er integrasjon mot spillutviklingsrammeverk som Unity med formålet om å utvikle spill som anvender treningsapparat for å øve koordinasjon og balanse, eller rehabilitering.
Oppgaven er gitt under forutsetningen av løsningen skal være plattform-uavhengig for enkel distribusjon av sluttprodukter som utvikles med biblioteket. Denne løsningen er et forsøk på å forene de vidt forskjellige implementasjonene av Bluetooth over ulike operativsystemer til et standardisert, intuitivt .NET bibliotek. Under utvikling ble det lagt vekt på ekstensibilitet, slik at utviklere kan utvide støtte for alternative implementasjoner av Bluetooth, andre treningsapparater og alternativ datahåndtering.
Løsningen utforsker bruksområder for plattform invokasjon (P/Invoke) for å utnytte tverrplattformstøtte fra et forvaltet programvarerammeverk som .NET, imens implementasjonsspesifikk Bluetooth funksjonalitet delegeres til et low-level programmeringsspråk som C++. Resultater er et system basert på to komponenter som kan brukes av alle applikasjoner som støtter .NET Standard API, med fleksibel støtte for ulike systemarkitekturer og operativsystemer.
Implementasjonen av et slikt grensesnitt er relevant for helsesektoren, hvor pasientbehandling og helsemotivasjon kan strømlinjes ved hjelp av interaktive opplevelser som utnytter treningsapparater. Slik kan alminnelig treningsutstyr som støtter FTMS brukes til formål ellers forbeholt spesialisert maskinvare. This task involves implementing the Fitness Machine Service profile for Low Energy Bluetooth in a software library that can be integrated into larger projects. The intended use case for such a library is integration with game development frameworks like Unity, with the purpose of developing games that utilize fitness equipment for practicing coordination and balance, or for rehabilitation.
The task is given under the assumption that the solution should be platform-independent for easy distribution of the end products developed with the library. This solution aims to unify the widely different implementations of Bluetooth across various operating systems into a standardized, intuitive .NET library. During development, emphasis was placed on extensibility, so that developers can add support for alternative implementations of Bluetooth, other fitness equipment, and alternative data handling.
The solution explores the use of platform invocation (P/Invoke) to leverage cross-platform support from a managed software framework like .NET, while delegating implementation-specific Bluetooth functionality to a low-level programming language like C++. The result is a system based on two components that can be used by any application that supports the .NET Standard API, with flexible support for different system architectures and operating systems.
The implementation of such an interface is relevant in the healthcare sector, where patient treatment and health motivation can be streamlined using interactive experiences that utilize fitness equipment. This way, ordinary fitness equipment that supports FTMS can be used for purposes that are otherwise limited to specialized hardware.