Releases: jacobwi/SharpMeter
Releases · jacobwi/SharpMeter
v0.1.0
Added
- Complete ANSI C12.18/C12.19 PSEM protocol implementation
- L2 framing with STP (0xEE), CRC-16 verification, multi-packet support
- L7 services: Identify, Negotiate, Logon, Security, Logoff, Terminate
- Full table read/write (ReadFull, ReadOffset, WriteFull, WriteOffset)
- Procedure execution via ST7/ST8
- Baud rate negotiation support (300-38400)
- DLMS/COSEM (IEC 62056) protocol implementation
- HDLC framing per IEC 62056-46
- OBIS code system with well-known electricity metering objects
- A-XDR (Adapted External Data Representation) codec
- GET/SET/ACTION DLMS services
- Authentication mechanism support (None, LLS, HLS)
- Pluggable transport layer via ITransport interface
- SerialTransport (System.IO.Ports)
- TcpTransport (async TCP with DNS resolution)
- LoopbackTransport (System.IO.Pipelines, for testing)
- Full PSEM meter emulator
- Complete session state machine (Idle -> Identified -> Negotiated -> LoggedOn -> Authenticated)
- In-memory table store with pre-populated standard tables
- EmulatorTransport for seamless client integration
- Result discriminated union for error handling without exceptions
- IAsyncEnumerable streaming for large table reads
- CRC-16 CCITT (reversed) calculation with lookup table
- Comprehensive enum types for all protocol values
- xUnit v3 test suite covering CRC, framing, encoding, transport, and emulator
- CI/CD pipeline with GitHub Actions
- Multi-target: net9.0 and net10.0
- Central package management via Directory.Packages.props