vRIO: virtual RIO cockpit device emulator
Speaks the device side of the RIO serial protocol (per riojoy's PROTOCOL.md) on a COM port, behind an interactive replica of the profile editor's cockpit panel: click cells to press buttons/keys, drag the encoder gauges to move the five analog axes, and watch host-commanded lamp states (incl. flash modes) light the cells. Device behavior grounded in the real v4.2 firmware dump: version 4.2, 4-retry NAK budget ending in RESTART, and an optional emulation of the analog reply-wedge latch leak for exercising host recovery watchdogs. Verified: 33 unit tests, plus an interop harness driving RIOJoy's actual RioSerialLink against VRioDevice over an in-memory transport (version/check/analog/lamp/button/keypad/reset all round-trip). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D0ECC9D9-7379-4759-89F7-56CD3214BD57}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VRio.Core", "src\VRio.Core\VRio.Core.csproj", "{80312F43-09BF-4F09-A0FA-A60FDF86274D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VRio.App", "src\VRio.App\VRio.App.csproj", "{2D1A482C-D907-47EB-9830-B78132154E57}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C4993638-7EB6-47A9-897C-976DB9939601}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VRio.Core.Tests", "tests\VRio.Core.Tests\VRio.Core.Tests.csproj", "{986638BB-F289-4480-8575-F1699D201590}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{80312F43-09BF-4F09-A0FA-A60FDF86274D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{80312F43-09BF-4F09-A0FA-A60FDF86274D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{80312F43-09BF-4F09-A0FA-A60FDF86274D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{80312F43-09BF-4F09-A0FA-A60FDF86274D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2D1A482C-D907-47EB-9830-B78132154E57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2D1A482C-D907-47EB-9830-B78132154E57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2D1A482C-D907-47EB-9830-B78132154E57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2D1A482C-D907-47EB-9830-B78132154E57}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{986638BB-F289-4480-8575-F1699D201590}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{986638BB-F289-4480-8575-F1699D201590}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{986638BB-F289-4480-8575-F1699D201590}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{986638BB-F289-4480-8575-F1699D201590}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{80312F43-09BF-4F09-A0FA-A60FDF86274D} = {D0ECC9D9-7379-4759-89F7-56CD3214BD57}
|
||||
{2D1A482C-D907-47EB-9830-B78132154E57} = {D0ECC9D9-7379-4759-89F7-56CD3214BD57}
|
||||
{986638BB-F289-4480-8575-F1699D201590} = {C4993638-7EB6-47A9-897C-976DB9939601}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user