AbstractIO ist eine auf dem .net nanoFramework basierende, privat als Hobby-Projekt erstellte Bibliothek für Mikrocontroller. Die Idee dahinter:
- Ähnlich wie das ehemalige Microsoft Robotics Studio betrachten wir Ein- und Ausgaben einfach nur als Operationen, die bestimmte Datentypen schreiben oder lesen.
- Damit erstellte Software wird erst beim Start eines Programms mit der tatsächlich vorliegenden Hardware "verheiratet", in dem konkrete Objektimplementationen für Taster, Lampen, Motoren usw. ans Programm übergeben werden.
- Eine reiche Bibliothek an abstrakten und damit geräteunabhängigen Operationen kann einfache Operationen (wie z.B. das Blinken einer Lampe anstatt nur das Einschalten) aber auch komplexere Dinge (wie z.B. das sanfte Anlaufen und Bremsen von Motoren) mit minimalem Codeaufwand bieten.
- Zudem kann die Hardware verändert werden, ohne den Kern des Programms zu ändern: Ist da plötzlich eine analoge Lichtschranke anstatt ein binärer Kontakt? Kein Problem!
- Schließlich können für die abstrakten I/O-Elemente simulierende Objekte ins Programm gereicht werden, um Unit Tests ganz ohne konkrete Hardware durchzuführen.