A set of APIs to Light Conversion devices
Project description
lightcon
Installation
Pip
pip install lightcon
-->
Modules
lightcon.beam_alignment
Beam Alignment App REST client
lightcon.common
Tools and converters
lightcon.laser_clients
REST API clients for PHAROS and CARBIDE lasers
Example:
from lightcon.laser_clients import Pharos
import time
pharos = Pharos('192.168.8.113')
pp_ratio = pharos.get_pp()
print("Pulse picker ratio: {:d}".format(pp_ratio))
target_pp_ratio = pp_ratio + 1
print("Setting pulse picker to PP={:d}...".format(
target_pp_ratio), end='', flush=True)
pharos.set_pp(target_pp_ratio, blocking=True)
print("OK", flush=True)
print("Setting pulse picker to PP={:d}...".format(pp_ratio), end='', flush=True)
pharos.set_pp(pp_ratio, blocking=True)
print("OK", flush=True)
print("Enabling laser output...")
pharos.enable_output()
print("Waiting for 3s...")
time.sleep(5)
print("Disabling laser output...")
pharos.close_output()
Output:
Pharos initialized at http://192.168.8.113:20020/v1/
Pulse picker ratio: 1
Setting pulse picker to PP=2...OK
Setting pulse picker to PP=1...OK
Enabling laser output...
Waiting for 3s...
Disabling laser output...
lightcon.harpia
HARPIA Service App REST client
lightcon.fast_daq
Interface to the fast single-channel DAQ (E13-10023-02 or newer) DLL wrapper Example:
import lightcon.fast_daq
fdw = lightcon.fast_daq.FastDaqWrapper()
if fdw.is_connected():
# sets missing trigger/clock timeout, after which TimeoutException is raised
fdw.set_timeout(1000)
# choose channel 'PFI0' for external clocking, 'internal' for internal clocking. Use 'rising' or 'falling' for active_edge
fdw.configure_sample_clock(channel = 'PFI0', active_edge = 'rising')
# choose channel 'PFI0' for external clocking, 'internal' for internal triggering
fdw.configure_start_trigger(channel = 'internal')
# sets external trigger delay for sampling to 100 ns
fdw.set_external_trigger_delay(1000)
# acquires n = 1000 samples as one-dimensional array
data = fdw.get_daq_data(10)
fdw.close()
lightcon.harpia_daq
Interface to the universal six-channel DAQ (PE04-005-04 or newer) DLL wrapper Example:
import lightcon.harpia_daq
# provide in ascending order to keep plot labels right
enabled_channels = ['AI0', 'AI1', 'AI3']
hdw = lightcon.harpia_daq.HarpiaDaqWrapper()
if hdw.is_connected:
# sets missing trigger/clock timeout, after which TimeoutException is raised
hdw.set_timeout(100)
# enable analog input channels
hdw.enable_channels(enabled_channels)
# choose channel 'PFI0' - 'PFI5' for external clocking, 'internal' for internal clocking. Use 'rising' or 'falling' for active_edge
hdw.configure_sample_clock(channel = 'internal', active_edge = 'falling')
# choose channel 'PFI0' - 'PFI5' for external clocking, 'internal' for internal triggering
hdw.configure_start_trigger(channel = 'PFI0')
# acquires n=1000 samples and arranges to (m,n) two-dimensonal array, where m is number of enabled channels (in ascending order)
data = hdw.get_daq_data(1000)
lightcon.timing_controller
Timing controller API
Example:
import lightcon.timing_controller
tc = TimingController()
tc.connect()
if tc.connected:
print ('Trigger source', 'EXTERNAL' if tc.get_trigger_source() == 1 else 'INTERNAL {:} Hz'.format(tc.get_frequency()))
print ('\n'.join(['Channel {:}, delay {:} ns, {:}'.format(i, tc.get_delay(i), 'ENABLED' if tc.get_enabled(i)==1 else 'DISABLED') for i in [1,2,3,4]]))
Output:
Connected to timer_stopwatch on COM12 (E131001401, firmware version: 1.0.1)
Trigger source INTERNAL 1750 Hz
Channel 1, delay 0 ns, DISABLED
Channel 2, delay 0 ns, DISABLED
Channel 3, delay 0 ns, DISABLED
Channel 4, delay 0 ns, DISABLED
lightcon.wintopas
WinTopas REST client
lightcon.camera_app_client
CameraApp REST client
lightcon.style
Light Conversion style for 1D graphs
Example:
import lightcon.style
lightcon.style.apply_style()
...plot whatever here...
lightcon.style.add_watermarks()
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
lightcon-1.1.50.tar.gz
(216.5 kB
view details)
Built Distribution
lightcon-1.1.50-py3-none-any.whl
(231.1 kB
view details)
File details
Details for the file lightcon-1.1.50.tar.gz
.
File metadata
- Download URL: lightcon-1.1.50.tar.gz
- Upload date:
- Size: 216.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd0073da1bacc4019f1ef377168dee74b1a9f2e204e1d357290a48a6df4bac62 |
|
MD5 | 7a3b7ace1b9d38113d889a290ce7c5f9 |
|
BLAKE2b-256 | c7dc5f378addd0bb4624970070648ce8a3a10471625300dd05684d039f0d343a |
File details
Details for the file lightcon-1.1.50-py3-none-any.whl
.
File metadata
- Download URL: lightcon-1.1.50-py3-none-any.whl
- Upload date:
- Size: 231.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62163690ad5764f9e81e3a98821705d914fcdaabdbacfdbb9a5077f2acc3b785 |
|
MD5 | 5c3233a47db2721c3c2c3eb0177efce0 |
|
BLAKE2b-256 | bed2dd60c09d2e24630258b9691f49b62e3a9458ab18c2c6bc6225fa4a3f8ec2 |