nocscienceat.WinWingThrottle
1.1.0
dotnet add package nocscienceat.WinWingThrottle --version 1.1.0
NuGet\Install-Package nocscienceat.WinWingThrottle -Version 1.1.0
<PackageReference Include="nocscienceat.WinWingThrottle" Version="1.1.0" />
<PackageVersion Include="nocscienceat.WinWingThrottle" Version="1.1.0" />
<PackageReference Include="nocscienceat.WinWingThrottle" />
paket add nocscienceat.WinWingThrottle --version 1.1.0
#r "nuget: nocscienceat.WinWingThrottle, 1.1.0"
#:package nocscienceat.WinWingThrottle@1.1.0
#addin nuget:?package=nocscienceat.WinWingThrottle&version=1.1.0
#tool nuget:?package=nocscienceat.WinWingThrottle&version=1.1.0
nocscienceat.WinWingThrottle
WinWing Throttle Quadrant (Ursa Minor 32 PacMetal) driver for X-Plane, built on the nocscienceat.XPlanePanel / nocscienceat.XPlaneWebConnector framework.
Drives the WinWing Throttle hardware via USB HID — reads 42 button/switch positions (engine masters, engine mode selector, auto-thrust disconnect, flaps lever, parking brake, rudder trim, spoiler arm), drives engine fire/fault LEDs and backlight brightness, and renders a rudder trim 7-segment LCD. All controls bridge to X-Plane via the ToLiss AirbusFBW plugin.
Installation
dotnet add package nocscienceat.WinWingThrottle
Features
- Engine master switches — ENG1/2 ON/OFF with direct dataref set
- Engine mode selector — CRANK / NORM / START (3-position rotary)
- Auto-thrust disconnect — left and right instinctive disconnect buttons
- Flaps lever — 5 positions (0, 1, 2, 3, FULL) via
AirbusFBW/FlapLeverRatio - Spoiler arm — command toggle
- Parking brake — ON/OFF switch
- Rudder trim — left/right hold buttons (begin/end command) + reset
- Rudder trim LCD 7-segment display showing trim value 1:1 (e.g. "L 2.3", "R 1.0"); at 0.0 the L/R side keeps the last trimmed direction
- Engine fire LEDs — driven by
AirbusFBW/OHPLightsATA70_Rawarray - Panel brightness — all backlights driven by
AirbusFBW/PanelBrightnessLevel - USB disconnect/reconnect — automatic recovery with LED state restore
- Teleport detection — re-syncs after aircraft reload
Usage
This library provides a panel handler for the WinWing Throttle Quadrant, integrating with X-Plane through the nocscienceat.XPlanePanel framework.
Basic Setup
Create a hosted service application with the following Program.cs:
using nocscienceat.WinWingThrottle.Panels;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using nocscienceat.XPlanePanel;
var builder = Host.CreateApplicationBuilder(args);
// Configuration
builder.Configuration
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile("datarefs.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("XP_");
// Core services
builder.Services.AddXPlaneWebConnector(builder.Configuration);
builder.Services.AddXPlanePanel();
// Panel handlers (register all, filter by config at runtime)
builder.Services.AddSingleton<IPanelHandler, ThrottlePanelHandler>();
// Logging
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
var host = builder.Build();
await host.RunAsync();
Configuration
Create an appsettings.json file with your X-Plane Web Connector settings
and panel configuration:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"System.Net.Http.HttpClient": "Warning"
}
},
"XPlane": {
"IpAddress": "127.0.0.1",
"WebPort": 8086,
"ReadinessProbeDataRef": "AirbusFBW/BatVolts",
"ReadinessProbeMaxRetries": 0,
"Transport": "Http",
"FireForgetOnHttpTransport": true,
"ApiVersion": "v2"
},
"Panels": {
"THROTTLE": {
"Enabled": true
}
}
}
| Setting | Type | Default | Description |
|---|---|---|---|
Enabled |
bool | false | Enable/disable the Throttle panel |
VendorId |
int | 0x4098 | USB Vendor ID |
ProductId |
int | 0 | USB Product ID. 0 = auto-detect, 47392 (0xB920) = force |
DataRefs Configuration (Optional)
Optionally create a datarefs.json file to override the default
ToLiSS Airbus dataref and command mappings (the panel includes all
required definitions):
{
"XplaneDataRefsCommands": {
"THROTTLE": {
"DataRefs": {
},
"Commands": {
}
}
}
}
Protocol Documentation
See docs/Throttle-Design-Document.md for the full protocol specification.
License
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.
Attribution
This project is a C# port derived from XSchenFly by memo5@gmx.at, originally released under the GPL-3.0 license. The HID protocol implementation, button/LED mappings, and LCD encoding are based on that work.
C# port and modifications by Klemens Urban (klemens.urban@outlook.com, https://github.com/klemensurban).
Dependencies
This project depends on the nocscienceat.XPlanePanel framework and the nocscienceat.XPlaneWebConnector, which are licensed separately under the MIT License by Klemens Urban.
Repository
https://github.com/klemensurban/nocscienceat.WinWingThrottle
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HidSharp (>= 2.6.4)
- nocscienceat.XPlanePanel (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.