Skip to content

Releases: Apollo3zehn/ImcFamosFile

v2.0.7

Choose a tag to compare

@github-actions github-actions released this 22 May 14:34

Bugs Fixed

  • Open files with FileShare.Read flag instead of FileShare.None.

v2.0.6

Choose a tag to compare

@github-actions github-actions released this 06 Jan 10:42

Bugs Fixed

  • Fixed a bug that caused byte to be serialized as sbyte and vice versa (#11, thanks @MattChique)

v2.0.5

Choose a tag to compare

@github-actions github-actions released this 28 Mar 14:17

Bugs Fixed

  • Fixed a wrong deserialization type.

v2.0.4

Choose a tag to compare

@github-actions github-actions released this 28 Mar 13:44

Bugs Fixed

  • Fix wrong data type for buffer size calculation.

v2.0.2

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 06 Jul 12:45

Bugs Fixed

  • Reading properties containing commas, semicolons or double quotes failed.

v2.0.1

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 15 Nov 14:19

Changes

  • The WriteSingle overloads parameter Span<T> has been changed to ReadonlySpan<T>.

v2.0.0

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 23 Feb 10:16

Breaking Changes

  • The buffer FamosFileBuffer.X0 property has been changed from type int to type decimal.

v1.3.1

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 05 Jan 08:44
d73e4af

Bugs Fixed

  • The default code page on Linux was not 1252 but 65001 instead (UTF-8). This caused read errors when using non-ASCII characters.

v1.3.0

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 19 Dec 14:04
5775bca

Features

  • The properties FamosFileTriggerTime, FamosFileXAxisScaling and FamosFileZAxisScaling are available on both, the FamosFileField and FamosFileComponent instances. The file format allows an optimization to store these properties only when there is a change. This means when the first component of a field has one of these properties assigned to a non-null value, this value applies to all subsequent components in that field, too. When this value is assigned to the FamosFileField instance itself, it applies to all child-components until redefined by a component.

This library now removes redundant values whenever a file is saved. Additionally, whenever a file is read-back from disk or from a stream into memory, this library distributes the values to all belonging components. This means, when there is a file with e.g. a FamosFileXAxisScaling instance assigned to a field, this x-axis scaling instance is copied over to all child-components. The advantage is that the corresponding scaling data can be accessed more easily and reliable than before.

As all properties are nullable, they are only assigned when there is a definition found within the file.

Example (old, < v1.3.0):

XAxisScaling scaling;

// Try get scaling from component itself.
scaling = famosFile.Fields[0].Components[3].XAxisScaling;

// If it is null, try to get it from the field.
if (scaling == null)
    scaling = famosFile.Fields[0].XAxisScaling;

// And now there it still a slight chance we got the wrong scaling instance 
// because another (earlier) child component could have redefined it before.

Example (new, >= v1.3.0):

// Simply get scaling from x-axis. If it is null, you can be sure that there was 
// no scaling defined in the file.
var scaling = famosFile.Fields[0].Components[3].XAxisScaling;

Bugs Fixed

  • Dipose the opened file stream, when opening a file fails.
  • Fixed wrong bit-field size check.
  • Fixed wrong regular expression which led to error when using quotes and newline character in FamosFileProperty instances.

v1.2.2

Choose a tag to compare

@Apollo3zehn Apollo3zehn released this 17 Dec 11:54
f72ae57

Bugs Fixed

  • The library now throws an error when the file is too short, e.g. due to an incomplete copy process.