Skip to main content

Command and Real-time Acquisition Parallelized in Python

Project description

Overview

CRAPPY is an acronym and stands for Command and Real-time Acquisition in Parallelized PYthon.

Crappy is developed at the LaMCube, a mechanical research laboratory based in Lille, France to provide a powerful and easy-to-use framework for materials testing.

In order to understand the mechanical behaviour of materials, we tend to perform tests with more and more sensors and actuators from various suppliers. There’s thus an increasing need to drive these devices in a synchronized way while managing the high complexity of the setups.

As we are one step ahead of industrials, the commercially available testing solutions may also not be well-suited to our objectives. Custom software solutions thus need to be developed in order to further improve our tests.

These are the original purposes of Crappy : providing a framework for controlling tests and driving hardware in a synchronized and supplier-independent software environment.

Key features of Crappy

To this end, choices were made that are now keys to our framework:

  • open-source : It is important for us that everyone can use our work, and bring its own code to the world.

  • modular : We provide a software basis that can easily be extended to drive new hardware and perform custom operation on data.

  • simple : Python has been chosen for its high level. We are not developers, and neither are our users, so we cannot afford to use a low-level programming language. We work with typical loop time of more than 1 millisecond (10ms most of the time), and Python is enough for that. It is also pretty easy to add a small piece of C/C++ to the Python code if a speedup is needed.

  • performance : A great deal of work is made to ensure the performance of the framework. Most tests require a good repeatability and stability, and may become hazardous in case of non-handled issue.

  • parallelization : The key to a good test is the synchronisation between the different sensors. This is why we chose to massively parallelize our framework, ensuring every device can run simultaneously in a same time basis. This is also one of the major difficulties we have to deal with in Python.

Is Crappy for me ?

Although it was originally designed for driving mechanical tests, Crappy has acquired the flexibility to adapt to other domains as well. Pretty much any device communicating over USB, serial, SPI or I2C can be integrated within the framework, making it suitable for many fields !

So Crappy is the right solution for you if :

  • You want to drive sensors and actuators in a synchronized and parallelized way.

  • You want a modular solution in which you can easily add new hardware, functions and write your own test protocols.

  • You don’t want to bother coding in a low-level language.

  • You want to remain independent from commercial software environments.

As Crappy’s scope is well-defined, there are also situations in which Crappy won’t be able to help you. So Crappy is NOT for you if :

  • You need to acquire data or drive actuators at frequencies greater than 500Hz.

  • Your devices cannot be driven without using proprietary software and such software cannot interface with other programs on the computer.

  • You don’t want to code in Python (you should really give it a try, it’s great and easy to learn :) )

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

crappy-1.5.7.tar.gz (11.2 MB view details)

Uploaded Source

Built Distribution

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

crappy-1.5.7-py3-none-any.whl (677.6 kB view details)

Uploaded Python 3

File details

Details for the file crappy-1.5.7.tar.gz.

File metadata

  • Download URL: crappy-1.5.7.tar.gz
  • Upload date:
  • Size: 11.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.8.10

File hashes

Hashes for crappy-1.5.7.tar.gz
Algorithm Hash digest
SHA256 58975ced529d773b4ee20df04fd01cc17ab3d7751ba257945bdbc4b901ee25aa
MD5 a7737d3b62d7dfff6ad4c3ce9e7b74c9
BLAKE2b-256 2f19d934ef8a70dc0913541322f9780c4decae1e1016cb68ca402a107182c46e

See more details on using hashes here.

File details

Details for the file crappy-1.5.7-py3-none-any.whl.

File metadata

  • Download URL: crappy-1.5.7-py3-none-any.whl
  • Upload date:
  • Size: 677.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.8.10

File hashes

Hashes for crappy-1.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b727bf2a641f72eae880a49d940ce25243d0759f821d5eefadf072cc1d79c9bb
MD5 c46a6244d3a9ec38a176cfb460a34331
BLAKE2b-256 c8116cffbc0677bdeebaaea97d6dc50d4c0e3eafaca0b6eef63d6e41603ea230

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