OpenthreadDotnet es una biblioteca .NET diseñada para funcionar con la red de subprocesos. Para desarrollar aplicaciones 6LOWPAN, necesitará un módulo de radio que se ejecute como coprocesador de la red OpentHead (NCP). Hay más información disponible en la página web https://openthread.io/platforms/co-processor
Actualmente, la biblioteca funciona en la plataforma de núcleo neto y las versiones reducidas de .NET CLR, nanoframework (https://nanoframework.net/) y las plataformas TinyClr (https://www.ghielectronics.com/tinyclr/features/).
El dispositivo final se puede usar en cualquier módulo desde plataformas compatibles https://openthread.io/platforms con firmware NCP. La biblioteca probada en TI CC2652 Bass Board http://www.ti.com/tool/launchxl-cc26x2r1 y módulos basados en NRF52840 http://www.skylabmodule.com/skylab-125k-ram-industry-grade-low-energy-multiprotocol-5-0-ant-bluetooth-module/
El proyecto OpenthreadDotnet es la implementación .NET del protocolo de espinela y la API de alto nivel para administrar la red de subprocesos.
El proyecto LowPANCMD es una aplicación de consola para administrar redes de subprocesos. Similar a la aplicación Pyspinel.
SamplesNetCore , SamplesNanoFramework y SamplestinClr son ejemplos básicos sobre cómo usar la biblioteca OpentHreadDotnet .
Con OpenthreadDotnet Biblioteca es posible escanear en las redes inalámbricas cercanas, unirse a las redes inalámbricas y formar una nueva red de malla inalámbrica.
Forma una nueva red inalámbrica de hilo y un servidor UDP, necesitamos solo 6 líneas de código.
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 ) ;
}
}