Copyrighrt (c) 2014-2020 UPVI, LLC

Live HDF5 1.2 Released and on NI Tools Network

Published: Thursday, 11 February 2021

UPVI, LLC is proud to present the release of the version 1.2 series of the Live HDF5 toolkit. Version 1.2 is now built around HDF5 library version 1.12. A few features such as single-writer, multiple reader have been added. More importantly, many stability improvements have been made.

The toolkit can be acquired through the VI Package Manager installed with LabVIEW, by downloading it from the NI Tools Network, or by downloading it directly from this website. Install using the VI Package Manager. Double-clicking clicking the file should work.

The change list below list all the major and changes since the last release of the 1.1 series. Please see the end of this article for a list of changes since the last release candidate, version 1.2.2.2.

Major changes since version 1.1.1.86

  • Updated to HDF5 1.12.0
  • This led to several changes as HDF5 changed their ABI, again. Note that GetH5FileDriver.vi is currently broken
  • Ported VIs to match. Note that due to a change in the size of HDF5 references the datatype of the HDF5 references in LabVIEW changed. Due to the use of  a typedef, this change should be transparaent under most circumstances.
  • Upgraded to MSVCRT 142 (Required by HDF5 upgrade)
  • Fixed major threading error by reworking error handling. As a result essentially all HDF5 library calls now go through the h5helper library.
  • Updated error handling documentation. Note that the complete HDF5 Error Stack is no longer returned by default and Recover Error Stack.vi is no longer required for clean error messages but is still required to determine specific HDF5 errors.
  • Rebuilt HDF5 library with thread-safety features enabled to fix crash caused by simultaneous Xnode/regular mode accesses. Any HDF5 library used with Live HDF5 must be built with thread-safe features enabled.
  • Added H5Fstart_swmr_write
  • Updated Reference VIs to be consistent with HDF5 1.12 reference functions. Note that documentation is currently incomplete due to incomplete HDF5 documentation.
  • Modified String Sizes parameter in LVH5Tcreate_*_type VIs so that it also accepts an encoding. This will be used in future development to support Unicode strings.

Minor changes since version 1.1.1.86

  • Fixed several bugs that caused access violations when writing and especially reading string attributes
  • Made the "Type" input on LVH5Tcreate_*_type required to help avoid such bugs in the future
  • Miscellaneous file structure cleanup
  • Fixes in several H5?get_ functions that return strings
  • Fixed H5Oget_info (cluster type was incorrect)
  • Redirected several deprecated HDF5 calls to their non-deprecated equivalents
  • Changed implementation of Not an HDF5 Refnum to a call to H5Iis_valid
  • Fixed a few DLL calls that improperly had const marked for non-const parameters
  • Fixed a potential threading issue in Select HDF5 File Dialog Core
  • Fixed bug in handling of nested VLens under Windows 64
  • Fixed bug in handling of extended ASCII characters in string data
  • Fixed memory leaks in all H5?read/write functions

Changes since 1.2.2.2

Changes since 1.2.2.2 are primarily cosmetic and documentation related. However, there are two functional changes:

  • Fixed alignment bug in H5Oget_info*.vi which caused improper item types to be returned under 64-bit LabVIEW.
  • Fixed a broken (deprecated) call in H5Gmove2.vi

Live HDF5 1.2 Release Candidate

Published: Thursday, 31 December 2020

UPVI, LLC is proud to present this release candidate of the version 1.2 series of the Live HDF5 toolkit. Version 1.2 is now built around HDF5 library version 1.12. A few features such as single-writer, multiple reader have been added. More importantly, many stability improvements have been made.

The release candidate is currently only available from the UPVI website. After it has been more thoroughly vetted, I will upload a release version to the NI Tools Network. Please report any problems with the beta in the Forum.

Click here to be directed to the download page for version 1.2.2.2. Install using the VI Package Manager. Double-clicking clicking the file should work.

Major changes since version 1.1.1.86

  • Updated to HDF5 1.12.0
  • This led to several changes as HDF5 changed their ABI, again. Note that GetH5FileDriver.vi is currently broken
  • Ported VIs to match. Note that due to a change in the size of HDF5 references the datatype of the HDF5 references in LabVIEW changed. Due to the use of  a typedef, this change should be transparaent under most circumstances.
  • Upgraded to MSVCRT 142 (Required by HDF5 upgrade)
  • Fixed major threading error by reworking error handling. As a result essentially all HDF5 library calls now go through the h5helper library.
  • Updated error handling documentation. Note that the complete HDF5 Error Stack is no longer returned by default and Recover Error Stack.vi is no longer required for clean error messages but is still required to determine specific HDF5 errors.
  • Rebuilt HDF5 library with thread-safety features enabled to fix crash caused by simultaneous Xnode/regular mode accesses. Any HDF5 library used with Live HDF5 must be built with thread-safe features enabled.
  • Added H5Fstart_swmr_write
  • Updated Reference VIs to be consistent with HDF5 1.12 reference functions. Note that documentation is currently incomplete due to incomplete HDF5 documentation.
  • Modified String Sizes parameter in LVH5Tcreate_*_type VIs so that it also accepts an encoding. This will be used in future development to support Unicode strings.

Minor changes since version 1.1.1.86

  • Fixed several bugs that caused access violations when writing and especially reading string attributes
  • Made the "Type" input on LVH5Tcreate_*_type required to help avoid such bugs in the future
  • Miscellaneous file structure cleanup
  • Fixes in several H5?get_ functions that return strings
  • Fixed H5Oget_info (cluster type was incorrect)
  • Redirected several deprecated HDF5 calls to their non-deprecated equivalents
  • Changed implementation of Not an HDF5 Refnum to a call to H5Iis_valid
  • Fixed a few DLL calls that improperly had const marked for non-const parameters
  • Fixed a potential threading issue in Select HDF5 File Dialog Core
  • Fixed bug in handling of nested VLens under Windows 64
  • Fixed bug in handling of extended ASCII characters in string data
  • Fixed memory leaks in all H5?read/write functions

Live HDF5 1.2.1 Beta

Published: Sunday, 22 November 2020

Testing of version 1.2.0.96 uncovered a serious threading error. This has been resolved in this beta, version 1.2.1.2., but it required a major overhaul of the error handling in the library. As with the 1.2.0 series, the new version is still released in LabVIEW 2015 VIs so that it should remain compatible with every currently supported version of LabVIEW. It has been primarily tested under the 32-bit LabVIEW 2020.

This beta version is only available from the UPVI website. After it has been more thoroughly vetted, I will upload a release version to the NI Tools Network. Please report any problems with the beta in the Forum.

Click here to be directed to the download page for version 1.2.0.96. Install using the VI Package Manager. Double-clicking clicking the file should work.

Live HDF5 1.2.0 Beta 2

Published: Tuesday, 13 October 2020

A second beta of the new version (1.2.0.96) of Live HDF5 is available and in beta. In terms of functionality, the new version is primarily bug fixes. However, it has also been upgraded to include with HDF5 version 1.12.0. The new version is still released in LabVIEW 2015 VIs so that it should remain compatible with every currently supported version of LabVIEW. It has been primarily tested under the 32-bit LabVIEW 2020.

This beta version is only available from the UPVI website. After it has been more thoroughly vetted, I will upload a release version to the NI Tools Network. Please report any problems with the beta in the Forum.

Click here to be directed to the download page for version 1.2.0.96. Install using the VI Package Manager. Double-clicking clicking the file should work.

Changes since Version 1.1.1.86

  • Upgraded to HDF5 version 1.12.0*
  • Ported VIs to match
  • Added H5Fstart_swmr_write
  • Upgraded to MSVCRT 142 (Required by HDF5 upgrade)
  • Fixed several bugs that caused access violations when writing and especially reading string attributes.
  • Made the "Type" input on LVH5Tcreate_*_type required to help avoid such bugs in the future

*Notes on the upgrade to HDF5 1.12.0

The upgrade to version 1.12 of HDF5 caused a few major changes to Live HDF5. Most of the changes should be transparent to upgrading uses, but are worth pointing out.

  1. The HDF group no longer distributes a 32-bit version of the Windows DLL. Therefore, the versions of HDF5 included with Live HDF5 1.2 are built in-house by UPVI so that a 32-bit version of the DLL may be generated. They are built directly from the HDF5 tarballs.
  2. Between version 1.10 and 1.12 of HDF5, the underlying datatype of all of the HDF5 identifiers (hid_t) changed from 32-bit to 64-bit integers. This necessitated changing the way in which the identifiers are stored in LabVIEW (they are now implemented as LabVIEW classes) and also required changing the call parameters of essentially every VI in the library. While I believe that this conversion is complete, if you are getting unexpected errors about invalid identifiers, a likely culprit an improper return type (32-bit rather than 64-bit integer) on an External Library Node return type.
  3. Because the ABI changed again, the GetH5FileDriver.vi is currently broken.

A second Beta of the 1.2.0 series of Live HDF5 is now available for testing.

Changes since Version 1.2.0.91 (Beta 1)

  • Rebuilt HDF5 library with thread-safety features enabled to fix(?) crash caused by simultaneous Xnode/regular mode accesses (?).
  • Made error handling VIs subroutine to attempt to get them to clump better for per-thread error stack access after HDF5 calls.
  • Fixed more bugs in string read functions.
  • Potential fixes in several H5?get_ functions that return strings.
  • Fixed H5Oget_info (cluster type was incorrect).
  • Redirected several deprecated HDF5 calls to their non-deprecated equivalents.
  • Changed Not an HDF5 Refnum to a call to H5Iis_valid
  • Fixed a few DLL calls that improperly had const marked for non-const parameters.
  • Fixed a potential threading issue in Select HDF5 File Dialog Core
  • Fixed a few missed CLFN changes for 64 bit hid_ts (H5Tequal and H5Tenum_nameof).
  • Fixed palette menus broken in Beta 1.
  • Updated documentation

Live HDF5 Version 1.2.0 in Beta

Published: Wednesday, 16 September 2020

After a very long hiatus, a new version (1.2.0.91) of Live HDF5 is available and in beta. In terms of functionality, the new version is primarily bug fixes. However, it has also been upgraded to include with HDF5 version 1.12.0. The new version is still released in LabVIEW 2015 VIs so that it should remain compatible with every currently supported version of LabVIEW. It has been primarily tested under the 32-bit LabVIEW 2020.

This beta version is only available from the UPVI website. After it has been more thoroughly vetted, I will upload a release version to the NI Tools Network. Please report any problems with the beta in the Forum.

Click here to be directed to the download page for version 1.2.0.91. Install using the VI Package Manager. Double-clicking clicking the file should work.

Changes since Version 1.1.1.86

  • Upgraded to HDF5 version 1.12.0*
  • Ported VIs to match
  • Added H5Fstart_swmr_write
  • Upgraded to MSVCRT 142 (Required by HDF5 upgrade)
  • Fixed several bugs that caused access violations when writing and especially reading string attributes.
  • Made the "Type" input on LVH5Tcreate_*_type required to help avoid such bugs in the future

*Notes on the upgrade to HDF5 1.12.0

The upgrade to version 1.12 of HDF5 caused a few major changes to Live HDF5. Most of the changes should be transparent to upgrading uses, but are worth pointing out.

  1. The HDF group no longer distributes a 32-bit version of the Windows DLL. Therefore, the versions of HDF5 included with Live HDF5 1.2 are built in-house by UPVI so that a 32-bit version of the DLL may be generated. They are built directly from the HDF5 tarballs.
  2. Between version 1.10 and 1.12 of HDF5, the underlying datatype of all of the HDF5 identifiers (hid_t) changed from 32-bit to 64-bit integers. This necessitated changing the way in which the identifiers are stored in LabVIEW (they are now implemented as LabVIEW classes) and also required changing the call parameters of essentially every VI in the library. While I believe that this conversion is complete, if you are getting unexpected errors about invalid identifiers, a likely culprit an improper return type (32-bit rather than 64-bit integer) on an External Library Node return type.
  3. Because the ABI changed again, the GetH5FileDriver.vi is currently broken.