LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I upgrade from hdf5 1.4 to 1.6

Solved!
Go to solution

Dear Forums,

 

I have developed a number of vi's that use the low-level hdf5 API that is provided in the SFPfile package. This package includes hdf5dll.dll, HDF5_D_LV.dll and zlib.dll. The hdf5dll.dll version is 1.4.

 

I was using Labview 7.1. Now I've upgraded to Labview 8.5 and I've heard that it is supposed to work with hdf5 version 1.6. How can I make my old vi's developed under 1.4 work under 1.6 ? I tried installing the SFPfile package again but it's still hdf5 version 1.4.

 

Thanks!

Cas

0 Kudos
Message 1 of 7
(3,289 Views)

Hi Cas,

 

Where have your heard that HDF5 supports versions 1.6? It looks like you can get a toolkit from Jason D. Sommerville of MIT at HDF5 Library for LabVIEW. Of course it says it works in LabVIEW 7.1 or above, but the particular point is that it lists HDF5 version 1.6.3 and higher. I assume you are talking about the SPFfile.exe found from KnowledgeBase 2U6HIIDI Can I Edit and Create Hierarchical Data Format (HDF5) files in LabVIEW. If so, it list LabVIEW 6.0 and above, but only version 1.4.x of HDF5 support.

Are you getting errors using the utility in LabVIEW 8.5?

Joshua B.
National Instruments
0 Kudos
Message 2 of 7
(3,270 Views)

Sorry for the late reply, I have been on vacation.

 

National Instruments only officially supports HDF5 using the NI-HWS file API.  SFPFile was the LabVIEW prototype which lead to NI-HWS.  Both only support HDF5 1.4.4.  HDF5 uses a lot of macro based enums which cannot be called directly from the LabVIEW call library node.  The use of these expanded greatly from HDF5 1.4.x to 1.6.x.  This breaks LabVIEW compatibility and requires the use of more "glue" code to interface from HDF5 to LabVIEW (the glue code is a switch statement which converts the macro to a fixed number so LabVIEW can call it).  Currently, HDF5 is at version 1.8.3.

 

If the old version is sufficient for you, there is no reason not to use it.  It should recompile and run in any version of LabVIEW after the one it is written in (I have used it in all released versions of LabVIEW).  If you need a newer version, as DiscoBall said, you can search these forums or the web for them.  There are at least three available, one of which is using HDF5 1.8.x.

Message 3 of 7
(3,227 Views)
Correction: The first sentence of my previous post was supposed to read: "Where have you heard that LabVIEW support HDF5 version 1.6." Eitherway, DFGray answered the question excellently!
Message Edited by DiscoBall on 06-22-2009 01:05 PM
Joshua B.
National Instruments
0 Kudos
Message 4 of 7
(3,217 Views)

Thanks for both of you for your prompt replies!

 

I don't remember where I saw the notice about hdf5 1.6 being supported. I think I must have imagined it in a fit of wishful thinking...

 

By the way, Jason D. Sommerville is at Michigan Tech, not MIT. 

 

Instead of using wrapper functions to get access to constants like H5T_ORDER_LE, what about just looking up their values in the hdf5 source header files and using those directly? Sure, it ties you to a specific version of the code, but at least it doesn't require writing C code.

0 Kudos
Message 5 of 7
(3,188 Views)
Solution
Accepted by topic author cwierzynski

Most of the enums are not simple constants.  They are implemented as macros and their values can change from platform to platform or machine to machine.  I got bit by this in my first iteration of SFPFile.  So you really do need the glue code.

 

If you want a more efficient implementation than the Sommerville one, contact Tomi Maila at ExpressionFlow.  He may be able to help you.

Message 6 of 7
(3,176 Views)

cwierzynski wrote:

 

By the way, Jason D. Sommerville is at Michigan Tech, not MIT. 



I stand corrected!

Joshua B.
National Instruments
0 Kudos
Message 7 of 7
(3,168 Views)