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.12.tar.gz (64.2 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.12-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vibrationview_api-0.1.12.tar.gz
  • Upload date:
  • Size: 64.2 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.12.tar.gz
Algorithm Hash digest
SHA256 63b8010a956958c7ed455e95bdaed44f56a04a348265c06c69cf0247fffbfb4e
MD5 8303deb1bebf87919139874ab6fcebf7
BLAKE2b-256 18477fc0edc1172dd708e4f76e0f5dce0439f23b628cb40af7daf2e81bf0868b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibrationview_api-0.1.12.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.12-py3-none-any.whl.

File metadata

File hashes

Hashes for vibrationview_api-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 4a59fc3a3385983fac86ca8f8928b2e5ad3b9539d4753157d82fa27c784d311a
MD5 8f624137a3e4c87a0bc10ce7aa408c62
BLAKE2b-256 b42e6257c158ee20593f9f7c078171e15f7805aa69eec73b979fd89de4521712

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibrationview_api-0.1.12-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