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 Carbide, Pharos
import time
my_laser = Pharos('192.168.8.113')
# my_laser = Carbide('192.168.8.113')
pp_ratio = my_laser.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)
my_laser.set_pp(target_pp_ratio, blocking=True)
print("OK", flush=True)
print("Setting pulse picker to PP={:d}...".format(pp_ratio), end='', flush=True)
my_laser.set_pp(pp_ratio, blocking=True)
print("OK", flush=True)
print("Enabling laser output...")
my_laser.enable_output()
print("Waiting for 3s...")
time.sleep(3)
print("Disabling laser output...")
my_laser.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.57.tar.gz
(219.7 kB
view details)
Built Distribution
lightcon-1.1.57-py3-none-any.whl
(233.1 kB
view details)
File details
Details for the file lightcon-1.1.57.tar.gz
.
File metadata
- Download URL: lightcon-1.1.57.tar.gz
- Upload date:
- Size: 219.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8e0e1699fd1d3e434caa9ec61446d065b97407ade99ba13be3c4db69615c5f6 |
|
MD5 | ce7bfeaad11bfbdcd707caff9b5e670a |
|
BLAKE2b-256 | 35ee57b01395cf90766a806bf182a4663597cf3e87917a8da795fdbe198875aa |
File details
Details for the file lightcon-1.1.57-py3-none-any.whl
.
File metadata
- Download URL: lightcon-1.1.57-py3-none-any.whl
- Upload date:
- Size: 233.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06f6991552d83ffaecbf3b93e696dce69927b988d87578c76a4603fb94ebccd0 |
|
MD5 | 4d62d3747cbce87c714a118c4bb8b9de |
|
BLAKE2b-256 | 604ac09af7e355de36955dc6d04c122ef4edb63d310e66c6b17381feb1a71558 |