Skip to content

Instantly share code, notes, and snippets.

View MelbourneDeveloper's full-sized avatar
🏠
Working from home

Christian Findlay MelbourneDeveloper

🏠
Working from home
View GitHub Profile
@MelbourneDeveloper
MelbourneDeveloper / Device.Net.yml
Created December 25, 2020 05:43
Device .Net Azure Pipeline YAML
trigger:
- main
pool:
vmImage: "windows-latest"
steps:
- task: NuGetCommand@2
inputs:
command: "restore"
@MelbourneDeveloper
MelbourneDeveloper / Device.Net.nuspec
Created December 25, 2020 06:07
Device.Net Nuspec File
<?xml version="1.0" encoding="utf-8"?>
<package
xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Device.Net</id>
<title>Device.Net</title>
<description>Cross-platform .NET framework for talking to connected devices in a uniform way through dependency injection.
Alpha version. Please use 3.x for a stable release</description>
<summary>Cross-platform .NET framework for talking to connected devices in a uniform way through dependency injection.</summary>
@MelbourneDeveloper
MelbourneDeveloper / Device.Net.csproj
Created December 25, 2020 06:14
Device.Net csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LangVersion>9.0</LangVersion>
<TargetFrameworks>netstandard2.0;net45;</TargetFrameworks>
<NoWarn>NU5125</NoWarn>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DocumentationFile>Device.Net.xml</DocumentationFile>
<Version>4.0.5-alpha</Version>
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>
@MelbourneDeveloper
MelbourneDeveloper / Stuff That Software Developers Do.md
Last active April 15, 2024 12:30
Stuff That Software Developers Do

Stuff That Software Developers Do

This is a list of stuff that the average software developer does from week to week

Coding

  • Code design
  • Refactoring
  • Algorithms
  • Profiling
  • Code reviews
  • Building frameworks
@MelbourneDeveloper
MelbourneDeveloper / Logging.cs
Created January 31, 2021 00:35
Device.Net Logging
//Configure logging
var loggerFactory = LoggerFactory.Create((builder) =>
{
_ = builder.AddDebug().SetMinimumLevel(LogLevel.Trace);
});
//Register the factory for creating Hid devices.
var hidFactory =
new FilterDeviceDefinition(vendorId: 0x534C, productId: 0x0001, label: "Trezor One Firmware 1.6.x", usagePage: 65280)
.CreateWindowsHidDeviceFactory(loggerFactory);
@MelbourneDeveloper
MelbourneDeveloper / ClearStatus.cs
Created January 31, 2021 00:44
Control Transfer Clear Status
public static Task ClearStatusAsync(this IUsbDevice usbDevice)
=> usbDevice.PerformControlTransferAsync(new SetupPacket
(
requestType: new UsbDeviceRequestType(
RequestDirection.In,
RequestType.Class,
RequestRecipient.Interface),
request: DFU_CLEARSTATUS,
length: 0
));
var cancellationTokenSource = new CancellationTokenSource();
//Fire a timeout after 1000 milliseconds
cancellationTokenSource.CancelAfter(1000);
var result = await device.WriteAndReadAsync(writeData, cancellationTokenSource.Token);
@MelbourneDeveloper
MelbourneDeveloper / retry.cs
Created January 31, 2021 01:02
Perform Control Transfer With Retry
public static Task<T> PerformControlTransferWithRetry<T>(
this IUsbDevice usbDevice,
Func<IUsbDevice, Task<T>> func,
int retryCount = 3,
int sleepDurationMilliseconds = 250)
{
var retryPolicy = Policy
.Handle<ApiException>()
.Or<ControlTransferException>()
.WaitAndRetryAsync(
@MelbourneDeveloper
MelbourneDeveloper / temperature.cs
Created January 31, 2021 01:07
Display Temperatur
private static async Task DisplayTemperature()
{
//Connect to the device by product id and vendor id
var temperDevice = await new FilterDeviceDefinition(vendorId: 0x413d, productId: 0x2107, usagePage: 65280)
.CreateWindowsHidDeviceFactory(_loggerFactory)
.ConnectFirstAsync()
.ConfigureAwait(false);
//Create the observable
var observable = Observable
@MelbourneDeveloper
MelbourneDeveloper / PersonController.cs
Last active February 7, 2021 05:57
Smallest Controller Saple
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1.Controllers
{
[ApiController]
[Route("[controller]")]
public class PersonController : ControllerBase
{
[HttpGet]
public string Get(string firstName, string lastName) => $"{firstName} {lastName}";