Dev4Agriculture.ISO11783.ISOXML 0.17.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Dev4Agriculture.ISO11783.ISOXML --version 0.17.0
NuGet\Install-Package Dev4Agriculture.ISO11783.ISOXML -Version 0.17.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="Dev4Agriculture.ISO11783.ISOXML" Version="0.17.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Dev4Agriculture.ISO11783.ISOXML --version 0.17.0
#r "nuget: Dev4Agriculture.ISO11783.ISOXML, 0.17.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.
// Install Dev4Agriculture.ISO11783.ISOXML as a Cake Addin
#addin nuget:?package=Dev4Agriculture.ISO11783.ISOXML&version=0.17.0

// Install Dev4Agriculture.ISO11783.ISOXML as a Cake Tool
#tool nuget:?package=Dev4Agriculture.ISO11783.ISOXML&version=0.17.0

Abstract

ISOXML is an agricultural data format to create Task Descriptions and record machine data in agricultural machines. ISOXML is standardized in ISO11783-10.

Developers and Maintainers

Logo

Dev4Agriculture is specialized in agricultural data analysis. We love to make farming software work.

What are all the sub projects

This repository consists of multiple sub-projects. They all belong to isoxml.net but onliy Dev4Agriculture.ISO11783.ISOXML is the one that represents the library itself

Dev4Agriculture.ISO11783.ISOXML.Generation

This subproject is used to autogenerate the classes from XSD Schema Files. Those are adjusted versions of https://isobus.net (adjusted to fit V3 and V4 in parallel)

Dev4Agriculture.ISO11783.ISOXML.Test

Guess what, those are the tests for the ISOXML.net library. You may find interesting examples and also a few test data here.

Dev4Agriculture.ISO11783.ISOXML.Examples

Another sub project that provides Examples

Dev4Agriculture.ISO11783.ISOXML

This is the library itself that will be described in the following chapters


The Library

Nuget Package

isoxml.net is published as a nuget package here: https://www.nuget.org/packages/Dev4Agriculture.ISO11783.ISOXML

Classes

DataStructures in the ISOXML.net Library

ISOXML

The Datastructures in the ISOXML reflect an ISOXML TaskDataSet that was loaded or created:

  • Messages: A list of Warnings and errors that accoured during loading
  • Data: The TaskData Structure including Tasks, Devices, etc.
  • Grids: The List of Grids (Prescription maps) used in the TaskSet
  • TimeLogs: The List of MachineData-Packages provided with the TaskSet
  • IdTable: The IdTable collects all IDs from within the TaskSet (e.g. CTR1, TSK-1, etc.)
  • LinkList: In case of a Version 4 TaskSet, this is the List of Links between TaskData-Internal Ids (e.g. CTR1) and IDs from the FMIS (e.g. UUIDs).

This is the main Class. It consists of functions to create, load and save ISOXML.

static Load or LoadAsync

The static Load-Functions are used to Load a TaskDataSet from a storage folder. Its result consists of a Type ISOXML.

static Create

Creates an Empty TaskDataSet

Save or SaveAsync

Stores the ISOXML to the given FolderPath

ISO11783_TaskDataFile

This is the RootElement of any TaskData. It includes all the Coding Data Elements of ISOXML such as Customers, Farmers, Partfields etc.

All these subElements have names beginning with ISO. E.g. ISOPartfield, ISOCustomer, ISOTask

The Tasks include links to TimeLogs as well as a grid if those data are available in the TaskSet.

ISOGridFile

This is an Application, Seeding or Prescription Map

Remark: Each Grid can be of Type1 or Type2

  • Type1: Type 1 is an array of bytes; each value in the grid redirects to the corresponding TreatmentZone and its proposed Value
  • Type2: Type 2 is an array of 32bit integers. It directly includes values rather than a link to the treatmentZone.

Important: Both Grids should be acessed through the Functions GetValue/SetValue only!

ClientName

An analysis class to Analyse WorkingSetMasterNames/ClientNames

The WorkingSetMasterName, also known as ClientName is the Unique Identifier for a machine in the ISOXML world.(Actually it's "nearly unique" only 😕)

It can be decoded to read things like

ToString()

This outputs the Hex-encoded name.

ToArray()

This is used to export a WorkingSetMasterName to an ISOTaskDataFile.

License note on Logos

Please be aware that the logo assigned to this project is only covered under Apache2 when used with this project. You may not use this logo for any other purpose whatsoever without consent by https://www.dev4Agriculture.de

Product 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 netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.19.5.2 639 8/22/2023
0.19.5.1 119 8/20/2023
0.19.5 168 7/29/2023
0.19.4.1 120 7/25/2023
0.19.4 140 7/25/2023
0.19.3.5 131 7/21/2023
0.19.3.4 125 7/3/2023
0.19.3.3 125 6/29/2023
0.19.3.2 116 6/28/2023
0.19.3.1 146 6/23/2023
0.19.3 130 6/22/2023
0.19.2 118 6/22/2023
0.19.1 128 6/21/2023
0.19.0 113 6/20/2023
0.18.0 114 6/20/2023
0.17.3 1,972 6/3/2023
0.17.2.1 105 5/31/2023
0.17.2 101 5/26/2023
0.17.1 148 5/20/2023
0.17.0 129 5/12/2023
0.16.3 118 5/2/2023
0.16.2.2 102 5/2/2023
0.16.1 170 4/17/2023
0.15.2.1 139 4/16/2023
0.15.2 140 4/12/2023
0.14.2.1 414 3/11/2023
0.13.3 235 2/23/2023
0.13.2 200 2/22/2023
0.13.1.1 290 2/8/2023
0.13.1 205 2/7/2023
0.12.0.1 267 1/16/2023
0.12.0 256 1/15/2023
0.11.0 278 1/10/2023
0.10.0 268 1/8/2023
0.9.1.2 282 1/3/2023
0.9.1.1 257 12/30/2022
0.9.0.2 267 12/17/2022
0.9.0.1 669 12/8/2022
0.9.0 273 12/5/2022
0.8.0 409 11/24/2022
0.7.4.4 326 11/22/2022
0.7.4.2 330 11/22/2022
0.7.4.1 304 11/20/2022
0.7.3.1 317 11/17/2022
0.7.2.1 952 11/1/2022
0.7.1.1 437 10/24/2022
0.6.0.2 358 10/3/2022
0.6.0 591 9/16/2022
0.5.0.1 427 8/24/2022
0.4.0.1 410 8/15/2022
0.4.0 373 8/15/2022
0.0.0.2 267 12/29/2022

V0.5.0.1
 - WSM can now handle upper and lower case
 - Adjusted Namings and Values of the DeviceClass enum to fit the definition in https://isobus.net/
V0.6.0.1
 - Add functions to set the Core Root Information of an ISOXML and its LinkList in parallel
V0.7.0.1
 - Add TimeLog Reading Functionalities
V0.7.1.1
 - Add DefaultDataLogTrigger-Function for Tasks
V0.7.2.1
 - Add DeviceElement to IDList Table
V0.7.3.1
 - Add Functionality to get TimeLog Extracts for Positions where a specific value was not recorded. Relevant and important e.g. for values recorded "onChange"
V0.7.4.1
 - Add functionality to read an XML String to an ISOXML Object, no matter if it's a fully qualified ISO11783_TaskDataFile or a Coding Data Element.
V0.7.4.2
 - HasDDIValue supported unsigned DET numbers only, making it impossible to check it for DeviceElements that were created in the MICS
v0.7.4.3
 - Fix Reading of TimeLogs when TimeLogs include NumberOfSatellites
v0.7.4.4
 - Editorial only: Update the LogoURL in the Readme so that it's displayed in nuget.org
v0.8.0.0
 - Fix unsigned Machine Data Value to be actually signed
v0.9.0.0
 - FIX: WorkingSetMasterName WSM required reversing of the ByteArray when reading Data from the ISODevice.WorkingSetMasterName
v0.9.0.1
 - FIX: Added missing Elements to the IDListTable; e.g. CodedCommentListValue could not be assigned with an ID.
v0.9.0.2
 - FIX: Loading of Layers for GridType 2 was invalid
v0.9.1.0
 + ADD: Function to ReadTaskData from Zipfile Stream
v0.9.1.1
 OUTDATED, do not use
v0.9.1.2
 -FIX: Did not properly read files from subfolders when reading zipfile stream
 -FIX: Wrong casing of LINKLIST.xml. Must be LINKLIST.XML
v0.10.0.0
 +ADD: Add DetailsField and CodeField to ResultMessages
v0.11.0.0
 +ADD: Analysis of LocalizationLabel
 +ADD: Extend WSM capabilities
 =CHG: Rename WSM to ClientName
v0.12.0
 +ADD: Add support to export ISOXML V3
v0.12.0.1
 -FIX: Zip-Archives were always unpacked to same TEMP-Folder, which avoids parallel processes
v0.13.0.0
 +ADD: Save TimeLogXMLs
 -FIX: Wrong BitEncoding when storing in V3
v0.13.0.1
 +ADD: Load LinkList from .XML file separately, Save LinkLink into a separate LinkList file if needed. (for v3 or lower)
 +FIX: Resolve inconsistensies between TaskFile and LinkList VersionMajor values
v0.13.1
 +ADD: Store LinkList seperately, used e.g. in case of exporting a V3 TaskSet
v0.13.1.1
 -FIX: LinkList was not marked as a file to be preserved and returned to FMIS
v0.13.3
 +ADD: Analysis to find DeviceElements Relevant for specific DDIs in a Task
v014.1
 +ADD: Add an autogenerated DDIList from the isobus.net Export
v0.14.2
 +ADD: Some functions to read the GridValue at a specific Geoposition, find out if a point is within a field and get the bounds of this field
 +ADD: Functions to Generate TimeLogs
v0.14.2.1
 -FIX: MultiLayer Grids were broken
v0.15.1
 +ADD: Functions to calculate the totals list of a given TimeLogs List
 -FIX: Change variable for DeviceElementId to int
 -FIX: Change variables for DDI to ushort
v0.15.2
 +ADD: Take TIM-Elements into account when totals could not be found in TimeLog Files
v0.15.2.1
 -FIX: MixUp in the Enum of Trigger Methods lead to mixUp between Thresholds and OnChange.
v0.16.1
 -FIX: GridFile values were unsigned and GetSetpointValue was problematic
v0.16.2
 -ADD: Functions to get IsoField area
v0.16.2.1
 -FIX: Found a DataSet with AFE-Elements as XFRs. Those are not officially supported but we shouldn't crash when we find them
 -FIX: The resolution of the DDIs was wrong
v0.16.2.2
 -FIX: When reading an invalid XML, the Load-Function threw an exception
v0.16.3
 +ADD: Convert any ISOXML Element to an XML String
v0.17.0
 +ADD: Adjust CodeGeneration from Schema files to remove Parenthesis-Text
 +FIX: ISOPartField area calculation