06-10-2009 06:48 PM
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
Solved! Go to Solution.
06-11-2009 03:54 PM
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?
06-22-2009 09:20 AM
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.
06-22-2009 01:04 PM - edited 06-22-2009 01:05 PM
06-24-2009 06:18 PM
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.
06-25-2009 08:12 AM
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.
06-25-2009 10:09 AM
cwierzynski wrote:
By the way, Jason D. Sommerville is at Michigan Tech, not MIT.
I stand corrected!