Tektronix Oscilloscope Waveform Loader

This is an attempt at a fairly universal loader for the dizzying array of Tektronix oscilloscope binary waveform file types (.wfm and .isf). It imports file types LLWFM, WFM#001 to #003 (.wfm files) and WFMPRE (.isf) from a wide range of Tektronix models. It can handle multi-frame waveforms generated by fast-framing scopes as well, with time stamps. It does not support pixel map types.

The core of this utility is the function LoadTekWfm, which does the heavy lifting. It's designed to be called from other macros and functions that customize the user interface.

The code includes a couple of basic shell procedures for importing and displaying up to four channels of data at once. Macro LoadTekWaveform calls, renames, and displays a single waveform, whereas LoadFourWaveforms loads up to four associated waveforms saved together by some scopes and allows adjustments in naming, scaling, and inter-channel time skew.

Project Details

Current Project Release

Tektronix Oscilloscope Waveform Loader IGOR.6.30.x-1.02

Release File: TekWfmLoad_1.ipf
Version: IGOR.6.30.x-1.02
Version Date: Tue, 01/21/2014 - 06:17 pm
Version Major: 1
Version Patch Level: 2
OS Compatibility: Mac-Intel Windows
Release Notes: Fixed a bug that prevented proper loading of WFM#003 types, such as from DPO7000 series 'scopes.
View All Releases

Mike Johnson made some changes to Richard Sandstrom's original TekWFMLoad procedure from 2013.

His modified procedure is working. Cordially, John Crane LLNL

On 8/6/20, 5:41 PM, "Info-igor on behalf of Johannes Steinmann via Info-igor" <info-igor-bounces@lists.info-igor.org on behalf of info-igor@lists.info-igor.org> wrote:

A year ago, I tried to load a wfm file with https://www.wavemetrics.com/project/LoadTekWaveform <https://www.wavemetrics.com/project/LoadTekWaveform>

In my version, the GrepString did not work anymore (according to my wonderful comments I did not figure out why) and exchanged it with a StringMatch. Then the right version was recognized. I don’t know if that is still working, but you could give it a try:

    Exchange each of these lines:
    If(GrepString(HeaderString, "[Ll][Ll][Ww][Ff][Mm]") == 1)
    If(GrepString(HeaderString, "[Ww][Ff][Mm]#001") == 1)
    If(GrepString(HeaderString, "[Ww][Ff][Mm]#002") == 1)
    If(GrepString(HeaderString, "[Ww][Ff][Mm]#003") == 1)
    If(GrepString(HeaderString, "[Ww][Ff][Mm][Pp][Rr][Ee]") == 1)

    with
    If(StringMatch(HeaderString, "*llwfm*") == 1)
    If(StringMatch(HeaderString, "*wfm#001*") == 1)
    If(StringMatch(HeaderString, "*wfm#002*") == 1)
    If(StringMatch(HeaderString, "*wfm#003*") == 1)
    If(StringMatch(HeaderString, "*wfmpre*") == 1)

    Cheers,
    Johannes

Forum

Support

Gallery

Igor Pro 8

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More