fiskaltrust / fiskaltrust/middleware
[Middleware][PL][SCU] Implement the POSNET SCU (IPLSSCD against a real POSNET Online printer)
- Dominant language
- C#
- Stars
- 20
- Forks
- 11
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 13
Description
Labels: device, product
## Goal
Implement a POSNET SCU: a real `IPLSSCD` implementation that drives a
POSNET Online fiscal printer over TCP, alongside the existing `SandboxPLSSCD` (FAKE device).
## Scope
**In scope**
- Layer 1 (transport: TCP connect/send/read with explicit timeouts) and Layer 2 (frame codec:
STX/TAB/CRC16-XMODEM/ETX, encode + decode) per the OO design reference.
- Layer 3 domain commands needed for one normal sale: `scomm`, `trinit`, `trline`,
`trpayment`, `trend`.
- The three-outcome response model — confirmed / confirmed error (`?`) / **ambiguous on
timeout**. Ambiguous must never be silently retried (see the triple-print incident in
`doc/POSNET/Scripts/README.md`).
- A `PosnetPLSSCD : IPLSSCD` wired next to `SandboxPLSSCD`, device address configurable.
- Unit tests for codec/CRC (spec vector `CRC("123456789") = 0x31C3`) and for state/ordering
enforcement; no device required in CI.
**Out of scope (separate issues)**
- Fiscalization of a device, `hdrset`/`vatset` one-time setup.
- Daily/periodic reports, invoices, returns/discounts, non-fiscal printouts.
- Queue/Journal integration and the CRK reporting path.
Contributor guide
Assessment
This issue has not been assessed yet.