Metadata-Version: 2.4
Name: epc-tofcam-toolkit
Version: 0.6.1
Summary: Toolkit for ESPROS TOFcam's
Author-email: Armin Kessler <ake@espros.com>, Matthias Mullis <mmu@espros.com>, Niluka Piyasinghe <npi@espros.com>, Silvio Honegger <sho@espros.com>
License: MIT License
        
        Copyright (c) [2024] [ESPROS Photonics Corporation]
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Project-URL: Homepage, https://www.espros.com
Project-URL: Documentation, https://epc-tofcam-toolkit.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/espros/epc-tofcam-toolkit
Keywords: TOF,TOFcam,ESPROS,EPC,Toolkit,pointcloud,3D,time of flight,TOF camera
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=2.0.0
Requires-Dist: opencv-python>=4.10.0.84
Requires-Dist: pyserial>=3.5
Requires-Dist: scipy>=1.14.1
Requires-Dist: h5py
Provides-Extra: gui
Requires-Dist: PySide6!=6.9.1,>=6.8.1; extra == "gui"
Requires-Dist: pyqtgraph>=0.13.7; extra == "gui"
Requires-Dist: PyQtDarkTheme-fork==2.3.4; extra == "gui"
Requires-Dist: qtconsole>=5.6.1; extra == "gui"
Requires-Dist: ipython>=8.30.0; extra == "gui"
Requires-Dist: pyopengl>=3.1.7; extra == "gui"
Requires-Dist: matplotlib>=3.10.0; extra == "gui"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: tox>=4; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Dynamic: license-file

<div align="center">
<img src="https://raw.githubusercontent.com/espros/epc-tofcam-toolkit/master/docs/source/images/epc-logo.png" width="300">
</div>

# ESPROS TOFcam Toolkit
The ESPROS TOFcam Toolkit is designed to control and visualize ESPROS TOFcam devices.
It provides python modules for most TOFcam modules and GUI applications for interactive control and visualization.

Website: https://www.espros.com  
Products: https://www.digikey.com/en/supplier-centers/espros  
Documentation: https://epc-tofcam-toolkit.readthedocs.io/en/latest/  
Source code: https://github.com/espros/epc-tofcam-toolkit


<img src="https://raw.githubusercontent.com/espros/epc-tofcam-toolkit/master/docs/source/images/gui660_pointcloud.png" width="800">

## Quick-start
install the package using pip
```bash
pip install epc-tofcam-toolkit
```

Connect and startup the camera. Then simply run the gui with: 
```bash 
tofcam660
tofcam635
tofcam611
tofrange611
```
- TOFcam660 will try to connect to ip-address 10.10.31.180
- TOFcam635 will try to find the com port automatically
- TOFcam611 will try to find the com port automatically

You can also manually specify the communication port
```bash 
tofcam660 --ip 10.10.31.180
tofcam635 --port COM3
tofcam611 --port COM3
tofrange611 --port COM3
```

## Installation for development

Clone this repository and cd into it.

### 1. Create and activate a virtual environment

```bash
python -m venv .venv

# linux / macOS
source .venv/bin/activate

# windows
.\.venv\Scripts\activate
```

### 2. Install modules and dependencies

All dependencies are managed using the `pyproject.toml` and installed via `pip`. Choose the install option that fits your use case:

**Option A — Core API**:

Install only the epc-tofcam-toolkit API and dependencies to control the camera.

```bash
pip install -e .
```

**Option B — Core API & Full development environment inlcuding the GUI**:
```bash
pip install --editable ".[dev,gui,doc]"
```

Installs the full development environment and all dependency groups:

| Group | Purpose |
|-------|---------|
| `gui` | Required to run the GUI applications |
| `dev` | Required for testing and type checking |
| `doc` | Required for compiling documentation |
