• Noser.com
facebook
linkedin
twitter
youtube
  • NOSERmobile
    • Android
    • HTML 5
    • Hybrid Apps
    • iOS
    • Windows Phone
  • NOSERembedded
    • Medizintechnik
  • NOSERprojektmanagement
  • NOSERtesting
  • NOSERlifecycle
    • .NET Allgemein
    • Application Lifecylce Management
    • Apps
    • Architektur
    • ASP.NET
    • Azure
    • Cleancode
    • Cloud
    • Silverlight
    • Visual Studio / Team Foundation Server
    • Windows 8
    • Windows Presentation Foundation
  • NOSERinnovation
    • Big Data
    • Cloud
    • IoT
    • Operations Research
    • Augmented Reality
    • RFID, NFC, Bluetooth LE

Step into the world of Bots with Telegram

25. Januar 2021
it support
0
AI, Bot, Botfather, chat, Chatbot, Cognitive Services, Telegram
Step into the world of Bots with Telegram

In this blog post, I will show you how to step into the world of bots with telegram. For this I would like to share a quick start guide on how to implement a telegram bot using ASP.NET Core and offer you a template to get started fast.

There is no limit set for what a bot can be used in today’s world. We see them in every branch of the economy. We most commonly see them on webpages as assistants that can help with customer support for example. Bots can also be used as moderator for chat rooms. We can put it this way: bots are some sort of third-party application that run inside of the chat application, in this case Telegram. Users interact with the bot by sending messages. READ MORE

Bluetooth Low Energy in Xamarin App – Ein Projektbericht

18. August 2020
it support
0
BLE, Bluetooth, Bluetooth Low Energy, Xamarin
Titelbild Bluetooth Low Energy und Xamarin

Titelbild Bluetooth Low Energy und Xamarin

In diesem Jahr konnten wir die Firma KELLER AG für Druckmesstechnik bei ihrem Projekt beraten und unterstützen. Die Firma entwickelt Drucksensoren für verschiedenste Anwendungsbereiche. Die über die Sensoren gemessenen Daten werden entweder aufgezeichnet und später abgerufen oder sollen direkt versendet werden.  

Die Daten sollen an eine Mobile App, entweder für Android oder iOS, gesendet werden. Um beide Plattformen gleichzeitig und mit minimalem Aufwand abzudecken, wurde Xamarin als Cross Plattform Technologie gewählt. Das UI wurde mit Xamarin Forms umgesetzt.  

In einigen Anwendungsfällen ist keine kontinuierliche Stromversorgung für die Sensoren möglich, weshalb die Sensoren über Batterie betrieben werden. Für eine möglichst lange Laufzeit wird in einem solchen Fall auf Bluetooth Low Energy (BLE) gesetzt. 

Bluetooth Low Energy (BLE) 

BLE darf nicht mit dem klassischen Bluetooth verwechselt werden. So wird das klassische Bluetooth verwendet, um z.B. Audio oder Video zu streamen oder Dokumente an einen Drucker zu senden. Beim klassischen Bluetooth wird immer ein Device-Pairing benötigt. 

Bei BLE werden jeweils nur sehr kleine Daten-Pakete verschickt. Dies benötigt viel weniger Energie. So können zum Beispiel bei einem Bild in einem Museum über BLE eine URL zu weiteren Informationen des Kunstwerks hinterlegt sein. Das Mobiltelefon kann die Daten empfangen, ohne sich vorgängig mit dem anderen Gerät zu pairen (Broadcast).  

Das Contact Tracing in der SwissCovid-App nutzt ebenfalls BLE. Dabei werden zufällige Codes zwischen den App-Nutzern, die sich in der Nähe befinden, via BLE ausgetauscht. Bei einer Infizierung eines Nutzers werden die zufälligen Codes markiert. So können alle Teilnehmer, welche einen dieser Codes empfangen haben, informiert werden. Dies ermöglicht ein anonymisiertes Contact Tracing.  

Peripheral, Services und Characteristic 

Für eine standardisierte Kommunikation wurde von der Bluetooth Special Interest Group die GATT-Spezifikation entwickelt. Gemäss dieser Spezifikation wird das Gerät, welches  über BLE Daten versendet als Peripheral bezeichnet. Dieses Peripheral bietet einen oder mehrere Services an, z.B. einen Dienst mit Device-Informationen. Innerhalb eines Services gibt es wiederum eine oder mehrere Characteristics. Eine Characteristic ist, wie der Name bereits sagt, ein Ausprägungsmerkmal.  

Auf der Characteristic wiederum ist definiert, welche Operationen verfügbar sind:  

  • Read 
  • Write 
  • Write Without Response 
  • Notify 
  • Indicate 
  • und weitere 

Diese Operationen sind jeweils aus Sicht des Peripherals zu sehen. So bedeutet Read etwa, dass jemand den Wert lesen kann. Einige der Operationen werden dabei vom Gegenüber bestätigt (Acknowledge). Notify und Indicate werden genutzt, um immer wieder Datenpakete zu schicken, z.B. eine Veränderung des aktuellen Druckmesswertes. Indicate muss dabei vom Gegenüber bestätigt werden. Wenn auf eine Charakteristik hingegen die Operation “Notify” angewendet wird, gibt es keine Prüfung, ob alle Daten korrekt übermittelt wurden. 

Es gibt eine Sammlung von vordefinierten GATT-Services. Diese kann man aber auch selbst definieren. 

Xamarin und Bluetooth Low Energy 

Es gibt mehrere Software-Bibliotheken, welche benutzt werden können, um aus einer Xamarin App BLE zu nutzen. Während des Projekts mussten wir uns für eine der Bibliothek entscheiden. Wir favorisierten eine, welche Reactive Extensions nutzt. So können sich Observer einfach auf neue Messwerte der Drucksensoren subscriben, anstatt dass ein fehleranfälliges Event-Handling implementiert werden musste. Schlussendlich haben wir uns für die Shiny Lib von Allan Ritchie entschieden. Die Bluetooth Komponente der Shiny Lib ist aktuell erst als Beta-Version verfügbar. Nach einigen Tests haben wir uns trotzdem dafür entschieden, diese zu verwenden. Die Bibliothek ist eine Neuentwicklung einer älteren desselben Entwicklers, weshalb wir davon ausgegangen sind, dass bereits viele Kinderkrankheiten ausgemerzt sein dürften. Die Open Source Lizenz MIT erlaubt es uns zudem, allfällige Fehler auch selbst zu korrigieren. 

‹ Previous1234567Next ›Last »

Tag Cloud

.NET android Angular AngularJs Arduino ASP.Net automated testing Azure Big Data C# C++ Cloud continuous integration Elm Embedded Führung gRPC Internet of Things IoT Java Javascript M2M OWASP Projektmanagement protobuf Python Raspberry Pi Reactive Programming REST Scrum Security Softwarequalität SPA Testen testing Testmanagement Teststrategie UX Visual Studio WebAPI windows WPF Xamarin Xamarin.Android Xamarin.Forms

Archive

Current Posts

  • Akzente setzen mit der Android Splash Screen API unter .NET MAUI
  • Do You have Your Personal Space?
  • Automated provisioning with ARM Templates
  • Asynchrone Beobachtungen und Versprechungen in Angular
  • Simplify Your Automated Tests With Fluent Syntax

Last Comments

  • Hans Reinsch bei Der Safety-Plan: Die wichtigsten Antworten mit Checkliste
  • George H. Barbehenn bei Modeling Optocouplers with Spice
  • Noser Blog Touch-Actions in Xamarin.Forms - Noser Blog bei Mach mehr aus Animationen in Xamarin.Forms mit SkiaSharp
  • Noser Blog Focus on the Secure Storage service of Trusted Firmware (TFM) - Noser Blog bei First run of the Trusted Firmware (TFM) application
  • Noser Blog First run of the Trusted Firmware (TFM) application - Noser Blog bei Focus on the Secure Storage service of Trusted Firmware (TFM)

Popular Posts

Xamarin.Android Code Obfuscation

6 Comments

ManuScripts: Wenn jemand eine Reise tut... Funktionale Programmierung mit Elm - Teil 1 - Aufbruch

5 Comments

ManuScripts: Wenn jemand eine Reise tut... Funktionale Programmierung mit Elm - Teil 2 - Kein Picknick

4 Comments

Contact us

  1. Name *
    * Please enter your name
  2. Email *
    * Please enter a valid email address
  3. Message *
    * Please enter message
© 2013 NOSER ENGINEERING AG. All rights reserved. Datenschutz | Cookie-Richtlinie