Docs: reflect net48; convert tools projects to net48
Documentation now describes the .NET Framework 4.8 stack (was .NET 8): - README build prerequisites + framework-dependent/no-runtime-install note, test count 136 -> 241. - PLAN.md architecture diagram, stack decision (with PolySharp/shims note), suite total 136 -> 241. - deploy/README-DEPLOY.txt: app is net48 framework-dependent (4.8 is in-box on Win10/11), and build prerequisites. Also migrate the three tools (RioJoySmokeTest, RioSerialMonitor, XcfRegionExtract) to net48 so they keep building against the now-net48 RioJoy.Core (a net8 project cannot reference a net48 one). Added PolySharp + System.Memory/System.Text.Json shims and replaced net-core-only APIs (string.Contains/IndexOf with comparison, Array.Fill, generic Enum.IsDefined, int.TryParse(span)). All three build clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+7
-3
@@ -25,7 +25,7 @@ cockpit's outputs on their behalf.
|
||||
## Target architecture
|
||||
|
||||
```
|
||||
┌─────────────────────── C# / .NET 8 tray app (x64) ───────────────────────┐
|
||||
┌────────────────── C# / .NET Framework 4.8 tray app (x64) ─────────────────┐
|
||||
│ Serial (RIO protocol) → Input mapper (profile) → Output router │
|
||||
│ COM port, 9600 8N1 72 inputs + keypads ├─ Keyboard/Mouse: SendInput (P/Invoke)
|
||||
│ packet parse + ACK/NAK decode iRIO bitfield ├─ Joystick: HID report → DeviceIoControl ↓
|
||||
@@ -46,7 +46,11 @@ cockpit's outputs on their behalf.
|
||||
- **Virtual joystick:** custom **VHF/UMDF HID driver** (full fidelity: 6 axes,
|
||||
96 buttons, 1 hat — exactly the legacy vJoy layout). Not ViGEm (can't hold 96
|
||||
buttons).
|
||||
- **Stack:** C# / **.NET 8** (LTS), x64. Driver is C (WDK), separate toolchain.
|
||||
- **Stack:** C# / **.NET Framework 4.8**, x64 — in-box on Windows 10/11, so
|
||||
deployed builds are framework-dependent with no runtime to install. (Modern C#
|
||||
language features that net48 lacks are supplied by the PolySharp source
|
||||
generator + a few NuGet shims; see `src/RioJoy.Core/Compat/`.) Driver is C
|
||||
(WDK), separate toolchain.
|
||||
- **Form:** background **tray app** (NotifyIcon), auto-start with Windows.
|
||||
- **Targets:** Windows 10/11 **x64 only**. The legacy x86 / WinXP targets are
|
||||
dropped.
|
||||
@@ -183,7 +187,7 @@ Implemented in `src/RioJoy.Core/Calibration` + `Plasma` (105 xUnit tests total):
|
||||
|
||||
### Phase 5 — Tray app + profiles — code-complete ✅
|
||||
Core logic in `src/RioJoy.Core/Profiles` + `RioRuntime`; UI/OS in `src/RioJoy.Tray`
|
||||
(136 xUnit tests total across the suite):
|
||||
(241 xUnit tests total across the suite):
|
||||
- `RioProfile` + `AppConfig` model; `ConfigStore` JSON persistence (round-trip
|
||||
tested); `RioIniImporter` ports the legacy `RIO.ini` (buttons/inverts/greeting).
|
||||
- `AutoSwitchResolver` + `AutoSwitchWatcher`: the three-state decision
|
||||
|
||||
Reference in New Issue
Block a user