semvec/pypi-packages huggingface dataset:
oasis-gui 0.9.2
GUI for the Open Acquisition System for IEPE Sensors (OASIS)
Requires Python: >=3.11

# OASIS-GUI

![OASIS-GUI Screenshot](https://gitlab.com/oasis-acquisition/oasis-gui/-/raw/main/oasis_gui.png)

This Python package contains the GUI for interacting with the Open Acquisition System for IEPE Sensors (OASIS). 

## Installation

To install the OASIS-GUI through pip, use the following command:

`pip install oasis-gui`

## Opening the GUI

Open a terminal/command prompt with access to the Python PATH and type:

`oasis-gui`

## Currently supported boards

- OASIS-UROS Version 1.x
oasis-tui 1.0.2
TUI for the Open Acquisition System for IEPE Sensors (OASIS)
Requires Python: >=3.11

# OASIS Board TUI

A modern, cross-platform Terminal User Interface (TUI) for the **OASIS Board** — an open-source 8-channel, 18-bit data acquisition system for IEPE sensors.

This TUI enables interactive live data acquisition, device configuration, and offline postprocessing directly from your terminal. It works seamlessly over Serial, TCP/IP, and with SD card files.

---

## Features

* **Easy Serial and TCP Connection:**
  Auto-detect serial ports, select baudrate, or connect via network.
* **Interactive Acquisition:**
  Acquire data live, configure all acquisition parameters, enable triggering, oversampling, and sync modes.
* **Board Management:**
  Mute/unmute buzzer, toggle WiFi, show or set device info, all from an intuitive menu.
* **Offline Postprocessing:**
  Load and analyze SD card data without hardware connected.
* **Data Handling:**
  Plot acquired data, and export to HDF5 (`.h5`) or MATLAB (`.mat`) formats.

---

## Quick Start

### 1. **Install**

```bash
pip install oasis-tui
```

### 2. **Run the TUI**

```bash
oasis-tui
```

---

## Usage Overview

1. **Choose Connection Mode:**

   * Serial (local USB)
   * TCP (WiFi/network)
   * SD Card File Only (postprocessing)
2. **Device Connection:**

   * If Serial/TCP, select device and connect.
   * If SD Card, point to your `.OASISmeta` file.
3. **Main Actions:**

   * Acquire new data with full parameter control.
   * Write acquisition settings to device.
   * Adjust board settings (buzzer, WiFi, device info).
   * Load, plot, or export previously acquired data.

---

## Example Session

```
OASIS Board TUI (8-channel, 18-bit)
------------------------------------
? How would you like to work?  (Use arrow keys)
❯ Serial (live acquisition)
  TCP (live acquisition over network)
  SD Card File Only (postprocess, no device required)
```

* After connection, navigate the menu to acquire data, adjust settings, or export data.

---

## Typical Workflows

* **Live Acquisition:**

  1. Connect over serial or TCP.
  2. Set or write acquisition parameters.
  3. Acquire data and monitor progress.
  4. Plot or export results.

* **Offline Analysis:**

  1. Choose SD Card File Only mode.
  2. Load `.OASISmeta` file.
  3. Plot or export data.

---

## Device Compatibility

* **OASIS UROS**
whitenoise 6.11.0
Radically simplified static file serving for WSGI applications
Requires Python: >=3.9
Keywords: Django

==========
WhiteNoise
==========

.. image:: https://img.shields.io/readthedocs/whitenoise?style=for-the-badge
   :target: https://whitenoise.readthedocs.io/en/latest/

.. image:: https://img.shields.io/github/actions/workflow/status/evansd/whitenoise/main.yml.svg?branch=master&style=for-the-badge
   :target: https://github.com/evansd/whitenoise/actions?workflow=CI

.. image:: https://img.shields.io/badge/Coverage-96%25-success?style=for-the-badge
   :target: https://github.com/evansd/whitenoise/actions?workflow=CI

.. image:: https://img.shields.io/pypi/v/whitenoise.svg?style=for-the-badge
   :target: https://pypi.org/project/whitenoise/

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge
   :target: https://github.com/psf/black

.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge
   :target: https://github.com/pre-commit/pre-commit
   :alt: pre-commit

**Radically simplified static file serving for Python web apps**

With a couple of lines of config WhiteNoise allows your web app to serve its
own static files, making it a self-contained unit that can be deployed anywhere
without relying on nginx, Amazon S3 or any other external service. (Especially
useful on Heroku, OpenShift and other PaaS providers.)

It's designed to work nicely with a CDN for high-traffic sites so you don't have to
sacrifice performance to benefit from simplicity.

WhiteNoise works with any WSGI-compatible app but has some special auto-configuration
features for Django.

WhiteNoise takes care of best-practices for you, for instance:

* Serving compressed content (gzip and Brotli formats, handling Accept-Encoding
  and Vary headers correctly)
* Setting far-future cache headers on content which won't change

Worried that serving static files with Python is horribly inefficient?
Still think you should be using Amazon S3? Have a look at the `Infrequently
Asked Questions`_.

To get started, see the documentation_.

.. _Infrequently Asked Questions: https://whitenoise.readthedocs.io/en/stable/#infrequently-asked-questions
.. _documentation: https://whitenoise.readthedocs.io/en/stable/
oasis-api 3.0.2
Python API for the Open Acquisition System for IEPE Sensors (OASIS)
Requires Python: >=3.11

# OASIS Board Python Package

Used in the following packages:
- oasis-gui
- oasis-tui

```
                    +-------------------+
                    |     oasis-api     |
                    |  (Python library) |
                    +-------------------+
                             ^
         +-------------------+---------------------+
         |                   |                     |
  +----------------+   +----------------+   +----------------+
  |   oasis-cli    |   |   oasis-tui    |   |   oasis-gui    |
  | (flags & args) |   | (guided menus) |   | (desktop/web)  |
  +----------------+   +----------------+   +----------------+
```

## HDF5 File Format for OASIS Measurements

### **Overview**

Measurement data is stored in [HDF5](https://www.hdfgroup.org/solutions/hdf5/) files in a **tidy data** format, making it easy to analyze, visualize, and share.

### **Structure**

* The main dataset is stored at the root as `/data`.
* The file contains **attributes** describing metadata and the measurement setup.

#### **Data Table: `/data`**

* Shape: `(N, )` where `N = number of channels × number of time points`
* Each row represents a single observation:

  * **channel**: Integer (1–8), channel number
  * **time**: Float (seconds), timestamp of the sample
  * **voltage**: Float (volts), measured voltage value

Example (first few rows):

| channel | time    | voltage |
| ------- | ------- | ------- |
| 1       | 0.00000 | 0.0324  |
| 1       | 0.00100 | 0.0451  |
| ...     | ...     | ...     |
| 8       | 9.99900 | 0.0078  |

* **Units:**

  * The `voltage` column has the attribute `unit = "V"`

#### **File Attributes (Metadata)**

* `duration_s`: Duration of acquisition (in seconds)
* `sampling_frequency_hz`: Sampling frequency (in Hz)
* `voltage_ranges`: Array of voltage ranges for each channel (in volts)
* `voltage_ranges_unit`: `"V"`
* `channels`: Number of channels (typically 8)
* `tidy_format`: Description of the tidy layout

#### **Why Tidy Data?**

* **Each variable forms a column:** channel, time, voltage
* **Each observation forms a row:** one reading from one channel at one time
* **Each type of observational unit forms a table:** all data is in `/data`
* This format makes the data easy to filter, aggregate, and visualize in Python (Pandas), R, MATLAB, etc.

---

### **How to Read the File (Python Example)**

```python
import h5py
import numpy as np

with h5py.File("measurement.h5", "r") as f:
    data = f["data"][:]
    print("Fields:", data.dtype.names)  # ('channel', 'time', 'voltage')
    print("First row:", data[0])
    print("Sampling frequency:", f.attrs["sampling_frequency_hz"])
    print("Voltage ranges:", f.attrs["voltage_ranges"])
```

---

### **Viewing**

* Use [HDFView](https://www.hdfgroup.org/downloads/hdfview/) or Vitables to inspect your data and metadata visually.