Pipe endpoints join the connection pickers; no more COM11/COM12 auto-bind
Each device row now serves one endpoint at a time, picked from a list of pipe:vrio / pipe:vplasma (first, default) plus the machine's COM ports — nothing opens automatically at startup. The pipe services gained an IsListening property and are started/stopped by the row's Open/Close button instead of running for the whole app lifetime, which also retires the dual-transport warning. Status line shows the active endpoint; OFFLINE when none. Standalone vPLASMA is unchanged (hardwired COM12 + permanent pipe). Also fixes the xUnit1031 warnings in the plasma pipe tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -106,10 +106,11 @@ a null-modem cable work the same way.
|
||||
## Named pipes for DOSBox-X (no com0com)
|
||||
|
||||
When the game runs in the patched DOSBox-X (the fork's `namedpipe` serial
|
||||
backend), the virtual ports aren't needed at all: both devices also serve a
|
||||
named pipe for the whole app lifetime — `\\.\pipe\vrio` and
|
||||
`\\.\pipe\vplasma` — and DOSBox-X connects as the client, retrying in the
|
||||
background until the pipe exists:
|
||||
backend), the virtual ports aren't needed at all: each device's connection
|
||||
picker lists its named-pipe endpoint — `pipe:vrio`, `pipe:vplasma` —
|
||||
alongside the machine's COM ports. Select it and **Open** to serve
|
||||
`\\.\pipe\vrio` / `\\.\pipe\vplasma`; DOSBox-X connects as the client,
|
||||
retrying in the background until the pipe exists:
|
||||
|
||||
```ini
|
||||
[serial]
|
||||
@@ -124,11 +125,11 @@ reads as all-lines-low (cable unplugged). The contract lives in
|
||||
`src/VRio.Core/Device/PipeFraming.cs` on this side and `serialnamedpipe.h`
|
||||
on the fork's. TX is paced exactly like the COM path — with the 9600-baud
|
||||
wire gone, the pacer is the only thing between the host and an impossible
|
||||
burst. The COM rows keep working unchanged (RIOJoy, real pods); if a pipe
|
||||
client connects while a COM host is active the wire log warns, since the
|
||||
RIO is a single-host device. vRIO's built-in glass and the standalone
|
||||
vPLASMA share the `vplasma` pipe name — whoever starts second retries until
|
||||
the name frees up.
|
||||
burst. Each row serves one endpoint at a time — the RIO is a single-host
|
||||
device — and nothing opens automatically at startup; the COM path is
|
||||
unchanged for RIOJoy and real pods. vRIO's built-in glass and the
|
||||
standalone vPLASMA share the `vplasma` pipe name — whoever starts second
|
||||
retries until the name frees up.
|
||||
|
||||
## vPLASMA — the companion plasma display
|
||||
|
||||
@@ -136,8 +137,8 @@ The cockpit's second serial device is the **plasma display**: a 128×32
|
||||
dot-matrix panel on COM2 (9600 8N1, no flow control) that the game draws
|
||||
mission text and status graphics on. The software replica comes in two
|
||||
forms. **Built into vRIO**: the panel's encoder strip hosts the glass at
|
||||
top left, with its own port row in the control strip (label colour = port
|
||||
status; auto-opens **COM12** at startup when present). And standalone,
|
||||
top left, with its own connection row in the control strip (label colour =
|
||||
connection status; picker offers `pipe:vplasma` and the COM ports). And standalone,
|
||||
`VPlasma.App`: a bare-glass window that opens **COM12** (the device end of
|
||||
the plasma's null-modem pair) on startup — retrying while the port is
|
||||
missing or busy, port status in the title bar. Both decode the display's
|
||||
|
||||
Reference in New Issue
Block a user