Eview.Protocol 1.0.0

dotnet add package Eview.Protocol --version 1.0.0
                    
NuGet\Install-Package Eview.Protocol -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Eview.Protocol" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Eview.Protocol" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Eview.Protocol" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Eview.Protocol --version 1.0.0
                    
#r "nuget: Eview.Protocol, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Eview.Protocol@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Eview.Protocol&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Eview.Protocol&version=1.0.0
                    
Install as a Cake Tool

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.md contains integration examples and a public API guide.
  • docs/wire-protocol-reference.md documents 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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