Skip to content
Snippets Groups Projects
Commit daa80bd6 authored by Christian Darsow-Fromm's avatar Christian Darsow-Fromm
Browse files

Resolve "Better Readme"

parent 8484d84a
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,13 @@ ...@@ -2,7 +2,13 @@
[run] [run]
branch = True branch = True
source = nqontrol source = nqontrol
omit = run.py omit =
*run.py
*nqontrolUI.py
*controller.py
*mockAdwin.py
*errors.py
*settings_local.py
[paths] [paths]
source = source =
......
stages: stages:
- build
- test - test
- build
- build-test
- deploy - deploy
- deploy-test - deploy-test
...@@ -50,10 +51,12 @@ pages: ...@@ -50,10 +51,12 @@ pages:
expire_in: 30 days expire_in: 30 days
only: only:
- develop - develop
- master
- tags
test wheel installation: test wheel installation:
image: lasnq/nqontrol:lib image: lasnq/nqontrol:lib
stage: test stage: build-test
before_script: before_script:
- echo 'DEVICES_LIST = [0]' > src/nqontrol/settings_local.py - echo 'DEVICES_LIST = [0]' > src/nqontrol/settings_local.py
script: script:
......
# ReadMe # ReadMe
[![pipeline status](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/develop/pipeline.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/develop) [![pipeline status](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/master/pipeline.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/master)
[![coverage report](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/develop/coverage.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/develop) [![coverage report](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/master/coverage.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/master)
`NQontrol` is a python project aiming the replacement of analog PID controllers in the lab.
The project is a solution based on the ADwin real-time platform that is able to deliver in excess of 8 simultaneous locking loops running with 200 kHz sampling frequency, and offers five second-order filtering sections per channel for optimal control performance.
This Python package, together with a web-based GUI, makes the system easy to use and adapt for a wide range of control tasks in quantum-optical experiments.
## Documentation ## Documentation
For more information please read the online documentation:
* Current documentation of the [latest release](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol) * Current documentation of the [latest release](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol)
* Current documentation of the [latest development version](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol-stage) * Current documentation of the [latest development version](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol-stage)
TODO
## NQontrol Installation ## NQontrol Installation
For installation please refer to the [documentation page](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol/install.html) For installation please refer to the [documentation page](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol/install.html)
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
nqontrol nqontrol
======== ========
This is the documentation of **nqontrol**. This is the documentation of **NQontrol**.
nqontrol is a python project aiming the replacement of analog PID controllers in the lab. NQontrol is a Python project aiming the replacement of analog PID controllers in the lab.
Read the :doc:`Introduction <intro>` for more information on the system. Read the :doc:`Introduction <intro>` for more information on the system.
...@@ -12,16 +12,26 @@ Contents ...@@ -12,16 +12,26 @@ Contents
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Usage
Introduction <intro> Introduction <intro>
Installation <install> Installation <install>
Basic Usage <usage> Basic Usage <usage>
Graphical User Interface <gui> Graphical User Interface <gui>
Configuration <configuration> Configuration <configuration>
System Performance and Measurements <performance>
.. toctree::
:maxdepth: 2
:caption: Development
Api Documentation <apidoc> Api Documentation <apidoc>
Development Documentation <documentation> Development Documentation <documentation>
Concept for realtime plotting <plotting_concept>
.. toctree::
:maxdepth: 2
:caption: System and more
System Performance and Measurements <performance>
Authors <authors> Authors <authors>
......
# Introduction # Introduction
`nqontrol` is a python project aiming the replacement of analog PID controllers in the lab. `NQontrol` is a python project aiming the replacement of analog PID controllers in the lab.
## System Description ## System Description
......
# Concept for Realtime Plotting of a Servo
This concept was to develop a structured plotting scheme and was not updated after implementing it.
So it might be useful to understand the implementation, but it isn't completely correct.
## User Story
### Terminal
#### Ramp
* Start a ramp with some parameters.
* The parameters will be saved in the object.
* Possible to reenable the same ramp.
* Extra parameter to start saving data to fifo.
#### Continuous Data
* Enable the fifo data and define the interval.
* Start the plotting (maybe only one command?)
#### Realtime Plotting
* Enable plotting with the defined interval.
* _Optional: Ability to change parameters while plotting._
### Dash
TODO
## Implementation
### Take Data
* Take number of requested entries for all 3 channels, max the size of the current adwin buffer.
* Return as a `DataContainer`.
### Prepare continuous Data
* Take number of entries of the fifo buffer.
* Delete oldest entries to stay at `maxlen`.
### Prepare ramp Data
* Take data.
* Find the first entry in `output` that contains the minimum value.
* Save the data from that index on and fill up with new taken data.
* Wait a time that it should be filled.
* Request number of data to fill.
* Local value of `maxlen` should not be larger than the fifo buffer size of adwin to avoid the need of looping.
### Update the Graph
* Take periodically the data and update the graph.
* Period is automatically calculated:
* Sleep a time to fill half of the fifo buffer.
`TODO` How much can we increase it?
* Maximal resulting framerate should be about 30 Hz.
### Triggering the Ramp
The output of the ramp on ADwin is based on a digital calculation.
Therefore it is absolutely reproducible without any variances.
#### Find the precice Value of the Minimum
Take data of at least a whole ramp and find the minimum.
* Need a saving frequency that matches to the current ramp.
* Check that the precice value of the minimum is nearly the negative ramp amplitude.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment