Skip to main content

naneos particle solutions gmbh python backend

Project description

naneos-devices

GitHub Issues GitHub Pull Requests Ruff License

Projektlogo

This repository contains a collection of Python scripts and utilities for our naneos particle solutions measurement devices. These scripts will provide various functionalities related to data acquisition, analysis, and visualization for your measurement devices.

Installation

You can install the naneos-devices package using pip. Make sure you have Python 3.10 or higher installed. Open a terminal and run the following command:

pip install naneos-devices

Usage

To establish a serial connection with the Partector2 device and retrieve data, you can use the following code snippet as a starting point:

import time

from naneos.partector import Partector1, Partector2, Partector2Pro, scan_for_serial_partectors

PROD_NAMES = ["P1", "P2", "P2pro"]

# Lists all available Partector devices
partectors = scan_for_serial_partectors()
# print eg.: {'P1': {}, 'P2': {8112: '/dev/cu.usbmodemDOSEMet_1'}, 'P2pro': {}, 'P2proCS': {}}
print(partectors)

for prod in PROD_NAMES:
    if len(partectors[prod]) > 0:
        for k, v in partectors[prod].items():
            print(f"Found {prod} wit serial number {k} on port {v}")
            if prod == "P1":
                dev = Partector1(serial_number=k)
            elif prod == "P2":
                dev = Partector2(serial_number=k)
            elif prod == "P2pro":
                dev = Partector2Pro(serial_number=k)
            else:
                raise ValueError(f"Unknown product name: {prod}")

            df = dev.get_data_pandas()
            max_wait_time = time.time() + 15
            while df.empty and time.time() < max_wait_time:
                time.sleep(0.5)
                df = dev.get_data_pandas()

            print(df)
            dev.close()

Make sure to modify the code according to your specific requirements. Refer to the documentation and comments within the code for detailed explanations and usage instructions.

Documentation

The documentation for the naneos-devices package can be found in the package's documentation page.

Protobuf

Use this command to create a py and pyi file from the proto file

protoc -I=. --python_out=. --pyi_out=. ./protoV1.proto 

Testing

I recommend working with uv. Testing with the local python venv in vscode GUI or with:

uv run --env-file .env pytest

Testing every supported python version:

nox -s tests

Building executables

Sometimes you want to build an executable for a customer with you custom script. The build must happen on the same OS as the target OS. For example if you want to build an executable for windows you need to build it on Windows.

pyinstaller demo/p1UploadTool.py  --console --noconfirm --clean --onefile

Ideas for future development

  • P2 BLE implementation that integrates into the implementation of the serial P2
  • P2 Bidirectional Implementation that allows to send commands to the P2
  • Automatically activate Bluetooth or ask when BLE is used

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvements, please submit an issue on the issue tracker.

Please make sure to adhere to the coding style and conventions used in the repository and provide appropriate tests and documentation for your changes.

License

This repository is licensed under the MIT License.

Contact

For any questions, suggestions, or collaborations, please feel free to contact the project maintainer:

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

naneos_devices-1.0.62.tar.gz (107.0 kB view details)

Uploaded Source

Built Distribution

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

naneos_devices-1.0.62-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file naneos_devices-1.0.62.tar.gz.

File metadata

  • Download URL: naneos_devices-1.0.62.tar.gz
  • Upload date:
  • Size: 107.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.2

File hashes

Hashes for naneos_devices-1.0.62.tar.gz
Algorithm Hash digest
SHA256 862241912e55e805d01b899956b243b2ad33b6bd85172a16ef0d95ccd0ac99fa
MD5 e35b378f9d3fb45a565ab1eddc893f27
BLAKE2b-256 167983c70653a1a78b82e44d264b271db9e694d0f715bff9856aecb87b889bc2

See more details on using hashes here.

File details

Details for the file naneos_devices-1.0.62-py3-none-any.whl.

File metadata

File hashes

Hashes for naneos_devices-1.0.62-py3-none-any.whl
Algorithm Hash digest
SHA256 c2e6e49983a35bc5e98377daf05071ebc92ec30380f97a727e9e836f30d7826f
MD5 b52710a53318d7eed491d5c43efbf84f
BLAKE2b-256 dc16be0752a10ed77de73282a70ccc583e55084f0e2ee7d4a4ab1499f9d2d493

See more details on using hashes here.

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