Cross-Plattform Bluetooth-Datenaustausch mit MAUI und MVVM
Unser Projekt zielt darauf ab, eine plattformübergreifende Softwarelösung zu entwickeln, die das Microsoft MAUI-Framework nutzt, um Bluetooth-Peripheriegeräte (Peripherals) effizient in Anwendungen einzubinden. Dabei wird das MVVM-Pattern (Model-View-ViewModel) verwendet, um die Daten der Bluetooth-Characteristics einfach und intuitiv vom ViewModel an die Benutzeroberfläche (View) zu binden.
Hauptziele:
- Plattformübergreifende Entwicklung: Nutzung von Microsoft MAUI für die Erstellung einer einheitlichen Anwendung, die auf verschiedenen Plattformen (iOS, Android, Windows, etc.) funktioniert.
- Effiziente Datenbindung: Anwendung des MVVM-Patterns, um die Bluetooth-Daten von den Peripherals in den Characteristics nahtlos an die View zu binden.
- Automatisierte Code-Generierung: Entwicklung einer Definitionssprache zur automatischen Generierung des notwendigen Codes für .NET-Anwendungen sowie für den Microcontroller, der als GATT-Server fungiert.
Projektumfang:
- MAUI-Integration: Implementierung von MAUI für die Entwicklung der Benutzeroberfläche und die plattformübergreifende Kompatibilität.
- MVVM-Architektur: Strukturierung der Anwendung nach MVVM-Pattern, um die Trennung von Geschäftslogik und Benutzeroberfläche zu gewährleisten.
- Bluetooth-Konnektivität: Einrichtung und Verwaltung der Bluetooth-Verbindungen zu verschiedenen Peripheriegeräten.
- Definitionssprache: Entwicklung einer IDL (Interface Definition Language), die den notwendigen Code für die Interaktion mit den GATT-Characteristics automatisch generiert, sowohl für die .NET-Seite als auch für den Microcontroller-GATT-Server.
Eingesetzte Technologien:
- C#12
- Microsoft MAUI (Nachfolger Xamarin)
- Bluetooth Low Energy (GATT)
- Microcontroller ESP32, nRF
- ESP IDF/FreeRTOS
- zephyr RTOS
- C++-17 / C++20
USB Keyboard Emulation für Bluetooth Low Energy GATT Service
Das Projekt zielt darauf ab, eine Lösung zu entwickeln, bei der spezifische Zeichenketten von einem Smartphone über Bluetooth Low Energy (BLE) an einen PC übertragen werden. Hierbei soll das Smartphone die Zeichenketten über GATT Characteristics (Generic Attribute Profile) senden, während ein BLE-fähiger USB-Dongle die Daten empfängt und diese über den USB Human Interface Device (HID) Modus als Tastatureingaben an den PC weiterleitet.
Eingesetzte Technologien:
- Nordic nRF52840
- USB HID
- zephyr RTOS
- Bluetooth Low Energy GATT
Moderner Anmeldedialog für Sicherheitsdaten
Das Projekt umfasste die Entwicklung einer modernen WPF-Anwendung für die Eingabe sicherheitsrelevanter Anmeldedaten, einschließlich SmartCard-Informationen oder anderer Dienste. Der Anmeldedialog wurde so konzipiert, dass er flexibel konfigurierbar ist und vollständig im Corporate Design des Kunden erscheint.
Eine besondere Herausforderung bestand darin, dass der Anmeldedialog sowohl aus bestehenden nativen Codes angesteuert werden konnte als auch eine Anbindung an einen RPC-Dienst erforderte. Dieser Dienst übertrug die Konfiguration zum Dialog-Service und sicherte gleichzeitig die Übertragung sensibler Anmeldedaten in gesicherten Verfahren zurück an die Anwendung.
✓ C# 12 / .net 8
✓ C++-17 / C++20
✓ WPF
✓ JsonRPC
Kommunikationsmodul für Gastronomie-Spülsysteme
Das Projekt umfasste die Entwicklung eines Kommunikationsmoduls für Gastronomie-Spülsysteme, basierend auf einem ESP32-WROOM-Modul mit Zephyr RTOS. Zu den Aufgaben gehörte die Beratung zur Verbesserung der Entwicklungsumgebung, die Build-Automatisierung mit Gitlab und die Erbringung von Funktionsnachweisen für Hardwarekomponenten wie WLAN, Bluetooth und serielle Schnittstelle. Weiterhin wurden Schnittstellen wie OAuth, MQTT, DHCP-Client, Bluetooth GATT-Server und Firmware-Update (OTA) implementiert. Alle Verbindungen mussten TLS verwenden und Server mussten über ihre Zertifikate authentifiziert werden. Es wurde eine Strategie für den Wechsel zwischen verschiedenen Softwarezuständen entwickelt und ein GATT-Server für die Steuerung von Aktoren, das Auslesen von Sensoren und Fehlerprotokollen sowie das Setzen von Parametern implementiert. Zusätzlich wurde die serielle Kommunikation mit der Maschine über ein kundenspezifisches Protokoll entwickelt und ein MQTT-Client für den Datenaustausch mit der Kunden-Server-Infrastruktur implementiert.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ Espressif ESP32
✓ Zephyr RTOS
✓ Embedded-C
✓ Bluetooth-Low-Energy
✓ MQTT-Kommunikation für IoT-Geräte
Sub-Bit Packing
Sub-Bit Packing ist eine bahnbrechende C++-Bibliothek zur effizienten Speicherung von Zuständen. Ideal für Anwendungen mit begrenztem Speicherplatz, insbesondere in eingebetteten Systemen. Die Bibliothek ermöglicht die optimierte Speicherung großer Zustandsmengen, was zu reduziertem Speicherbedarf und schnelleren Lese- und Schreibvorgängen führt. Einfache Integration und vielseitige Anwendbarkeit machen Sub-Bit Packing zu einem unverzichtbaren Werkzeug für die Entwicklung fortschrittlicher Projekte in C++. Erfahren Sie mehr in unserem GitHub-Repository.
EnergySaver Pro
Der EnergySaver Pro ist der innovative Begleiter für intelligente Energieeinsparung in Zusammenarbeit mit Tibber. Das Gerät zeigt stundengenaue Strompreise auf einem klaren E-Paper-Display an, ermöglicht umweltfreundlichen Batteriebetrieb und überzeugt mit einem vielseitigen Design zur einfachen Aufstellung oder Wandmontage. Durch das Wissen über präzise Strompreise können Nutzer ihren Verbrauch optimieren und so effizient Energie sparen, um Kosten zu reduzieren und einen Beitrag zur Nachhaltigkeit zu leisten.
HeadlessLink
“HeadlessLink” ist ein innovatives Software-Framework, das Headless-IoT-Geräte ohne Ein- und Ausgabemöglichkeiten mühelos über eine praktische Handy-App mit dem Internet verbindet. Das Framework besteht aus zwei leistungsstarken Bibliotheken für IoT-Geräte und Smartphone-App-Entwickler, die eine Vielzahl von Integrationsmöglichkeiten durch anpassbare Rückruf-Funktionen mit minimalem Aufwand bieten. Mit Unterstützung für Android und iOS sorgt “HeadlessLink” für ein reibungsloses Erlebnis auf verschiedenen Geräten. Dank Kompatibilität mit Systemen auf Basis von Zephyr RTOS und nativen ESP32-Projekten vereinfacht dieses Framework den Integrationsprozess und schafft eine nahtlose Verbindung zwischen Headless-IoT-Geräten und der digitalen Welt.
Automatisches Parkflächen-Management über intelligente Kamerasysteme
In diesem Projekt haben wir ein zentrales, webbasiertes Verwaltungssystem für das automatische Parkflächen-Management entwickelt. Durch den Einsatz intelligenter Kamerasysteme konnten wir Daten vor Ort erfassen und in Echtzeit an das Backend übermitteln.
Unsere Prioritäten lagen auf sicherer, datensparsamer und zuverlässiger Kommunikation. Wir implementierten robuste Verschlüsselungstechnologien, um Daten während der Übertragung zu schützen, und reduzierten die gesammelten Daten auf das Wesentliche, um Effizienz und Datenschutz zu gewährleisten.
Unser automatisches Parkflächen-Management über intelligente Kamerasysteme ermöglichte unseren Kunden eine optimierte Nutzung ihrer Parkressourcen. Mit unserer Lösung stellen wir sicher, dass die Kommunikation sicher, datensparsam und zuverlässig ist, um einen reibungslosen Betrieb des Systems zu gewährleisten.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ Embedded Linux
✓ AWS-Cloud-Dienste
✓ Docker-Container
✓ Azure-CI
✓ MQTT-Kommunikation für IoT-Geräte
✓ NodeJS-Server
✓ TypeScript
Automatisiertes Bluetooth-Testssystem
Um die Bluetooth-Funktionalität eines modernen Bluetooth-Audio-Produktes automatisiert testen zu können, wurde ein umfangreiches Testframework für eine spezielle angefertigte Test-Hardware entwickelt.
Hierfür wurden verschiedene Anwendungsfälle für das Produkt simuliert. Unter anderem Audioübertragung von verschiedenen Audioquellen, Datenübertragung und Steuerdaten wie Beispielsweise von Smartphone-Apps wurden nachgebildet.
Die Tests wurden automatisch über Azure-Pipelines auf dedizierter Hardware ausgeführt und die Ergebnisse als Testreport in das Azure-Portal zurückgegeben.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ Embedded C, Embedded C++
✓ Bluetooth Low Energy: GATT Services, CoC Data Channels
✓ Nordic nRF52
✓ Zephyr RTOS
✓ SPI-Kommunikation
✓ FreeRTOS
Synchronisierte RGB-LED-Steuerung für E-Auto-Ladesäulen
Entwicklung und Programmierung einer zentralen LED-Steuerungseinheit für Ladesäulen von Elektrofahrzeugen, die jeweils zwei Ladepunkte bereitstellen. Jeder Ladepunkt wird mit RGB-LEDs ausgestattet, die verschiedene Farbmuster und -sequenzen anzeigen können, wie Blinken, Pulsieren oder statisches Leuchten. Diese visuellen Effekte dienen der Benutzerführung und zur Darstellung des Ladezustands und werden im gesamten Ladesäulennetzwerk synchronisiert, sodass alle LEDs der verteilten Säulen kohärent und zeitgleich ablaufen.
Zur Anpassung an unterschiedliche Umgebungshelligkeiten wird ein I²C-gesteuerter Helligkeitssensor integriert, der die Intensität der LEDs dynamisch reguliert und damit für optimale Sichtbarkeit und Energieeffizienz sorgt.
Eingesetzte Technologien:
- PIC16 Microcontroller
- Modbus-Kommunikation
- I²C Kommunikation
Entwicklung eines Cachesystems für sicherheitsrelevante Smartcard-Operationen
Es wurde eine Softwarebibliothek entwickelt, um sicherheitskritische Smartcard-Operationen im Rahmen einer Finanzanwendungs-Suite effizienter zu gestalten. Dabei war es wichtig, dass verschiedene Daten typgesichert und über benannte, hierarchische Baumstrukturen zugänglich sind. Aufgrund der komplexen Einsatzszenarien, die sowohl virtuelle als auch Remote-Maschinen umfassen, musste das Framework zudem einen leistungsfähigen Interprozesskommunikations-Mechanismus (IPC) unterstützen. Besonderer Fokus lag dabei auf der Kombination aus hoher Geschwindigkeit und maximaler Datensicherheit.
Eingesetzte Technologien:
- C++
- WIN32
Modulares Treiber- und Anwendungs-Framework für Kommunikation mit medizinischen Geräten
Um eine reibungslose Kommunikation während der Produktion und Konfiguration von medizinischen Geräten zu gewährleisten, haben wir ein innovatives modulares Kommunikationsframework entwickelt. Unser Ziel war es, eine einheitliche Schnittstelle zu schaffen, die es ermöglicht, sich mit verschiedenen Modellen und Versionen der Geräte zu verbinden – sei es über Kabel oder drahtlos. Dieses wegweisende Framework kann sowohl als eigenständiges Commandline-Tool (CLI) verwendet werden als auch als leistungsstarke Bibliothek (.NET) in die Produkte unserer Kunden und sogar in Matlab integriert werden. Dadurch eröffnen sich faszinierende Möglichkeiten für intensive Produktanalysen und eine optimale Integration in bestehende Systeme.
Entwicklung eines Hörgeräte-Prototypen
Für die Entwicklung einer neuen Hörgeräte-Plattform wurde auf Basis eines aktuellen Produkts ein Prototyp mittels Entwicklungsboards geschaffen. Die Bluetooth-Funktionalität musste komplett nachgebildet werden und neue Features wie Audio-Streaming-for-Hearing-Aids (ASHA) für Android-Geräte implementiert werden. Hierfür wurden auch Android-Custom-Roms angefertigt, um Funktionalität vor Veröffentlichung implementieren und testen zu können.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ ON Semiconductor RSL10 Bluetooth SoC
✓ CEVA Riviera Waves Bluetooth Stack
✓ Embedded C, Embedded C++
✓ Bluetooth Low Energy: Custom GATT Services, CoC Data Channels (ASHA, Custom Programming Service)
Bibliothek für Graphische Komponenten auf Vernetzten Embedded-Ladesystemen für Elektro-Gabelstapler
Entwicklung einer modularen Bibliothek zur Bereitstellung grafischer Komponenten für vernetzte Embedded-Systeme auf Basis von Windows CE (WinCE). Die grafische Bibliothek wurde auf Grundlage spezifischer Designvorgaben eines UI/UX-Designers in ein C#-Framework implementiert und stellt die grafische Benutzeroberfläche für vernetzte Ladesysteme dar, die speziell für Elektro-Gabelstapler entwickelt wurden. Diese Systeme ermöglichen die Überwachung und Steuerung der Ladeprozesse über eine zentralisierte, netzwerkfähige Oberfläche.
Messe-Attraktion zur Demonstration der Vernetzung
Für die Produkteinführung auf einer Fachmesse wurde eine interaktive Kundenattraktion entwickelt, um die Netzwerkfähigkeit der Ladesysteme anschaulich zu präsentieren. Messebesucher konnten durch Eingabe ihrer Kontaktdaten eine Slot-Machine spielen, die auf drei vernetzten Ladegeräten simultan dargestellt wurde. Diese Anwendung zeigte die Echtzeit-Synchronisation und Kommunikation zwischen den Geräten und hob die Leistungsfähigkeit des Netzwerks hervor. Ziel war es, sowohl die technische Leistungsfähigkeit der vernetzten Geräte als auch die Möglichkeiten der Interaktion zu verdeutlichen.
Funktionsweise der Slot-Machine
- Die Slot-Machine wurde über das entwickelte Netzwerkmodul in Echtzeit synchronisiert und auf den Displays der vernetzten Ladesysteme angezeigt.
- Die Synchronisation der Rollen der Slot-Machine zwischen den drei Ladegeräten erfolgte durch asynchrone Kommunikation, was den Messebesuchern die Robustheit und Präzision der Netzwerkarchitektur veranschaulichte.
Eingesetzte Technologien:
- WinCE
- C#/ .net
- Bilderkennung, QR-Code Scanner
- UDP Kommunikation
- Grafikanimation
Bluetooth Audio Transmitter
Im Rahmen dieses Projekts haben wir eine Geräte-Firmware entwickelt, die es ermöglicht, beliebige Audioquellen mittels einer analogen Klinkenverbindung oder einer digitalen, optischen Verbindung kabellos zu übertragen. Das Besondere an diesem Transmitter ist seine nahtlose Integration in das Ökosystem eines Hörgerätes.
Durch die Verbindung des Bluetooth Audio Transmitters mit einem Hörgerät können Nutzerinnen und Nutzer ihre bevorzugten Audioquellen wie Fernseher, Musikplayer oder andere Geräte drahtlos über ihr Hörgerät wiedergeben. Dadurch entfällt die Notwendigkeit von Kabelverbindungen und ermöglicht eine komfortable und freie Nutzung.
Der Transmitter bietet eine stabile und qualitativ hochwertige Bluetooth-Verbindung, um eine klare und verzögerungsfreie Übertragung des Audiosignals zu gewährleisten. Das Gerät verfügt über eine benutzerfreundliche Bedienung und kann einfach mit dem Hörgerät gekoppelt werden, um eine reibungslose Integration zu ermöglichen.
Das Produkt eröffnet Hörgeräte-Trägerinnen und -Trägern die Möglichkeit, ihre Lieblingsinhalte in hoher Klangqualität und ohne Einschränkungen zu genießen. Durch die drahtlose Audioübertragung wird eine neue Dimension des Hörerlebnisses erreicht, wodurch Menschen mit Hörgeräten noch mehr Freiheit und Flexibilität in ihrer audiovisuellen Welt erhalten.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ Embedded-C
✓ Bluetooth A2DP
✓ Custom Audio Codecs
Virtueller APDU-Übertragungsdienst für Webbasierte Chipkartenanwendungen
Projektziel
Konzeption und Entwicklung einer Kommunikationsinfrastruktur zur Übertragung von ISO-7816 Application Protocol Data Units (APDU) über Netzwerkverbindungen (LAN/WAN). Ziel ist es, einen sicheren und flexiblen Fernzugriff auf Chipkarten zu ermöglichen, indem APDU-Kommandos über eine virtuelle Verbindung ausgetauscht werden. Die Infrastruktur erlaubt so eine effiziente Verwaltung und Nutzung von Chipkarten in verteilten Netzwerken ohne direkte physische Verbindungen.
Technische Umsetzung
Das Protokoll wurde auf WebSocket implementiert, um den direkten Zugriff auf Smartcard-Funktionen über JavaScript im Browser zu ermöglichen. Der Dienst nutzt ein Server-Client-Modell, wobei der Server die Authentifizierung und Autorisierung übernimmt und APDUs zwischen den Clients und entfernten Chipkarten nach vordefinierten Regeln weiterleitet.
Anwendungsfall und Mehrwert
Die Lösung bietet Unternehmen eine einfache und skalierbare Möglichkeit, Chipkarten in verschiedenen Netzwerken sicher einzusetzen, etwa zur sicheren Authentifizierung in Browser-Anwendungen. Die entwickelte Technologie ist patentrechtlich geschützt (siehe EP3130165B1).
Smartcard-basierter JCE-Provider für Android
Das Projekt implementiert einen Java Cryptography Extension (JCE) Provider für Android, der hardwarebasierte kryptografische Funktionen über microSD- und BLE-Smartcards ermöglicht. Da Android keine zentrale Registrierung für JCE-Provider unterstützt, entwickelten wir eine Bibliothek, die Kunden direkt in ihre Apps integrieren können. Diese registriert im App-Kontext den JCE-Provider und kommuniziert über Android-IPC mit einem zentralen Service, der den Smartcard-Zugriff verwaltet.
Die Lösung unterstützt RSA- und ECC-Operationen und ermöglicht sichere Anwendungen wie SMIME-Verschlüsselung in E-Mail-Clients, die der Standard-Android-Mail-Client nicht bietet. Durch Transaktions-Locking kann der Provider parallel in mehreren Apps genutzt werden, was ihn vielseitig und skalierbar macht.
Bluetooth Low Energy Anmeldetoken
Im Rahmen dieses Projekts haben wir die Entwicklung eines stromsparenden Sicherheitstokens im handlichen Schlüsselanhängerformat unterstützt. Unser Fokus lag auf der Entwicklung einer Kommunikationsbibliothek, die eine nahtlose Integration des Tokens mit Android-Geräten über Bluetooth Low Energy ermöglichte. Das Anmeldetoken bietet eine sichere Authentifizierung und optimale Batterielebensdauer, während die Kommunikationsbibliothek eine effiziente Integration und zuverlässige Kommunikation mit Android-Geräten gewährleistet. Das Projekt stellt eine robuste und benutzerfreundliche Lösung für sichere Kommunikation und Authentifizierung bereit, die vielseitig einsetzbar ist.
Bei diesem Projekt kamen u.a. folgende Technologien zum Einsatz:
✓ BLE GATT
✓ Android NDK/SDK
✓ ISO7816 Smartcards