Skip to main content

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.eth_motor_board

EthMotorBoard API

Example:

from lightcon.eth_motor_board import EthMotorBoard

emb = EthMotorBoard()

print ('Hardware version:', emb.send('HARDWARE_VERSION'))

Output:

Successfullly connected to EthMotorBoard, name: Beam alignment, firmware version: 5.5.1
Hardware version: E04-351-03

CAN extension example:

from lightcon.eth_motor_board import EthMotorBoard
from lightcon.common import BytesArrayToFloat

emb = EthMotorBoard()

can_output = emb.GetRegister(0x180, 0x0201, 2)
print ('Response status', can_output[0])
print ('Response data', can_output[1])
print ('Quadrant detector SUM voltage', BytesArrayToFloat(can_output[1]), 'V')

Output:

Successfullly connected to EthMotorBoard, name: Beam alignment, firmware version: 5.5.1
Response status 0
Response data [54, 121, 86, 64]
Quadrant detector SUM voltage 3.3511481285095215 V

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()

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.5.15.tar.gz (167.8 kB view details)

Uploaded Source

Built Distribution

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

lightcon-1.5.15-py3-none-any.whl (182.4 kB view details)

Uploaded Python 3

File details

Details for the file lightcon-1.5.15.tar.gz.

File metadata

  • Download URL: lightcon-1.5.15.tar.gz
  • Upload date:
  • Size: 167.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lightcon-1.5.15.tar.gz
Algorithm Hash digest
SHA256 9e530a57484c2f6703a8cf9d72376d7711a088badbd847095a72d098c88272a2
MD5 e85e8f8a6fbe9dfead246f24d622270a
BLAKE2b-256 7f8bb87df31ad5378a348ab346a68c6be47baf67c06ccf2e0193169043845e47

See more details on using hashes here.

File details

Details for the file lightcon-1.5.15-py3-none-any.whl.

File metadata

  • Download URL: lightcon-1.5.15-py3-none-any.whl
  • Upload date:
  • Size: 182.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lightcon-1.5.15-py3-none-any.whl
Algorithm Hash digest
SHA256 35c12a57e87232c06e091e70d4e1be52cba2a8e0fea2db6f77a32e17025621ee
MD5 b61ffc57316c559a2d4ef8dd5f9fba9a
BLAKE2b-256 9bce3b94b0f0757693ba96f11c09387b4887cce8b87be44cec05de0d9f496d23

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.5.15 This release

2 files

1.5.14

2 files

1.5.13

2 files

1.5.11

2 files

1.5.10

2 files

1.5.9

2 files

1.5.8

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.3

2 files

1.4.2.post2

2 files

1.4.2.post1

2 files

1.4.2

2 files

1.4.1

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1.post4

2 files

1.3.1.post3

2 files

1.3.1.post2

2 files

1.3.1.post1

2 files

1.3.1

2 files

1.3.0

2 files

1.2.1.post2

2 files

1.2.0

2 files

1.1.92

2 files

1.1.91

2 files

1.1.90

1 file

1.1.89

1 file

1.1.88

1 file

1.1.87

1 file

1.1.86

1 file

1.1.85

1 file

1.1.84

1 file

1.1.83

1 file

1.1.82

2 files

1.1.81

2 files

1.1.80

2 files

1.1.79

2 files

1.1.78

2 files

1.1.77

2 files

1.1.71

2 files

1.1.70

2 files

1.1.69

2 files

1.1.68

2 files

1.1.67

2 files

1.1.66

2 files

1.1.65

2 files

1.1.64

2 files

1.1.63

2 files

1.1.62

2 files

1.1.61

2 files

1.1.60

2 files

1.1.59

2 files

1.1.58

2 files

1.1.57

2 files

1.1.56

2 files

1.1.55

2 files

1.1.54

2 files

1.1.53

2 files

1.1.52

2 files

1.1.51

2 files

1.1.50

2 files

1.1.49

2 files

1.1.48

2 files

1.1.47

2 files

1.1.46

2 files

1.1.45

2 files

1.1.44

2 files

1.1.43

2 files

1.1.42

2 files

1.1.41

2 files

1.1.40

2 files

1.1.39

2 files

1.1.38

2 files

1.1.37

2 files

1.1.36

2 files

1.1.35

2 files

1.1.34

2 files

1.1.33

2 files

1.1.32

2 files

1.1.31

2 files

1.1.27

2 files

1.1.26

2 files

1.1.25

2 files

1.1.23

2 files

1.1.22

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page