Eview.Protocol
1.0.0
dotnet add package Eview.Protocol --version 1.0.0
NuGet\Install-Package Eview.Protocol -Version 1.0.0
<PackageReference Include="Eview.Protocol" Version="1.0.0" />
<PackageVersion Include="Eview.Protocol" Version="1.0.0" />
<PackageReference Include="Eview.Protocol" />
paket add Eview.Protocol --version 1.0.0
#r "nuget: Eview.Protocol, 1.0.0"
#:package Eview.Protocol@1.0.0
#addin nuget:?package=Eview.Protocol&version=1.0.0
#tool nuget:?package=Eview.Protocol&version=1.0.0
Eview.Protocol
Eview.Protocol is a dependency-free .NET library for reading and writing the binary Eview Personal Alarm Communication Protocol used by devices such as the EV12.
It supports arbitrary TCP fragmentation, multiple frames in one read, CRC-16 validation, repeated command keys, ACK/error construction, typed EV12 values, lossless handling of unknown extensions, and recognition of encrypted 0xA5 envelopes.
Install
Reference the project directly:
<ProjectReference Include="path/to/eview-protocol/Eview.Protocol/Eview.Protocol.csproj" />
Or build a NuGet package and reference the resulting Eview.Protocol.1.0.0.nupkg:
dotnet pack Eview.Protocol.slnx -c Release -o artifacts/packages
dotnet add package Eview.Protocol --source artifacts/packages
Minimal example
using Eview.Protocol;
var streamDecoder = new EviewStreamDecoder();
// Feed every block returned by NetworkStream.ReadAsync. A block may contain
// a partial frame, one frame, or several frames.
foreach (var candidate in streamDecoder.Feed(bytesReadFromTcp))
{
if (candidate.Kind != EviewFrameKind.Plain)
continue;
EviewMessage message = EviewMessageCodec.Decode(candidate.Raw);
Console.WriteLine($"{message.CommandName}, sequence {message.SequenceId}");
foreach (EviewKey key in message.Keys)
Console.WriteLine($"{key.Name}: {key.Decoded["rawHex"]}");
if (message.Properties.AckRequested)
{
byte[] ack = EviewMessageCodec.CreateResponse(
message.SequenceId,
message.SuggestedResponse);
await networkStream.WriteAsync(ack);
}
}
Do not ACK data until the application has completed whatever durable processing it promises. This library performs no persistence itself; ACK timing belongs to the consuming application.
Documentation
docs/protocol-library.mdcontains integration examples and a public API guide.docs/wire-protocol-reference.mddocuments framing, byte order, CRC, commands, keys, ACK behavior, and supported typed payloads.
Both documents are included in the NuGet package.
Encryption note
The vendor documentation defines the 0xA5 encrypted envelope, a 16-byte AES key, and a 16-byte IV, but does not identify the AES mode or padding. The library therefore parses the envelope without guessing how to decrypt it. IEviewBodyDecryptor is provided as the integration boundary for an implementation based on confirmed vendor parameters.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 47 | 8/5/2026 |