ThinkMeta Software veröffentlicht einen Teil der eigenen Arbeit als quelloffene Bibliotheken und Werkzeuge für .NET und C++.

ThinkMeta.Devices.Bluetooth

Eine .NET-Bibliothek zum Auffinden, Verbinden und Steuern von Bluetooth-Low-Energy-Fitnessgeräten und Herzfrequenz-Sensoren. Sie implementiert den Fitness Machine Service (FTMS) der Bluetooth SIG – das offene GATT-Profil, über das Laufbänder, Indoor-Bikes, Ruder-, Crosstrainer- und Steppergeräte Live-Daten (Geschwindigkeit, Steigung, Trittfrequenz, Leistung, Distanz …) melden und Steuerbefehle (Geschwindigkeit, Steigung oder Widerstand setzen; Start und Stopp) entgegennehmen. Herzfrequenzgeräte werden über das Standard-Heart-Rate-GATT-Profil unterstützt.

Die Bibliothek ist in plattformneutrale Pakete aufgeteilt – gemeinsame Scanner, Datenmodelle und Byte-Parser – mit konkreten Implementierungen für Windows (natives WinRT-BLE) und .NET MAUI. Die Parser können rohe GATT-Characteristic-Bytes auch ohne Geräteverbindung dekodieren. Eine native Android-Implementierung ist in Arbeit. Benötigt .NET 10.

ThinkMeta.Music.Notation.Smufl

Reader und Code-Generator für SMuFL (Standard Music Font Layout) – die Spezifikation der W3C Music Notation Community Group, die die mehreren tausend Symbole der westlichen Notenschrift auf Unicode-Codepunkte im Private Use Area abbildet, sodass eine einzige Schrift wie Bravura Schlüssel, Notenköpfe, Vorzeichen, Artikulationen und mehr abdeckt.

Das Metadaten-Paket liest SMuFLs classes.json, glyphnames.json und ranges.json sowie schriftspezifische Metadaten (Glyph-Begrenzungsrahmen, Ankerpunkte, Stich-Vorgaben). Ein Begleitpaket stellt dieselben Daten als generierte .NET-Typen bereit – Glyph-Enums, Beschreibungen, Codepunkte und Alternativen – und ein separater Reader lädt SMuFL-SVG-Schriften. Grundlage für Notensatz-Renderer, Font-Werkzeuge und Notationseditoren auf .NET-Basis.

ThinkMeta.CodeAnalysis

Ein Roslyn-Analyzer-Paket für C#, das eine kleine, aussagekräftige Menge von Problemen meldet und in der IDE oder beim Build automatisch behebt (Ziel .NET Standard 2.0, projektübergreifend einsetzbar):

  • TM0001== null / != null wird zu is null / is not null umgeschrieben; berücksichtigt Expression Trees, LINQ-Query-Syntax und Razor-generierten Code.
  • TM0002 – eine Clone()-Methode, die eine setzbare Eigenschaft vergisst; der Code-Fix ergänzt alle fehlenden Zuweisungen in einem Schritt.
  • TM0003 – eine Clone()-Methode, die eine Referenztyp-Eigenschaft flach kopiert, und deckt so den stillen Aliasing-Fehler auf.

Ein Begleitpaket Annotations bietet [CloneIgnore], um einzelne Eigenschaften pro Methode oder pro Assembly auszunehmen.

… und viele mehr auf github.com/ThinkMeta-com.

An unhandled error has occurred. Reload