Neoplastic Plasma Medusa

    pico-sdk
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.4 • Public • Published

    pico-sdk

    High performance, gap-free streaming from any Pico Technology oscilloscope.

    Note: This is not an official Pico Technology package

    This package wraps all current Pico oscilloscope drivers in a high-level, common API written in Rust. This API is compiled to native code and exposed to Node through simple C bindings.

    Supported platforms

    Node.js >= 12 on:

    • Windows (32/64bit)
    • macOS (64bit)
    • Linux (64bit)
    import { PicoDevice } from 'pico-sdk';
     
    // List the available Pico devices using locally installed Pico SDKs
    const devices = await PicoDevice.enumerate();
    console.log('Discovered devices:', devices);
     
    // Open the only connected device using locally installed Pico SDKs
    const device = await PicoDevice.open();
    // Open a specific device by serial number using locally installed Pico SDKs
    const device = PicoDevice.open('ABC/123');
    // Open a device by serial number and automatically download missing drivers
    const device = PicoDevice.open('ABC/123', true);
     
    // Get device details
    console.log('Device variant:', device.variant);
    console.log('Device serial:', device.serial);
    const ranges = device.getChannelRanges('A');
    console.log('Valid ranges for channel A: ', ranges);
     
    // String case and white space are ignored
    device.enableChannel('A', '200mV');
    device.enableChannel('b', '20 v', 'dc');
     
    device.setCallback((data) => {
      // Callback data is Map<string, Float32Array> containing an entry
      // for each channel and values in volts
      console.log('Received streaming data...');
      data.forEach((samples, ch) => {
        console.log(`Channel ${ch} has ${samples.length} samples`);
      });
    });
     
    const samplesPerSecond = await device.startStreaming(1_000_000);
     
    console.log(`Started streaming with ${samplesPerSecond} samples per second`);
     
    // Wait here and handle data capture...
     
    device.stopStreaming();
     
    // The device should be closed after use to avoid memory leaks
    device.close();

    Keywords

    none

    Install

    npm i pico-sdk

    DownloadsWeekly Downloads

    2

    Version

    0.1.4

    License

    MIT

    Unpacked Size

    3.96 MB

    Total Files

    28

    Last publish

    Collaborators

    • timfish