Named-pipe transport for the DOSBox-X fork's namedpipe backend
Both devices now serve \.\pipe\vrio and \.\pipe\vplasma for the whole app lifetime alongside the COM rows — the com0com-free path. Framing per the pinned contract (0x00 len data / 0x01 DTR+RTS lines, one lines frame on connect, unknown type = log + drop): PipeFraming/PipeFrameDecoder and VRioPipeService (TX paced at the wire rate, peer DTR edges feed HostHandshake) in VRio.Core, listener-only VPlasmaPipeService twin in VPlasma.Core. Busy pipe names retry, so vRIO's built-in glass and the standalone vPLASMA coexist. README documents the transport and the fork conf lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,6 +103,33 @@ analog polling drives the "analog polls served" counter, and every click on
|
||||
the vRIO panel arrives at RIOJoy as real cockpit input. Two physical PCs with
|
||||
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:
|
||||
|
||||
```ini
|
||||
[serial]
|
||||
serial1 = namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||
serial2 = namedpipe pipe:vplasma
|
||||
```
|
||||
|
||||
A pipe is a plain byte stream, so serial data and modem lines travel as
|
||||
typed frames (`0x00 len bytes` data, `0x01 bits` DTR/RTS) — the game's DTR
|
||||
reset pulse keeps its exact position in the byte stream, and a disconnect
|
||||
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.
|
||||
|
||||
## vPLASMA — the companion plasma display
|
||||
|
||||
The cockpit's second serial device is the **plasma display**: a 128×32
|
||||
|
||||
Reference in New Issue
Block a user