assets2036net 0.4.3
See the version list below for details.
dotnet add package assets2036net --version 0.4.3
NuGet\Install-Package assets2036net -Version 0.4.3
<PackageReference Include="assets2036net" Version="0.4.3" />
paket add assets2036net --version 0.4.3
#r "nuget: assets2036net, 0.4.3"
// Install assets2036net as a Cake Addin #addin nuget:?package=assets2036net&version=0.4.3 // Install assets2036net as a Cake Tool #tool nuget:?package=assets2036net&version=0.4.3
assets2036net
Description
The assets2036net library and package supports .NET developers in participating in the assets2036 MQTT-based communication. It depends on M2MqttDotNetCore for MQTT communication, Newtonsoft.Json for JSON serialization and log4net for logging.
Getting started
For a very basic usage see take a look into the CLI project SimplePropertyAndOperation. Herein an asset is created and equipped with some properties and operations. Then an asset proxy is created which reads the properties and calls the asset's operation.
The used submodel descriptions are
Those submodels are very simple / basic and offer only simple datatypes in properties and operation parameters. In the unit tests project you will find a sufficient set of all imaginable use cases, parameter types, return types.
Remarks
The focus in assets2036 is simplicity and leanness - this also aplies to the librares. This is why in some places one might miss a more clean separation of concerns in the implementation.
There is only one set of classes for Submodel and the submodel elements (Properties, Events, Operations) in the library. They are used for the serialization and deserialization of the JSON submodel descriptions (JSON model files read from submodel repository) as well as for the access to the submodel elements at runtime. This might lead to some confusion and sometimes made it impossible to strictly hide unneccessary aspects of the API from the developer.
The library uses Newtonsoft.Json for JSON (de-)serialization of the submodels as well as for (de-)serialization of the messages payload. To avoid the need for precompiler steps to create message payload specific code / classes, payload is handled in a completely generic way. This means, each parameter or property value you read, will internally be of type Newtonsoft.Json.Linq.JToken and nothing more. To get typed values or references, you have to take care of casting / converting by yourself. You will find examples of how the casting to simple and composite types (arrays, objects) is done in the unit tests and in the example project SimplePropertyAndOperation.
Dependencies (NuGet)
assets2036net library
- log4net 2.0.13 Apache-2.0
- MQTTNet 3.1.1 MIT
- Newtonsoft.Json 13.0.1 MIT
assets2036 unittests
- Microsoft.NET.Test.Sdk 17.0.0 MIT
- xunit 2.4.1 MIT
- xunit.runner.visualstudio 2.4.3 MIT
- log4net 2.0.13 Apache-2.0
Authors
License
Apache-2.0 License
Acknowledgments
Thanks to Daniel Ewert for the inspiration, conceptual work and preliminary python library.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- log4net (>= 2.0.13)
- MQTTnet (>= 3.1.1)
- Newtonsoft.Json (>= 13.0.1)
- NJsonSchema (>= 10.8.0)
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 |
---|---|---|
0.6.0 | 216 | 12/13/2023 |
0.5.7 | 162 | 12/6/2023 |
0.5.6 | 129 | 11/29/2023 |
0.5.5 | 116 | 11/28/2023 |
0.5.4 | 168 | 11/23/2023 |
0.5.3 | 147 | 10/27/2023 |
0.5.2 | 137 | 10/27/2023 |
0.5.1 | 121 | 10/26/2023 |
0.5.0 | 124 | 10/26/2023 |
0.4.4 | 230 | 6/13/2023 |
0.4.3 | 499 | 10/20/2022 |
0.4.2 | 480 | 10/20/2022 |
0.4.1 | 267 | 12/21/2021 |