Overview

Welcome to Puma Export Manager Help

Puma Export Manager is a utility used to convert data files to different file formats for viewing and importing between Puma and other applications.

Description of Supported File Types

SDD - Spectral Dynamics Data

UFF - Universal File Format

STS - Time Stream

ASCII - Text File

SMS - Structural Measurement Systems

Conversion from SDD to:

UFF

ASCII

STS

SMS

MAT

I-DEAS

Conversion from UFF to:

SDD

Conversion from ASCII to:

SDD

STS

This online help is best viewed using Internet Explorer with text size 'smaller'.

Last updated on May 30, 2003

Copyright 2005 Spectral Dynamics Inc.


Main Window

This is the main window of Puma Export Manager.

Start by selecting the file type of your source file in the left drop down box as shown below under Source File Type. You will notice that the source and destination columns are filtered showing only applicable files used for the source and destination.

In the left column of the main window, browse through the system folders and select the source file as shown below under Source File.

Select the type of file you would like to convert your source file to as shown below under Output File Type.

In the Destination column, select the directory where you would like the converted file to be created. NOTE: If you select a file in the destination column it will be overwritten with the new converted data using the same file name.

When both the source file and destination have been specified, the convert file button [image] will be active. Press the button to begin the file conversion process.

Refresh: This button will refresh the file directory in the selected column (Source File or Destination). This is useful if a file has been moved or created while Puma Export Manager is running.

Creating a new folder: Under the main window select 'Browse' then 'Add Folder'. Type in the name of the new folder and press [OK]. A new folder will be created under the path where currently highlighted in either the source or destination columns.


SDD

Spectral Dynamics Data (SDD)

Spectral Dynamics Data (SDD): This is the file format used by the Puma Computer Aided Test Suite. An SDD file may contain one or multiple Frames. Each frame may contain one or more function types and with each function type there are associated channels.

An example of an SDD file as shown using Data Explorer


UFF

Universal File Format (UFF)

Universal File Format (UFF): A text file which contains data in a the universal format.

An example of a UFF file converted from an SDD using Puma Export Manager


STS

Previous topic (STS) - Spectral Dynamics Time Stream File Format

Note: The STS file type is subject to change. This document supports STS file types from Puma 4.0.

The STS file starts with a header defined as follows:

Data Type | Description
SCSI_FILE_HEADER | Header structure as defined below.
chanFlags[SD_MAX_CHANNELS]
Each of first 32 bytes corresponds to channel active flag with the first byte corresponding to channel 1, second to chan 2, etc. If byte is set to 1 then that channel was active during record, 0 indicates channel inactive.
dwLOR
Lines of Resolution
dwBandwidth
Bandwidth
dwBlocks
Total number of LBAs
tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year, tm_wday
Time struct members
dwDuration
Total stream file duration in seconds
dwSensitivity[SD_MAX_CHANNELS]
Sensitivity in mv/g
dwSampleCode
Sampling type code 0=Fixed, n=Ref chan num
dwExtra2
Reserved
dwOverSample
Represents the over-sample ratio
dwSampleRate
Sample rate
dwAppCode
Specifies which application generated this data:
#define REPL_CODE 666 (Road Simulation)
#define ANAL_CODE 13 (Analyzer)
#define ROTM_CODE 777 (Rotating Machinery)
dwVersionCode
Version number of file
dwdBReference[SD_MAX_CHANNELS]
Channel dB Reference value
dwChannel_Type[SD_MAX_CHANNELS]
Channel type defines:
#define CH_INACTIVE 0
#define CH_AUXILIARY 2
#define CH_REFERENCE 5
#define CH_REF_TACHO_CTR 7 (Spectral's Tacho Channel Card)
#define CH_REF_TACHO_DC 8 (Special DC input via input channel)
#define CH_REF_TACHO_XCROSS 9 (Tacho pulse stream via input channel)
dwStartofData_lba

The starting position of the data is specified in the SCSI_FILE_HEADER:

So if this value was 15, the data would start 15 LBAs into the file:

15(dwStartofData_lba) * 128(LBA_SIZE) * 4(long) = or 7680 bytes into the file.
dwTrackChan
Tracking channel if sample type equals tracked
dwEUOffset[SD_MAX_CHANNELS]
Floating engineering unit channel offsets
dwMarkerCount
dwMarkers[30]
iChan_DOF[SD_MAX_CHANNELS]
Encoded location # + Axis + Sense
unsigned long | Used for versioning. Any non-zero value specifies SCSI_FILE_CHAN_HEADER information is in header.
unsigned long | Used for versioning. Any non-zero value specifies SCSI_FILE_CHAN_HEADER information is in header.
SCSI_FILE_CHAN_HEADER | Channel header structure as defined below.

The data is arranged in a SCSI "stride" which is 2 (LBAs) x NumChannels in length. The data starts at the first active channel in 2 LBA blocks, then to the next active channel in 2 LBA blocks.

Example of the start of data with 3 channels active and a dwStartofData_lba = 15

LBA # | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22
Channel # (points) | Ch1 (1-128) | Ch1 (129-256) | Ch2 (1-128) | Ch2 (129-256) | Ch3 (1-128) | Ch3 (129-256) | Ch1 (257-384) | Ch1 (385-512)
Location (bytes) | 7680-7808 | 7809-7936 | 7937-8064 | 8065-8192 | 8193-8320 | 8321-8448 | 8449-8576 | 8577-8704

The data values are in volts. The user must convert these values to EU values by use of the sensitivity (mV/EU) and offset fields. Additionally, all data points and are stored as long (TI floats). The following conversions can be used to convert between TI and IEEE floats.

These header values are also stored as TI floats and must be converted to IEEE floats:

long dwSensitivity[SD_MAX_CHANNELS];
long dwExtra2;
long dwOverSample;
long dwSampleRate;
long dwdBReference[SD_MAX_CHANNELS];
long dwEUOffset[SD_MAX_CHANNELS];

TI to IEEE

#define SP_SIGN_BIT 0x00800000L
#define SP_POS_MASK 0x00ffffffL
#define SP_NEG_MASK 0xff000000L

double TI_IEEE_Convert(long number)
{

long man, exp;
man = number ^ SP_SIGN_BIT;

if(number & SP_SIGN_BIT)

man |= SP_NEG_MASK;

else

man &= SP_POS_MASK;

exp = (signed long)number >> 24;

if(exp != -128)

return(ldexp((double)man, (short)(exp - 23)));

return 0.0;

}

IEEE to TI

long IEEE_TI_Convert(float input)
{

long output, man;

union
{

float f;
long l;

} in;

in.f = input;
output = 0xFF800000L & in.l;
if(output & 0x80000000L)
{

output = output << 1;
man = 0x007FFFFFL & in.l;
if(man == 0)

output -= 0x01000000L;

else

output |= ((~man & 0x007FFFFFL) + 1);
output |= 0x00800000L;

}
else if(output == 0)

output = 0xFF000000L;

else

output += in.l;
output -= 0x7F000000L;

return output;

}

Structure of SCSI_FILE_HEADER

#define SD_MAX_CHANNELS 32

#define LBA_SIZE 128
#define LBA_COUNT 32
#define DATA_SIZE 4096

/* dwChannel_Type defines */
#define CH_INACTIVE 0
#define CH_AUXILIARY 2
#define CH_REFERENCE 5
#define CH_REF_TACHO_CTR 7 /* Spectral's Tacho Channel Card */
#define CH_REF_TACHO_DC 8 /* Special DC input via input channel */
#define CH_REF_TACHO_XCROSS 9 /* Tacho pulse stream via input channel */

/* dwChannel_Type defines */
#define CH_INACTIVE 0
#define CH_AUXILIARY 2
#define CH_REFERENCE 5
#define CH_REF_TACHO_CTR 7 /* Spectral's Tacho Channel Card */
#define CH_REF_TACHO_DC 8 /* Special DC input via input channel */
#define CH_REF_TACHO_XCROSS 9 /* Tacho pulse stream via input channel */

/* dwAppCode defines */
#define REPL_CODE 666
#define ANAL_CODE 13
#define ROTM_CODE 777

/*Size of Header - will need to be updated if variables are added to scsi header*/
/*SCSI_START_OF_DATA_LBA = 2 LBAs reserved for scsi + 2 longs for flags + scsiHeader size*/
#define SCSI_START_OF_DATA_LBA 15

typedef struct tagSCSI_FILE_HEADER
{

unsigned char chanFlags[SD_MAX_CHANNELS];
long dwLOR;
long dwBandwidth;
long dwBlocks;
long tm_sec;
long tm_min;
long tm_hour;
long tm_mday;
long tm_mon;
long tm_year;
long tm_wday;
long dwDuration; /*total stream file duration in seconds*/
long dwSensitivity[SD_MAX_CHANNELS];
long dwSampleCode; /*sampling type code 0=Fixed, n=Ref chan num */
long dwExtra2;
long dwOverSample;
long dwSampleRate;
long dwAppCode;
long dwVersionCode;
long dwdBReference[SD_MAX_CHANNELS];
long dwChannel_Type[SD_MAX_CHANNELS];
long dwStartofData_lba;
long dwTrackChan; /*Tracking Channel if Sample type==Tracked*/
long dwEUOffset[SD_MAX_CHANNELS]; /* Floating EU channel offsets */
long dwMarkerCount;
long dwMarkers[30];
long iChan_DOF[SD_MAX_CHANNELS]; /* Encoded location# + Axis + Sense */

} SCSI_FILE_HEADER;

Structure of SCSI_FILE_CHAN_HEADER

typedef struct
{

int nStatus; /* On or Off */
long lLocation;
long lDirection;

} SD_H2D_MSG_ANAL_DOF_CHAN;

typedef struct
{

int nNumInSet;
SD_H2D_MSG_ANAL_DOF_CHAN DOF_chans[SD_MAX_CHANNELS];

} SD_H2D_MSG_ANAL_DOF_CHAN_SET;

#define MAX_OPERATOR_NAME_LEN 20

typedef struct {

char strBaseLabel[MAX_OPERATOR_NAME_LEN + 1];
char strIntegratedLabel[MAX_OPERATOR_NAME_LEN + 1];
char strDblIntegratedLabel[MAX_OPERATOR_NAME_LEN + 1];
char strDifferentiatedLabel[MAX_OPERATOR_NAME_LEN + 1];
char strDblDifferentiatedBaseLabel[MAX_OPERATOR_NAME_LEN + 1];
float fBaseScale;
float fIntegratedScale;
float fDblIntegratedScale;
float fDifferentiatedScale;
float fDblDifferentiatedScale;
char strChanName[MAX_OPERATOR_NAME_LEN + 1];
long bChanActive;

} SD_H2D_MSG_EU_DATA;

typedef struct {

char strTachoName[MAX_OPERATOR_NAME_LEN + 1];
long bTachoActive;

} SD_H2D_MSG_TACHO_DATA;

typedef struct
{

SD_H2D_MSG_EU_DATA EU_Data[ SD_MAX_CHANNELS ];

} SD_H2D_MSG_EU_LABEL;

typedef struct
{

long bActive;
int nType;
char strSourceName[MAX_OPERATOR_NAME_LEN + 1];
float fMinimumRpm;
float fMaximumRpm;
float fPulsesPerRev;
int nChanSource;
int nProcess;
float fDcCal;
int nCoupling;
int nSlope;
float fTrigLevel;
int nLevelUpdate;
long bPreFilter;
long bSquaring;
int nTrigRange;
int nAvgPeriod;
int nTagScale;
float fTransRatio;
float fWheelDia;

} SCSI_FILE_RPM_SOURCE;

typedef struct tagSCSI_FILE_CHAN_HEADER
{

SD_H2D_MSG_ANAL_DOF_CHAN_SET DOF_chan_set;
SD_H2D_MSG_EU_LABEL EuLabel;
SCSI_FILE_RPM_SOURCE RPM_Data[SD_MAX_RPM_SOURCES];

} SCSI_FILE_CHAN_HEADER;

Copyright 2007 Spectral Dynamics Inc.


ASCII

Text File (ASCII)

Text File (ASCII): A text file with either X/Y or X data values. If X values are not present then the sampling rate must be given. Some ASCII files may also include header information such as filename and date. You must specify how many lines of text contain header information so that Puma Export Manager can skip those lines. Puma Export Manager will accept plots surrounded by brackets. Each plot must have a comma between the X and Y values.

An example of an ASCII file.


SMS

Structural Measurement Systems (SMS)

Structural Measurement Systems (SMS): This file format is used by the STAR system. In STAR, each measurement is stored in its own file; the filename is used to describe the measurement: e.g. 001X033Z.FRF would mean a Frequency Response Function excited at 1X with a response at 33Z.

The extension of the file describes the the following functions:

FRF | Frequency Response Function
COH | Coherence
CPS | Cross Power Spectrum
APS | Auto Power Spectrum
TIM | Time History
ASD | Auto Spectrum Density


Converting from SDD

When converting from an SDD file, a dialog will appear as shown below. The dialog displays each frame, function, and source of the data in the SDD file. See definition of SDD file type. Navigate through the tree control by left double clicking on the frame description and function name then right clicking on the name. In each of the conversions, you must select at least one [Frame/Function/Source] (each box must be checked). In the dialog below there are two [Frame/Function/Source] selected, [Frame 3973/Time Trace/Ch 1] and [Frame3973/PSD/Ch 1]. For SDDtoUFF conversions a command line can be used as well.

SDD conversion dialog

This button will selected every [Frame/Function/Source] in the data file.

This button will multi-select every similar frame or function type in the file when box is checked.

SDD to UFF

This option converts an SDD file into a UFF file. You may select one or all [Frame/Function/Source] data.

Using a command line (versions 1.4 and beyond) - Only supports SDD to UFF conversions at this time.
To run Puma Export Manager silently for single or batch conversions, a command line can be used. Create a shortcut to Puma Export Manager.exe and add the following syntax after the application target location:

"[Application shortcut target]" [command line] "[source file]" "[destination file]"

Command line options:
-sa (Run silently with log file)
-sw (Run silently overwriting log file each time)

Example: "C:\Program Files\Spectral Dynamics\Puma\Puma Export Manager.exe" -sa "c:\test.sdd" "c:\test.uff"

While running Puma Export Manager silently, it will not notify the user if the conversion was completed successfully. A log file "c:\SDDtoUFFlog.txt" will be created after each conversion. Using the command "-sw" will overwrite this log file each time a conversion takes place in order to minimize the size of the log file.

Multiple files can be converted using a MS-DOS Batch file (*.bat) using the same syntax as above. In order to run the batch files silently, add "@echo off" at the beginning of the batch file. Creating a shortcut to the batch file and setting it to run minimized can also be used.

SDD to ASCII

This option converts a frame of an SDD file into an ASCII file. Because of the limited nature of the ASCII file format, you may have only one [Frame/Function/Source] in each ASCII file generated. NOTE: In versions 1.33 and beyond (distributed with Puma 2.1), Puma Export Manager will automatically generate each [Frame/Function/Source] in it's own file in a created folder where the destination directory or file was selected. With earlier versions each [Frame/Function/Source] must be converted one at a time.

SDD to STS

This option converts an SDD file into an STS file. Because an STS file is a continuous time stream file, only frames of data which contain a time trace may be converted. You may notice some frames may not open up, this is because there was no time trace saved in that frame of data. Remember that each frame selected will be concatenated into a single stream in the order of each frame in the file.

SDD to SMS

This options converts an SDD into a SMS file type. This is for users who use Puma Analyzer and need to export their data into a STAR system.

SDD to MAT

This option converts an SDD file into an MATLAB Version 4 MAT-file format. For more information about MathWorks and their respective formats, go to www.mathworks.com.

SDD to I-DEAS

This option converts an SDD file into a MIS Systems AFU-file format. For more information about MTS and their respective formats, go to www.mts.com.


Converting from UFF

UFF to SDD: When converting from a UFF file to an SDD file, Puma Export manager will attempt to convert every frame of data that Puma supports. One of two dialogs will be shown when the conversion is complete as shown below.. Any unknown or bad records within the UFF file will simply be passed over and not included in the SDD conversion.

Successful conversion

Unknown or bad data received


Converting from ASCII

Previous topic Converting from ASCII

ASCII to SDD: This option will take an ASCII text file, with either X or X/Y values, and converts it into an SDD file which consists of 1 Time Trace frame.

Number of Points: This is the number of points that will be read from the ASCII file.

Number of Channels: This is how many channels are stored in the ASCII file. Puma Export Manager reads ASCII files from top to bottom therefore each channel of data must be in blocks. Example: If you specified the number of points in the file to be 1024 and number of channels to be 2, then the first 512 points of the file would consist of channel 1 data and the next block of 512 points would be channel 2 data.

Header Size: Number of lines at the top of the file which do not contain data points.

Sample Rate: You must specify the sample rate. If the text file contains X data, then the check box must be set so the application skips over the X data.

ASCII to STS: This options will convert an ASCII text file into an a STS file.

ASCII file Data

Header Size: Number of lines at the top of the file which do not contain data points.

Sample Rate: You must specify the sample rate. If the text file contains X data, then the check box must be set so the application skips over the X data.

Bandwidth: This is calculated by the software.

Number of Points: This is the number of points that will be read from the ASCII file.

Puma Data

Sample Rate: These are the supported sample rates by Puma.

Bandwidth: This is calculated by the software.

Scale Factor: An STS file is stored as a time trace so the data must be in G's. Enter a scale factor to multiply each point by, thus converting it to G's (1 = Data in G's).

Convert for Replication: Check this if using the data in Road Simulation, otherwise it is assumed that the data will be used in Analyzer.

Perform DC Removal: Check this to remove DC during signal processing.


Notice

The information in the help document is subject to change without notice.

SPECTRAL DYNAMICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS HELP MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Spectral Dynamics shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this help file.

This document contains proprietary information which is protected by copyright. All rights reserved. No part of this document may be copied or reproduced in any way without the written consent of Spectral Dynamics.

Copyright 2005 Spectral Dynamics Inc.

Microsoft Excel, Word, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries.