Skip to content

.Net Core library is designed to work with the Thread network. To develop 6LoWPAN applications, you will need a radio module running as an OpenThread Network Co-Processor (NCP).

Notifications You must be signed in to change notification settings

vgolovanov/OpenThreadDotNet

Repository files navigation

OpenThreadDotNet

OpenThreadDotNet is a .Net library designed to work with the Thread network. To develop 6LoWPAN applications, you will need a radio module running as an OpenThread Network Co-Processor (NCP). More information is available on the webpage https://openthread.io/platforms/co-processor

​Currently library works on Net Core platform and reduced versions of the .NET CLR, nanoFramework (https://nanoframework.net/) and TinyCLR (https://www.ghielectronics.com/tinyclr/features/) platforms.

The end device can be used on any module from supported platforms https://openthread.io/platforms with NCP firmware. The library tested on TI CC2652 based board http://www.ti.com/tool/LAUNCHXL-CC26X2R1 and nrf52840 based modules http://www.skylabmodule.com/skylab-125k-ram-industry-grade-low-energy-multiprotocol-5-0-ant-bluetooth-module/

OpenThreadDotNet project is .Net implementation of Spinel protocol and high level API to manage Thread network.

LowpanCmd project is a console application to manage Thread networks. Similar to pyspinel application.

SamplesNetCore, SamplesNanoFramework and SamplesTinyCLR are basic examples on how to use the OpenThreadDotNet library.

With OpenThreadDotNet library is possible to scan for nearby wireless networks, join to the wireless networks and form a new wireless mesh network.

Form a new Thread wireless network and UDP server we need just 6 lines of 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);                
      }
    }		

About

.Net Core library is designed to work with the Thread network. To develop 6LoWPAN applications, you will need a radio module running as an OpenThread Network Co-Processor (NCP).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published