Skip to main content

Python API for VibrationVIEW software

Project description

VibrationVIEW Python API

A Python API wrapper for interfacing with Vibration Research Corporation's VibrationVIEW software.

Source Code: https://github.com/vibrationresearch/vibrationview-api

Overview

This package provides a thread-safe Python interface to VibrationVIEW, allowing for:

  • Test automation and control (start, stop, pause, resume)
  • Data acquisition and analysis (vectors, report fields, time history)
  • Window management
  • Channel configuration and calibration
  • Input/output monitoring
  • TEDS (Transducer Electronic Data Sheet) support
  • Transducer database integration
  • Virtual channel management
  • Recording control
  • Specialized test controls (e.g., sine sweep functions)
  • Multi-threaded application support (Flask, web services)

The API wraps the COM interface provided by VibrationVIEW to enable seamless integration with Python scripts and applications.

Installation

pip install vibrationview-api

Note:

  • Version 0.1.6 supports VibrationVIEW 2018-2025
  • Version 0.1.7+ includes VibrationVIEW 2026 functionality

Requirements

  • Windows operating system (compatible with Windows 10 and Windows 11)
  • VibrationVIEW software installed
  • VibrationVIEW automation option (VR9604) - OR - VibrationVIEW may be run in Simulation mode without any additional hardware or software
  • Python 3.7 or higher
  • pywin32 (automatically installed as a dependency)

Quick Start

from vibrationviewapi import VibrationVIEW

# Test basic functionality
try:
    # Connect to VibrationVIEW
    vv = VibrationVIEW()
    
    # Print connection status
    if vv.vv is None:
        print("Failed to connect to VibrationVIEW")
    else:
        print("Connected to VibrationVIEW")
        
        # Get software version
        version = vv.GetSoftwareVersion()
        print(f"VibrationVIEW version: {version}")
        
        # Get hardware info
        input_channels = vv.GetHardwareInputChannels()
        output_channels = vv.GetHardwareOutputChannels()
        print(f"Hardware: {input_channels} input channels, {output_channels} output channels")
        
except Exception as e:
    print(f"Error: {e}")
finally:
    # Clean up resources
    if 'vv' in locals() and vv is not None:
        vv.close()
        print("Connection closed")

Key Features

Test Control

  • Open, start, stop, pause, and resume tests
  • Run and edit tests from specified file paths
  • Monitor test status (running, starting, changing level, hold, open loop, aborted)
  • Close tests by name or tab index
  • List all open tests

Data Acquisition

  • Retrieve vector data (time history, frequency, waveform)
  • Get channel, control, demand, and output readings
  • Access vector properties (units, labels, length)
  • Report fields and vectors with history support
  • Rear input monitoring

Window Management

  • Minimize, maximize, restore, and activate application windows
  • Send menu commands programmatically

Channel Configuration

  • Read and configure channel settings
  • Input calibration (sensitivity, serial number, calibration date)
  • Configure input modes (power source, capacitor coupled, differential)
  • Hardware capability queries
  • Load input configuration files

TEDS Support

  • Read TEDS data from hardware
  • Verify and apply TEDS data
  • Lookup transducers by URN (Unique Registration Number)

Transducer Database

  • Query channel database IDs
  • Retrieve transducer database records
  • Check and update channel configuration from database

Virtual Channels

  • Import virtual channel definitions from VCHAN files
  • Remove all virtual channels

Recording

  • Start, stop, and pause recordings
  • Retrieve recording filenames

Sine-Specific Functions

  • Control sweep direction (up/down, step up/down)
  • Hold at current frequency or resonance
  • Control sweep rate multiplier and amplitude multiplier
  • Get/set sine frequency

System Check

  • Configure system check frequency
  • Set system check output voltage

Thread Safety

  • Thread-safe COM object management
  • Connection pooling for web applications
  • Context manager support for easy resource cleanup

API Documentation

For detailed documentation of all available methods, refer to the VibrationVIEW help file included with the software. The latest version of VibrationVIEW can be downloaded from: VibrationVIEW Download

Examples

Running a Sine Test and Recording Data

from vibrationviewapi import VibrationVIEW
import time

# Connect to VibrationVIEW
vv = VibrationVIEW()

# Wait for VibrationVIEW to be ready
while not vv.IsReady():
    time.sleep(0.5)

# Open a sine test
vv.OpenTest("C:\\VibrationVIEW\\Profiles\\sine_sweep.vsp")

# Start the test
vv.StartTest()

# Start recording
vv.RecordStart()

# Let test run for 30 seconds
time.sleep(30)

# Stop recording
vv.RecordStop()

# Get the recording filename
recording_file = vv.RecordGetFilename()
print(f"Recording saved to: {recording_file}")

# Stop the test
vv.StopTest()

Accessing Channel Information

from vibrationviewapi import VibrationVIEW
import time

# Connect to VibrationVIEW
vv = VibrationVIEW()

# Wait for VibrationVIEW to be ready
while not vv.IsReady():
    time.sleep(0.5)

# Get number of hardware channels
num_channels = vv.GetHardwareInputChannels()
print(f"Hardware has {num_channels} input channels")

# Print information for each channel
for i in range(num_channels):
    channel_num = i + 1  # 1-based for display
    label = vv.ChannelLabel(i)
    unit = vv.ChannelUnit(i)
    sensitivity = vv.InputSensitivity(i)
    
    print(f"Channel {channel_num}:")
    print(f"  Label: {label}")
    print(f"  Unit: {unit}")
    print(f"  Sensitivity: {sensitivity}")
    
    # Try to get TEDS information if available
    teds_info = vv.Teds(i)
    if teds_info and len(teds_info) > 0 and isinstance(teds_info[0], dict) and "Teds" in teds_info[0]:
        print(f"  TEDS data available: {len(teds_info[0]['Teds'])} entries")

Retrieving Report Fields

from vibrationviewapi import VibrationVIEW
import time

# Connect to VibrationVIEW
vv = VibrationVIEW()

# Wait for VibrationVIEW to be ready
while not vv.IsReady():
    time.sleep(0.5)

# Open a test file
vv.OpenTest("C:\\VibrationVIEW\\Profiles\\sine_sweep.vsp")

# Get report fields - returns 2D array of (parameter, value) pairs
field_names = "ChName1,ChAcp1,ChSensitivity1,StopCode,TestType"
fields = vv.ReportFields(field_names, None)

# Print each field
for field in fields:
    print(f"{field[0]}: {field[1]}")

Retrieving Report Vectors

from vibrationviewapi import VibrationVIEW
import time

# Connect to VibrationVIEW
vv = VibrationVIEW()

# Wait for VibrationVIEW to be ready
while not vv.IsReady():
    time.sleep(0.5)

# Open a test file
vv.OpenTest("C:\\VibrationVIEW\\Profiles\\sine_sweep.vsp")

# Start and run the test to generate data
vv.StartTest()
time.sleep(5)
vv.StopTest()

# Get report vectors - comma-separated list of vector names
vector_names = "Index,Frequency,Demand,Control,Drive,Channel1,Channel2"
vectors = vv.ReportVector(vector_names, None)

# Get vector headers (column names and units)
headers = vv.ReportVectorHeader(vector_names, None)
column_names = headers[0]  # First row contains column names
units = headers[1]         # Second row contains units

# Print headers
for i, name in enumerate(column_names):
    print(f"{name} ({units[i]})")

# Print first few data rows
for row in vectors[:5]:
    print(row)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibrationview_api-0.1.15.tar.gz (64.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibrationview_api-0.1.15-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file vibrationview_api-0.1.15.tar.gz.

File metadata

  • Download URL: vibrationview_api-0.1.15.tar.gz
  • Upload date:
  • Size: 64.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vibrationview_api-0.1.15.tar.gz
Algorithm Hash digest
SHA256 ab5cf0f23c326a836ad592b85a18b517f1fd3828d6a5b91b22accf5612c926b6
MD5 18967a63c2e9ddd3b4b1e426021543e5
BLAKE2b-256 d3ba4c48184081e1cc0056414eff39de0417662c68254406a111c76c66d1f934

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibrationview_api-0.1.15.tar.gz:

Publisher: workflow.yml on VibrationResearch/vibrationview-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vibrationview_api-0.1.15-py3-none-any.whl.

File metadata

File hashes

Hashes for vibrationview_api-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 dc1961baa9235f4d441e8fb94ecf1127e7d209235b0ac29ec6ab205d47e7f241
MD5 58b08081a6525008054fa12ea3969a9c
BLAKE2b-256 8de4f59fe92703407606a88b7dceac5006ec0f8d0a5ea069984e4e1493b13c7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibrationview_api-0.1.15-py3-none-any.whl:

Publisher: workflow.yml on VibrationResearch/vibrationview-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page