OpenHreadDotNet est une bibliothèque .NET conçue pour fonctionner avec le réseau de threads. Pour développer des applications 6LowPan, vous aurez besoin d'un module radio exécutant en tant que coprocesseur de réseau OpenHREAD (NCP). Plus d'informations sont disponibles sur la page Web https://openthread.io/platforms/co-processor
La bibliothèque travaille actuellement sur la plate-forme Net Core et les versions réduites du .NET CLR, Nanoframework (https://nanoframework.net/) et tinyclr (https://www.gielectronics.com/tinyclr/features/).
Le périphérique final peut être utilisé sur n'importe quel module à partir de plates-formes prises en charge https://openthread.io/platforms avec le firmware NCP. La bibliothèque a été testée sur la carte basée sur TI CC2652 http://www.ti.com/tool/launchxl-cc26x2r1 et nrf52840 modules http://www.skylabmodule.com/skylab-125k-ram-industry-grade-low-energy-multiprotocol-5-0-ant-bluetooth-module/
Le projet OpenHreadDotNet est l'implémentation .NET du protocole Spinel et de l'API de haut niveau pour gérer le réseau de threads.
Le projet LowPancMD est une application de console pour gérer les réseaux de threads. Similaire à l'application Pyspinel.
Les échantillons , les échantillons de larame et samplestinyclr sont des exemples de base sur la façon d'utiliser la bibliothèque OpenHreadDotNet .
Avec la bibliothèque OpenHreadDotnet, il est possible de rechercher des réseaux sans fil à proximité, de rejoindre les réseaux sans fil et de former un nouveau réseau de maillage sans fil.
Formez un nouveau réseau sans fil et serveur UDP, nous n'avons besoin que de 6 lignes de code.
StreamUART uartStream = new StreamUART ( "COMxx" ) ;
ncpInterface = new NcpInterface ( ) ;
ncpInterface . Open ( uartStream ) ;
ncpInterface . Form ( "Networkname" , 11 , "00112233445566778899AABBCCDDEEFF" , 1234 ) ;
UdpSocket receiver = new UdpSocket ( ) ;
receiver . Bind ( IPv6Address . IPv6Any , 1000 ) ;
IPv6EndPoint remoteIp = null ;
while ( true )
{
if ( receiver . Poll ( - 1 , SelectMode . SelectRead ) )
{
byte [ ] data = receiver . Receive ( ref remoteIp ) ;
string message = Encoding . ASCII . GetString ( data ) ;
Console . WriteLine ( " n " ) ;
Console . WriteLine ( "{0} bytes from {1} {2} {3}" , message . Length , remoteIp . Address , remoteIp . Port , message ) ;
}
}