# NordicID.NurApi.SerialTransport.UWP

> Generated: 2026-05-06 07:29 UTC  
> Package version: `4.0.0`

## Guide

## Overview

`NordicID.NurApi.SerialTransport.UWP` is a support library that provides serial
transport support specifically for Universal Windows Platform (UWP) applications.
It extends `NordicID.NurApi.Net` with serial port device discovery and connection
capabilities within the UWP sandbox.

Install it from NuGet:

```
dotnet add package NordicID.NurApi.SerialTransport.UWP
```

### Supported platforms

- UWP (Universal Windows Platform)

### How it works

The library enumerates serial ports in a UWP environment and produces connection
URIs in the format `ser://COM3` for use with `NurApi.Connect(Uri)`.

The default baud rate is 115200. A custom baud rate can be specified as a query
parameter: `ser://COM3?baudrate=1000000`.

### Sample projects

- [`nur_sample_windows`](https://github.com/NordicID/nur_sample_windows) — UWP and other Windows samples
- [`rfiddemo_xamarin`](https://github.com/NordicID/rfiddemo_xamarin) — Xamarin RFID demo (includes UWP)

### Prerequisites

- `NordicID.NurApi.Net` must be installed.
- The UWP application manifest must declare the `serialcommunication` device
  capability.

## Initialization and Usage

### Initialization

Initialize the serial transport once during application startup:

```csharp
NurApiDotNet.SerialTransport.UWP.Support.Init();
```

### Device Discovery

After initialization, use `NurDeviceDiscovery` to find serial devices.

#### 1. Create a discovery callback

```csharp
var callback = new NurDeviceDiscoveryCallback((sender, args) =>
{
    Debug.WriteLine($"Found device: {args.Uri}");
});
```

#### 2. Start discovery

```csharp
NurDeviceDiscovery.Start(callback);
```

To discover only serial devices, pass a scheme filter:

```csharp
NurDeviceDiscovery.Start(callback, new string[] { "ser" });
```

#### 3. Connect using the discovered URI

```csharp
var api = new NurApi();

var callback = new NurDeviceDiscoveryCallback((sender, args) =>
{
    api.Connect(args.Uri);
});

NurDeviceDiscovery.Start(callback);
```
