mefistotelis / pylabview

Python reader of LabVIEW RSRC files (VI, CTL, LLB). File format description on the Wiki.
MIT License
86 stars 24 forks source link

How did you derive the heap tag enums? #19

Closed rcpacini closed 3 months ago

rcpacini commented 3 months ago

Thanks for laying the groundwork for a python interpreter for LabVIEW files.

How did you derive the heap tag enum names and ids in LVHeap.py?

(i.e. System Level (SL), and Object Fields (OF) tags).

Were these tags exported from LabVIEW via Invoke, Property, or DLL Functional calls?

mefistotelis commented 3 months ago

Names of tags were used for best compatibility with LabVIEW formats. I used the LabVIEW heap peek debug tool to export few heaps to XML, then found more complete lists of the tags by looking at labview binary code.

rcpacini commented 3 months ago

What method did you use to export to XML? Thanks again for your help.

mefistotelis commented 3 months ago

What method did you use to export to XML?

If I remeber correctly, the XML option was a part of Heap Peek.

rcpacini commented 3 months ago

Yes it is.

Instructions:

  1. Add "LVdebugKeys=True" to LabVIEW.ini to enable Ned & Heap Peek.
  2. Restart LabVIEW and open a VI
  3. Start Heap Peek "Ned" by (Ctrl+Shift+D+N)
  4. Under "Heap Save Format", click to cycle to 'XML'
  5. Save the VI
  6. Read the resource file (.vi) block 'BDHX' or 'FPHX'

All my questions are answered. I appreciate the help.