Skip to content

Instantly share code, notes, and snippets.

View peterfoot's full-sized avatar

Peter Foot peterfoot

View GitHub Profile
@peterfoot
peterfoot / BluetoothComPort.cs
Last active January 17, 2022 06:31
enumerate the Bluetooth COM ports on desktop Windows. Determine the mappings between Bluetooth addresses and COM port names.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
namespace BluetoothDiagnostics
{
public sealed class BluetoothComPort
{
@peterfoot
peterfoot / BluetoothTest.cs
Created April 23, 2018 09:34
Sample Bluetooth printing from Unity
var devices = DeviceInformation.FindAll(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
var deviceInfo = devices[0]; // this makes some assumptions about your paired devices so really the results should be enumerated and checked for the correct device
var device = BluetoothDevice.FromDeviceInformation(deviceInfo);
var serResults = device.GetRfcommServices(BluetoothCacheMode.Cached);
foreach(RfcommDeviceService serv in serResults.Services)
{
if(serv.ServiceId == RfcommServiceId.SerialPort)
{
var stream = serv.OpenStream();
byte[] buff = System.Text.Encoding.ASCII.GetBytes("Testing\r\n");
@peterfoot
peterfoot / NotificationMessageGeneric.cs
Created July 14, 2021 11:29
MvvmLight style NotificationMessage<T> for Microsoft.Toolkit.Mvvm
namespace Microsoft.Toolkit.Mvvm.Messaging.Messages
{
public sealed class NotificationMessage<T>
{
public NotificationMessage(T content, string notification)
{
Content = content;
Notification = notification;
}
@peterfoot
peterfoot / NavigationViewHelper.cs
Created March 10, 2022 10:01
Add AccessKeys to standard NavigationView elements
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Input;
namespace InTheHand.UI.Xaml.Controls
{
public static class NavigationViewHelper
{
/// <summary>
/// Add standard access keys to the NavigationView control.
/// </summary>
@peterfoot
peterfoot / ActivityHelper.cs
Created February 10, 2023 13:40
Get current Android Activity for a cross-platform .NET library
public static bool TryGetCurrentActivity(out Activity activity)
{
activity = null;
#if NET6_0_OR_GREATER
// check for Uno without taking a hard dependency
var t = Type.GetType("Uno.UI.ContextHelper, Uno, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null", false, true);
if (t != null)
{