From 24acef35e14837330cdfeafa412dd5167b7681f4 Mon Sep 17 00:00:00 2001 From: rtan Date: Wed, 30 Oct 2024 12:50:26 +0100 Subject: [PATCH] initialise git repository --- Dasha_LCRCode.py | 604 +++++++++++++++++++ KLC101_basic_example.py | 116 ++++ KLCCommandLib64.py | 606 ++++++++++++++++++++ KLCCommandLibTest.py | 226 ++++++++ KLCCommandLib_x64.dll | Bin 0 -> 306176 bytes KLCCommandLib_x64.lib | Bin 0 -> 10582 bytes __pycache__/KLCCommandLib.cpython-312.pyc | Bin 0 -> 22693 bytes __pycache__/KLCCommandLib64.cpython-312.pyc | Bin 0 -> 22797 bytes readme.txt | 4 + 9 files changed, 1556 insertions(+) create mode 100644 Dasha_LCRCode.py create mode 100644 KLC101_basic_example.py create mode 100644 KLCCommandLib64.py create mode 100644 KLCCommandLibTest.py create mode 100644 KLCCommandLib_x64.dll create mode 100644 KLCCommandLib_x64.lib create mode 100644 __pycache__/KLCCommandLib.cpython-312.pyc create mode 100644 __pycache__/KLCCommandLib64.cpython-312.pyc create mode 100644 readme.txt diff --git a/Dasha_LCRCode.py b/Dasha_LCRCode.py new file mode 100644 index 0000000..fdd090d --- /dev/null +++ b/Dasha_LCRCode.py @@ -0,0 +1,604 @@ +# -*- coding: utf-8 -*- +""" +Created on 29.10.2024, 09:00 hrs +LC Controller measurement script +@author: Serdar, adjusted by Lukas and Ryan +""" +############################################ +# Packages from Ryan +import re +import math +import threading +import pyvisa +import time +# from pyvisa import ResourceManager, constants +# NOTE: KLCCommandLib64.py must be in the same folder as this script! +try: + from KLCCommandLib64 import * +except OSError as ex: + print("Warning:",ex) + +# TODO: add LC Controller limits as constants, as not to be exceeded + + +############################################ + +import AMC +import csv +import time +import clr +import sys +import os +import spe2py as spe +import spe_loader as sl +import pandas as pd +import time +from System.IO import * +from System import String +import numpy as np +import matplotlib.pyplot as plt +import datetime +from typing import Union + +# NOTE: this is possibly not needed, remove later +#First choose your controller +IP_AMC300 = "192.168.1.1" +IP_AMC100 = "192.168.71.100" + +# IP = "192.168.1.1" +IP = IP_AMC100 + + +# Import os module +import os, glob, string + +# Import System.IO for saving and opening files +from System.IO import * + +from System.Threading import AutoResetEvent + +# Import C compatible List and String +from System import String +from System.Collections.Generic import List + +# Add needed dll references +sys.path.append(os.environ['LIGHTFIELD_ROOT']) +sys.path.append(os.environ['LIGHTFIELD_ROOT']+"\\AddInViews") +sys.path.append(r'C:\Program Files\Princeton Instruments\LightField\AddInViews') #I added them by hand -serdar +sys.path.append(r'C:\Program Files\Princeton Instruments\LightField') #this one also +clr.AddReference('PrincetonInstruments.LightFieldViewV5') +clr.AddReference('PrincetonInstruments.LightField.AutomationV5') +clr.AddReference('PrincetonInstruments.LightFieldAddInSupportServices') +os.environ['LIGHTFIELD_ROOT'] = r'C:\Program Files\Princeton Instruments\LightField' +# PI imports +from PrincetonInstruments.LightField.Automation import Automation +from PrincetonInstruments.LightField.AddIns import ExperimentSettings +from PrincetonInstruments.LightField.AddIns import CameraSettings +#from PrincetonInstruments.LightField.AddIns import DeviceType +from PrincetonInstruments.LightField.AddIns import SpectrometerSettings +from PrincetonInstruments.LightField.AddIns import RegionOfInterest + +######################################################################################################### code begins from here ############################################# + +def set_custom_ROI(): + # Get device full dimensions + dimensions = experiment.FullSensorRegion() + + regions = [] + + # Add two ROI to regions + regions.append( + RegionOfInterest( + int(dimensions.X), int(dimensions.Y), + int(dimensions.Width), int(dimensions.Height//4), # Use // for integer division + int(dimensions.XBinning), int(dimensions.Height//4))) + # Set both ROI + experiment.SetCustomRegions(regions) + +def experiment_completed(sender, event_args): #callback function which is hooked to event completed, this is the listener + print("... Acquisition Complete!") + acquireCompleted.Set() #set the event. This puts the autoresetevent false.(look at .NET library for furher info) + +def InitializerFilenameParams(): + experiment.SetValue(ExperimentSettings.FileNameGenerationAttachIncrement, False) + experiment.SetValue(ExperimentSettings.FileNameGenerationIncrementNumber, 1.0) + experiment.SetValue(ExperimentSettings.FileNameGenerationIncrementMinimumDigits, 2.0) + experiment.SetValue(ExperimentSettings.FileNameGenerationAttachDate, False) + experiment.SetValue(ExperimentSettings.FileNameGenerationAttachTime, False) + +def AcquireAndLock(name): + print("Acquiring...", end = "") + # name += 'Exp{0:06.2f}ms.CWL{1:07.2f}nm'.format(\ + # experiment.GetValue(CameraSettings.ShutterTimingExposureTime)\ + # ,experiment.GetValue(SpectrometerSettings.GratingCenterWavelength)) + + experiment.SetValue(ExperimentSettings.FileNameGenerationBaseFileName, name) #this creates .spe file with the name + experiment.Acquire() # this is an ashynrchronus func. + acquireCompleted.WaitOne() + +def calculate_distance(x1, y1, x2, y2): + return np.sqrt((x2 - x1)**2 + (y2 - y1)**2) + +def generate_scan_positions(center, range_val, resolution): + positive_range = np.arange(center, center + range_val + resolution, resolution) + return positive_range + +def save_as_csv(filename, position_x, position_y): + file_existance = os.path.isfile(filename) + + with open(filename, 'a', newline = '') as csvfile: + writer = csv.writer(csvfile) + + if not file_existance: + writer.writerow(['x_coordinates','y_coordinates']) + + writer.writerow([position_x, position_y]) + +# def move_axis(axis, target): +# """ +# This function moves an axis to the specified target and stop moving after it is in the really closed +# vicinity (+- 25nm) of the target (listener hooked to it). +# """ +# amc.move.setControlTargetPosition(axis, target) +# amc.control.setControlMove(axis, True) +# while not (target - 25) < amc.move.getPosition(axis) < (target + 25): +# time.sleep(0.1) +# time.sleep(0.15) +# while not (target - 25) < amc.move.getPosition(axis) < (target + 25): +# time.sleep(0.1) +# amc.control.setControlMove(axis, False) + +# def move_xy(target_x, target_y): # moving in x and y direction closed to desired position +# amc.move.setControlTargetPosition(0, target_x) +# amc.control.setControlMove(0, True) +# amc.move.setControlTargetPosition(1, target_y) +# amc.control.setControlMove(1, True) +# while not (target_x - 25) < amc.move.getPosition(0) < (target_x + 25) and (target_y - 25) < amc.move.getPosition(1) < (target_y + 25): +# time.sleep(0.1) +# time.sleep(0.15) +# while not (target_x - 25) < amc.move.getPosition(0) < (target_x + 25) and (target_y - 25) < amc.move.getPosition(1) < (target_y + 25): +# time.sleep(0.1) + +# amc.control.setControlOutput(0, False) +# amc.control.setControlOutput(1, False) + +# intensity_data = [] # To store data from each scan +# data_list = [] + +# def move_scan_xy(range_x, range_y, resolution, Settings, baseFileName): +# """ +# This function moves the positioners to scan the sample with desired ranges and resolution in 2 dimensions. +# At the end it saves a csv file + +# Parameters +# ---------- +# range_x : integer in nm. max value is 5um +# Scan range in x direction. +# range_y : integer in nm. max value is 5um +# Scan range in y direction. +# resolution : integer in nm. +# Room temprature max res is 50nm. In cyrostat (4K) it is 10nm (check the Attocube manual) +# baseFileName: string. At the end the saved file will be: baseFileName_scan_data.csv and it will be saved to the current directory + +# Returns +# ------- +# None. + +# """ +# start_time = time.time() +# axis_x = 0 #first axis +# axis_y = 1 #second axis +# center_x = amc.move.getPosition(axis_x) +# center_y = amc.move.getPosition(axis_y) +# # #check if the intput range is reasonable +# # if amc.move.getPosition(axis_x) + range_x >= 5000 or amc.move.getPosition(axis_x)- range_x <= 0 or amc.move.getPosition(axis_y) + range_y >=5000 or amc.move.getPosition(axis_y) - range_y <= 5000 : +# # print("scan range is out of range!") +# # return +# # +- range from current positions for x and y directions + + +# array_x = generate_scan_positions(center_x, range_x, resolution) +# array_y = generate_scan_positions(center_y, range_y, resolution) +# total_points = len(array_x)*len(array_y) +# len_y = len(array_y) +# intensity_data = [] # To store data from each scan +# data_list = [] +# cwd = os.getcwd() # save original directory + +# #This gives a directory, in which the script will save the spectrum of each spot as spe +# #However, it will open the spectrum, convert it to txt, add it to the intensity_data and delete the spe file +# temp_folder_path = "C:/Users/localadmin/Desktop/Users/Lukas/2024_02_08_Map_test" + +# #scanning loop +# for i, x_positions in enumerate(array_x): +# move_axis(axis_x, x_positions) +# y = False +# for j, y_positions in enumerate(array_y): +# move_axis(axis_y, y_positions) +# #each time when the positioner comes to the beggining of a new line +# #this if will make the positioner wait a bit longer to really go to the target. +# if y == False: +# move_axis(axis_y, y_positions) +# y = True + +# #we acquire with the LF +# acquire_name_spe = f'{baseFileName}_X{x_positions}_Y{y_positions}' +# AcquireAndLock(acquire_name_spe) #this creates a .spe file with the scan name. + +# #read the .spe file and get the data as loaded_files +# cwd = os.getcwd() # save original directory +# os.chdir(temp_folder_path) #change directory +# loaded_files = sl.load_from_files([acquire_name_spe + '.spe']) # get the .spe file as a variable +# os.chdir(cwd) # go back to original directory + +# # Delete the created .spe file from acquiring after getting necessary info +# spe_file_path = os.path.join(temp_folder_path, acquire_name_spe + '.spe') +# os.remove(spe_file_path) + +# distance = calculate_distance(x_positions, y_positions,amc.move.getPosition(axis_x), amc.move.getPosition(axis_y)) + +# points_left = total_points - (i * len_y + (j+1)) + 1 +# print('Points left in the scan: ', points_left) + +# #append the intensity data as it is (so after every #of_wl_points, the spectrum of the next point begins) +# intensity_data.append(loaded_files.data[0][0][0]) + +# data_list.append({ +# 'position_x': x_positions, +# 'position_y': y_positions, +# 'actual_x': amc.move.getPosition(axis_x), +# 'actual_y': amc.move.getPosition(axis_y), +# 'distance': distance, +# }) + +# #moves back to starting position +# move_axis(axis_x, center_x) +# move_axis(axis_y, center_y) + +# #prints total time the mapping lasted +# end_time = time.time() +# elapsed_time = (end_time - start_time) / 60 +# print('Scan time: ', elapsed_time, 'minutes') + +# # df = pd.DataFrame(data_list) + +# #save intensity & WL data as .txt +# os.chdir('C:/Users/localadmin/Desktop/Users/Lukas') +# # creates new folder for MAP data +# new_folder_name = "Test_Map_" + f"{datetime.datetime.now().strftime('%Y_%m_%d_%H.%M')}" +# os.mkdir(new_folder_name) +# # Here the things will be saved in a new folder under user Lukas ! +# # IMPORTANT last / has to be there, otherwise data cannot be saved and will be lost!!!!!!!!!!!!!!!! +# os.chdir('C:/Users/localadmin/Desktop/Users/Lukas/'+ new_folder_name) + +# intensity_data = np.array(intensity_data) +# np.savetxt(Settings + str(center_x) + '_' + str(center_y) + experiment_name +'.txt', intensity_data) + +# wl = np.array(loaded_files.wavelength) +# np.savetxt("Wavelength.txt", wl) + +################################################################# RYAN'S FUNCTIONS HERE ########################################################################################## + +def polar_to_cartesian(radius, start_angle, end_angle, step_size, clockwise=True): + # TODO: DOCS + """Creates a list of discrete cartesian coordinates (x,y), given the radius, start- and end angles, the angle step size, and the direction of rotation. + Function then returns a list of two lists: list of angles and list of cartesian coordinates (x,y coordinates in a tuple). + + Args: + radius (_type_): _description_ + start_angle (_type_): _description_ + end_angle (_type_): _description_ + step_size (_type_): _description_ + clockwise (bool, optional): _description_. Defaults to True. + + Returns: + _type_: _description_ + """ """""" + # Initialize lists to hold angles and (x, y) pairs + angles = [] + coordinates = [] + + # Normalize angles to the range [0, 360) + start_angle = start_angle % 360 + end_angle = end_angle % 360 + + if clockwise: + # Clockwise rotation + current_angle = start_angle + while True: + # Append the current angle to the angles list + angles.append(current_angle % 360) + + # Convert the current angle to radians + current_angle_rad = math.radians(current_angle % 360) + + # Convert polar to Cartesian coordinates + x = radius * math.cos(current_angle_rad) + y = radius * math.sin(current_angle_rad) + + # Append the (x, y) pair to the list + coordinates.append((x, y)) + + # Check if we've reached the end_angle (handling wrap-around) (current_angle - step_size) % 360 == end_angle or + if current_angle % 360 == end_angle: + break + + # Decrement the current angle by the step size + current_angle -= step_size + if current_angle < 0: + current_angle += 360 + else: + # Counterclockwise rotation + current_angle = start_angle + while True: + # Append the current angle to the angles list + angles.append(current_angle % 360) + + # Convert the current angle to radians + current_angle_rad = math.radians(current_angle % 360) + + # Convert polar to Cartesian coordinates + x = radius * math.cos(current_angle_rad) + y = radius * math.sin(current_angle_rad) + + # Append the (x, y) pair to the list + coordinates.append((x, y)) + + # Check if we've reached the end_angle (handling wrap-around) (current_angle + step_size) % 360 == end_angle or + if current_angle % 360 == end_angle: + break + + # Increment the current angle by the step size + current_angle += step_size + if current_angle >= 360: + current_angle -= 360 + + return [angles, coordinates] + + +################################################################# DASHA'S CODE HERE ############################################################################################## + +# TODO: modify b field scan script for Dasha, to be used for the KLC controller + +def LCR_scan_func(instr:KLC, min_bval:float, max_bval:float, + res:float, magnet_coil:str, Settings:str, base_file_name='', + reversescan_bool=False, zerowhenfin_bool=False, loopscan_bool=False)->None: + + def pyramid_list(lst) -> Union[list, np.ndarray]: + """reverses the list and removes the first element of reversed list. Then, this is appended to + the end of the original list and returned as the 'pyramid' list. + + Args: + lst (list or np.ndarray): + Raises: + TypeError: if the input object isn't a list or np.ndarray + Returns: + Union[list, np.ndarray]: the pyramid list + """ '''''' + if isinstance(lst, list): + return lst + lst[-2::-1] + elif isinstance(lst, np.ndarray): + return np.append(lst, lst[-2::-1]) + else: + raise TypeError('Please input a list!') + + # defines the folder, in which the data from the spectrometer is temporarily stored in + temp_folder_path = "C:/Users/localadmin/Desktop/Users/Lukas/2024_02_08_Map_test" + + # if path_save =='': + # path_save = datetime.datetime.now().strftime("%Y_%m_%d_%H%M_hrs_") + + if base_file_name =='': + base_file_name = datetime.datetime.now().strftime('%Y_%m_%d_%H.%M') + + start_time = time.time() # start of the scan function + + instr_info = query_no_echo(instr, '*IDN?') + + instr_bsettings = list(sep_num_from_units(el) for el in query_no_echo(instr, 'UNITS?;LLIM?;ULIM?').split(';')) # deliver a 3 element list of lists containing the set unit, llim and ulim + + if instr_bsettings[0][0] == 'T': + instr_bsettings[1][0] = instr_bsettings[1][0]*0.1 # rescale kG to T, device accepts values only in kG or A, eventho we set it to T + instr_bsettings[2][0] = instr_bsettings[2][0]*0.1 + + # if singlepowersupply_bool: # checks limits of Bx or By + # if (min_bval< -BY_MAX) or (max_bval > BY_MAX): + # raise ValueError('Input limits exceed that of the magnet By! Please input smaller limits.') + # elif '1' in query_no_echo(instr, 'CHAN?'): # check if its the coils for Bz + # if (min_bval < -BZ_MAX) or (max_bval > BZ_MAX): + # raise ValueError('Input limits exceed that of the magnet (Bz)! Please input smaller limits.') + # else: # checks limits of Bx + # if (min_bval< -BX_MAX) or (max_bval > BX_MAX): + # raise ValueError('Input limits exceed that of the magnet Bx! Please input smaller limits.') + + if '2101014' in instr_info and (magnet_coil=='y-axis'): # single power supply + if (min_bval< -BY_MAX) or (max_bval > BY_MAX): + raise ValueError('Input limits exceed that of the magnet By! Please input smaller limits.') + elif '2301034' in instr_info: # dual power supply + if magnet_coil=='z-axis': # check if its the coils for Bz + if (min_bval < -BZ_MAX) or (max_bval > BZ_MAX): + raise ValueError('Input limits exceed that of the magnet (Bz)! Please input smaller limits.') + write_no_echo(instr, 'CHAN 1') + elif magnet_coil=='x-axis': # checks limits of Bx + if (min_bval< -BX_MAX) or (max_bval > BX_MAX): + raise ValueError('Input limits exceed that of the magnet Bx! Please input smaller limits.') + write_no_echo(instr, 'CHAN 2') + else: + raise ConnectionError('Device is not connected!') + + write_no_echo(instr, f'LLIM {min_bval*10};ULIM {max_bval*10}') # sets the given limits, must convert to kG for the device to read + bval_lst = np.arange(min_bval, max_bval + res, res) # creates list of B values to measure at, with given resolution, in T + + # TODO: unused, see if can remove + # init_bval = sep_num_from_units(query_no_echo(instr, 'IMAG?'))[0]*0.1 # queries the initial B value of the coil, rescale from kG to T + + init_lim, subsequent_lim = 'LLIM', 'ULIM' + init_sweep, subsequent_sweep = 'DOWN', 'UP' + + #################################################### + # TODO: decide whether to start at min b val or max b val, depending on which one is nearer, IMPLEMENT THIS LATER + # nearest_bval = (abs(init_bval - min_bval), abs(init_bval - max_bval)) + # if nearest_bval[0] <= nearest_bval[1]: + # reversescan_bool = True + #################################################### + + # if reverse scan, then flip the values in the b list, and swap the initial limit and sweep conditions + if reversescan_bool: + bval_lst = bval_lst[::-1] + init_lim, subsequent_lim = subsequent_lim, init_lim + init_sweep, subsequent_sweep = subsequent_sweep, init_sweep + + # creates the pyramid list of B vals if one were to perform a hysteresis measurement + if loopscan_bool: + bval_lst = pyramid_list(bval_lst) + + total_points = len(bval_lst) + middle_index_bval_lst = total_points // 2 + intensity_data = [] # To store data from each scan + cwd = os.getcwd() # save original directory + + # NOTE: helper function for the scanning loop + def helper_scan_func(idx, bval, instr=instr, init_lim=init_lim, init_sweep=init_sweep, + subsequent_lim=subsequent_lim, subsequent_sweep=subsequent_sweep, sleep=5): + if idx == 0: # for first iteration, sweep to one of the limits + write_no_echo(instr, f'{init_lim} {bval*10}') # convert back to kG + write_no_echo(instr, f'SWEEP {init_sweep}') + else: + write_no_echo(instr, f'{subsequent_lim} {bval*10}') # convert back to kG + write_no_echo(instr, f'SWEEP {subsequent_sweep}') + + actual_bval = sep_num_from_units(query_no_echo(instr, 'IMAG?'))[0]*0.1 # convert kG to T + print(f'Actual magnet strength: {actual_bval} T,', f'Target magnet strength: {bval} T') + + while abs(actual_bval - bval) > 0.0001: + time.sleep(5) # little break + actual_bval = sep_num_from_units(query_no_echo(instr, 'IMAG?'))[0]*0.1 + # update the actual bval + print(f'Actual magnet strength: {actual_bval} T,', f'Target magnet strength: {bval} T') + + #scanning loop + for i, bval in enumerate(bval_lst): + + if not loopscan_bool: + helper_scan_func(i, bval) + else: + if i <= middle_index_bval_lst: + helper_scan_func(i, bval) + else: + helper_scan_func(i, bval, instr=instr, init_lim=subsequent_lim, init_sweep=subsequent_sweep, + subsequent_lim=init_lim, subsequent_sweep=init_sweep, sleep=5) + + time.sleep(5) + # we acquire with the LF + acquire_name_spe = f'{base_file_name}_{bval}T' + AcquireAndLock(acquire_name_spe) #this creates a .spe file with the scan name. + + # read the .spe file and get the data as loaded_files + cwd = os.getcwd() # save original directory + os.chdir(temp_folder_path) #change directory + loaded_files = sl.load_from_files([acquire_name_spe + '.spe']) # get the .spe file as a variable + os.chdir(cwd) # go back to original directory + + # Delete the created .spe file from acquiring after getting necessary info + spe_file_path = os.path.join(temp_folder_path, acquire_name_spe + '.spe') + os.remove(spe_file_path) + + points_left = total_points - i - 1 # TODO: SEE IF THIS IS CORRECT + print('Points left in the scan: ', points_left) + + #append the intensity data as it is (so after every #of_wl_points, the spectrum of the next point begins) + intensity_data.append(loaded_files.data[0][0][0]) + + #prints total time the mapping lasted + end_time = time.time() + elapsed_time = (end_time - start_time) / 60 + print('Scan time: ', elapsed_time, 'minutes') + + write_no_echo(instr, f'LLIM {instr_bsettings[1][0]*10};ULIM {instr_bsettings[2][0]*10}') # reset the initial limits of the device after the scan + + if zerowhenfin_bool: + write_no_echo(instr, 'SWEEP ZERO') # if switched on, discharges the magnet after performing the measurement loop above + + #save intensity & WL data as .txt + os.chdir('C:/Users/localadmin/Desktop/Users/Lukas') + # creates new folder for MAP data + new_folder_name = "Test_Map_" + f"{datetime.datetime.now().strftime('%Y_%m_%d_%H.%M')}" + os.mkdir(new_folder_name) + # Here the things will be saved in a new folder under user Lukas ! + # IMPORTANT last / has to be there, otherwise data cannot be saved and will be lost!!!!!!!!!!!!!!!! + os.chdir('C:/Users/localadmin/Desktop/Users/Lukas/'+ new_folder_name) + + intensity_data = np.array(intensity_data) + np.savetxt(Settings + str(min_bval) + 'T_to_' + str(max_bval) + 'T' + experiment_name +'.txt', intensity_data) + + wl = np.array(loaded_files.wavelength) + np.savetxt("Wavelength.txt", wl) + + +################################################################# END OF FUNCTION DEFS ########################################################################################### + +# NOTE: RYAN INTRODUCED SOME FUNCTIONS HERE TO PERFORM THE SCAN +try: + # initialise KLC connection + #Find devices + devs = klcListDevices() + print("Found devices:",devs,"\n") + if(len(devs)<=0): + print('There is no device connected') + sys.exit() + klc = devs[0] + serialnumber = klc[0] + + #Connect device + KLC_handle = klcOpen(serialnumber, 115200, 3) + if(KLC_handle<0): + print("open ", serialnumber, " failed") + sys.exit() + if(klcIsOpen(serialnumber) == 0): + print("klcIsOpen failed") + klcClose(KLC_handle) + sys.exit() + print("Connected to serial number ", serialnumber) + + # TODO: continue editing the code below this + # Initialise PYVISA ResourceManager + rm = pyvisa.ResourceManager() + # print(rm.list_resources()) + # 'ASRL8::INSTR' for dual power supply, 'ASRL9::INSTR' for single power supply (online PC) + # 'ASRL10::INSTR' for dual power supply, 'ASRL12::INSTR' for single power supply (offline PC) + + auto = Automation(True, List[String]()) + experiment = auto.LightFieldApplication.Experiment + acquireCompleted = AutoResetEvent(False) + + experiment.Load("Lukas_experiment_2024_02_06") + experiment.ExperimentCompleted += experiment_completed # we are hooking a listener. + # experiment.SetValue(SpectrometerSettings.GratingSelected, '[750nm,1200][0][0]') + # InitializerFilenameParams() + + + #set scan range and resolution in nanometers + range_x = 20000 + range_y = 20000 + resolution = 1000 + # set B-field scan range and resolution (all in T) + set_llim_bval = -0.01 + set_ulim_bval = 0.01 + set_res_bval = 0.01 + + # TODO: add the start-, end angles, as well as angle step size here (alternatively, add it above) + + + #Here you can specify the filename of the map e.g. put experiment type, exposure time, used filters, etc.... + experiment_settings = 'PL_SP_700_LP_700_HeNe_52muW_exp_2s_Start_' + #The program adds the range of the scan as well as the resolution and the date and time of the measurement + experiment_name = f"{set_llim_bval}T_to_{set_ulim_bval}T_{set_res_bval}T_{datetime.datetime.now().strftime('%Y_%m_%d_%H%M')}" + + # TODO: insert LCR rotation scan function here + +except Exception() as e: + print(e) +finally: + #close connection to device + klcClose(KLC_handle) + print("Connection closed") \ No newline at end of file diff --git a/KLC101_basic_example.py b/KLC101_basic_example.py new file mode 100644 index 0000000..a81cebf --- /dev/null +++ b/KLC101_basic_example.py @@ -0,0 +1,116 @@ +import sys +import time +from ctypes import * + + +try: + from KLCCommandLib64 import * + import time +except OSError as ex: + print("Warning:",ex) + + +def main(): + try: + #Find devices + devs = klcListDevices() + print("Found devices:",devs,"\n") + if(len(devs)<=0): + print('There is no device connected') + sys.exit() + klc = devs[0] + serialnumber = klc[0] + + #Connect device + KLC_handle = klcOpen(serialnumber, 115200, 3) + if(KLC_handle<0): + print("open ", serialnumber, " failed") + sys.exit() + if(klcIsOpen(serialnumber) == 0): + print("klcIsOpen failed") + klcClose(KLC_handle) + sys.exit() + print("Connected to serial number ", serialnumber) + + # ------------ Disable/Enable global output -------------- # + klcSetEnable(KLC_handle,2) # 1 enable, 2 disable + + print("Enable output\n") + if(klcSetEnable(KLC_handle, 1)<0): + print("klcSetEnable failed") + + en=[0] + if(klcGetEnable(KLC_handle, en)<0): + print("klcGetEnable failed") + + # ------------ Preset1 mode ----------------------------- # + print("Enable V1") + klcSetChannelEnable(KLC_handle, 1) # 0x01 V1 Enable , 0x02 V2 Enable, 0x03 SW Enable, 0x00 channel output disable. + + #Set voltage 1 + if(klcSetVoltage1(KLC_handle, 1)<0): + print("klcSetVoltage1 failed") + vol1=[0] + if(klcGetVoltage1(KLC_handle, vol1)<0): + print("klcGetVoltage1 failed") + else: + print("Set voltage 1 to ",vol1[0],"V") + + #set freqency 1 + if(klcSetFrequency1(KLC_handle, 2000)<0): + print("klcSetFrequency1 failed") + + freq1=[0] + if(klcGetFrequency1(KLC_handle, freq1)<0): + print("klcGetFrequency1 failed") + else: + print("Frequency 1 set to", freq1[0]," Hz\n") + + time.sleep(1) + + + # ------------ Preset2 mode ----------------------------- # + print("Enable V2") + klcSetChannelEnable(KLC_handle, 2) + #set voltage 2 + if(klcSetVoltage2(KLC_handle, 10)<0): + print("klcSetVoltage2 failed") + vol2=[0] + if(klcGetVoltage2(KLC_handle, vol2)<0): + print("klcGetVoltage2 failed") + else: + print("Set voltage 2 to", vol2[0], " V") + + #set freq2 + if(klcSetFrequency2(KLC_handle, 2000)<0): + print("klcSetFrequency2 failed") + + freq2=[0] + if(klcGetFrequency2(KLC_handle, freq2)<0): + print("klcGetFrequency2 failed") + else: + print("Frequency 2 set to ", freq2[0]," Hz\n") + + time.sleep(1) + + print("Enable V1") + klcSetChannelEnable(KLC_handle, 1) + + time.sleep(1) + + print("Enable V2") + klcSetChannelEnable(KLC_handle, 2) + + time.sleep(1) + + + + #close connection to device + klcClose(KLC_handle) + print("Connection closed") + + except Exception as ex: + print("Warning:", ex) + +if __name__ == "__main__": + main() diff --git a/KLCCommandLib64.py b/KLCCommandLib64.py new file mode 100644 index 0000000..5f747bd --- /dev/null +++ b/KLCCommandLib64.py @@ -0,0 +1,606 @@ +from ctypes import * +import os,sys + +#region import dll functions; NOTE: ENTER ABSOLUTE PATH BELOW +klcLib=cdll.LoadLibrary(r"C:\Users\rtan\Documents\RyanWork2024\Dasha-LCR_Code\Thorlabs_KLC_PythonSDK\"KLCCommandLib_x64.dll") + +cmdList = klcLib.List +cmdList.argtypes=[c_char_p, c_int] +cmdList.restype=c_int + +cmdOpen = klcLib.Open +cmdOpen.restype=c_int +cmdOpen.argtypes=[c_char_p, c_int, c_int] + +cmdSetEnable = klcLib.SetEnable +cmdSetEnable.restype=c_int +cmdSetEnable.argtypes=[c_int, c_byte] + +cmdGetEnable = klcLib.GetEnable +cmdGetEnable.restype=c_int +cmdGetEnable.argtypes=[c_int, POINTER(c_byte)] + +cmdSetVoltage1 = klcLib.SetVoltage1 +cmdSetVoltage1.restype=c_int +cmdSetVoltage1.argtypes=[c_int, c_float] + +cmdSetVoltage2 = klcLib.SetVoltage2 +cmdSetVoltage2.restype=c_int +cmdSetVoltage2.argtypes=[c_int, c_float] + +cmdGetVoltage1 = klcLib.GetVoltage1 +cmdGetVoltage1.restype=c_int +cmdGetVoltage1.argtypes=[c_int, POINTER(c_float)] + +cmdGetVoltage2 = klcLib.GetVoltage2 +cmdGetVoltage2.restype=c_int +cmdGetVoltage2.argtypes=[c_int, POINTER(c_float)] + +cmdSetFrequency1 = klcLib.SetFrequency1 +cmdSetFrequency1.restype=c_int +cmdSetFrequency1.argtypes=[c_int, c_ushort] + +cmdSetFrequency2 = klcLib.SetFrequency2 +cmdSetFrequency2.restype=c_int +cmdSetFrequency2.argtypes=[c_int, c_ushort] + +cmdGetFrequency1 = klcLib.GetFrequency1 +cmdGetFrequency1.restype=c_int +cmdGetFrequency1.argtypes=[c_int, POINTER(c_ushort)] + +cmdGetFrequency2 = klcLib.GetFrequency2 +cmdGetFrequency2.restype=c_int +cmdGetFrequency2.argtypes=[c_int, POINTER(c_ushort)] + +cmdSetSWFrequency = klcLib.SetSWFrequency +cmdSetSWFrequency.restype=c_int +cmdSetSWFrequency.argtypes=[c_int, c_float] + +cmdGetSWFrequency = klcLib.GetSWFrequency +cmdGetSWFrequency.restype=c_int +cmdGetSWFrequency.argtypes=[c_int, POINTER(c_float)] + +cmdSetInputMode = klcLib.SetInputMode +cmdSetInputMode.restype=c_int +cmdSetInputMode.argtypes=[c_int, c_ubyte] + +cmdGetInputMode = klcLib.GetInputMode +cmdGetInputMode.restype=c_int +cmdGetInputMode.argtypes=[c_int, POINTER(c_ubyte)] + +cmdSetTrigIOConfigure = klcLib.SetTrigIOConfigure +cmdSetTrigIOConfigure.restype=c_int +cmdSetTrigIOConfigure.argtypes=[c_int, c_ubyte] + +cmdGetTrigIOConfigure = klcLib.GetTrigIOConfigure +cmdGetTrigIOConfigure.restype=c_int +cmdGetTrigIOConfigure.argtypes=[c_int, POINTER(c_ubyte)] + +cmdSetChannelEnable = klcLib.SetChannelEnable +cmdSetChannelEnable.restype=c_int +cmdSetChannelEnable.argtypes=[c_int, c_ubyte] + +cmdGetChannelEnable = klcLib.GetChannelEnable +cmdGetChannelEnable.restype=c_int +cmdGetChannelEnable.argtypes=[c_int, POINTER(c_ubyte)] + +cmdSetKcubeMMIParams = klcLib.SetKcubeMMIParams +cmdSetKcubeMMIParams.restype=c_int +cmdSetKcubeMMIParams.argtypes=[c_int, c_ushort, c_ushort] + +cmdGetKcubeMMIParams = klcLib.GetKcubeMMIParams +cmdGetKcubeMMIParams.restype=c_int +cmdGetKcubeMMIParams.argtypes=[c_int, POINTER(c_ushort), POINTER(c_ushort)] + +cmdSetKcubeMMILock = klcLib.SetKcubeMMILock +cmdSetKcubeMMILock.restype=c_int +cmdSetKcubeMMILock.argtypes=[c_int, c_ubyte] + +cmdGetKcubeMMILock = klcLib.GetKcubeMMILock +cmdGetKcubeMMILock.restype=c_int +cmdGetKcubeMMILock.argtypes=[c_int, POINTER(c_ubyte)] + +cmdGetOutPutStatus = klcLib.GetOutPutStatus +cmdGetOutPutStatus.restype=c_int +cmdGetOutPutStatus.argtypes=[c_int, POINTER(c_ushort), POINTER(c_float), POINTER(c_ushort),POINTER(c_ushort)] + +cmdGetStatus = klcLib.GetStatus +cmdGetStatus.restype=c_int +cmdGetStatus.argtypes=[c_int, POINTER(c_ubyte), POINTER(c_float), POINTER(c_ushort), POINTER(c_float), POINTER(c_ushort), POINTER(c_float), POINTER(c_ushort),POINTER(c_ushort),POINTER(c_ubyte),POINTER(c_ubyte),POINTER(c_ubyte),POINTER(c_ushort)] + +cmdUpdateOutputLUT = klcLib.UpdateOutputLUT +cmdUpdateOutputLUT.restype=c_int +cmdUpdateOutputLUT.argtypes=[c_int, c_ushort, c_float] + +cmdRemoveLastOutputLUT = klcLib.RemoveLastOutputLUT +cmdRemoveLastOutputLUT.restype=c_int +cmdRemoveLastOutputLUT.argtypes=[c_int, c_ushort] + +cmdSetOutputLUT = klcLib.SetOutputLUT +cmdSetOutputLUT.restype=c_int +cmdSetOutputLUT.argtypes=[c_int, POINTER(c_float), c_ushort] + +cmdSetOutputLUTParams = klcLib.SetOutputLUTParams +cmdSetOutputLUTParams.restype= c_int +cmdSetOutputLUTParams.argtypes=[c_int, c_ushort, c_ulong, c_ulong, c_ulong] + +cmdGetOutputLUTParams = klcLib.GetOutputLUTParams +cmdGetOutputLUTParams.restype=c_int +cmdGetOutputLUTParams.argtypes=[c_int, POINTER(c_ushort), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong)] + +#endregion + +def klcListDevices(): + """ List all connected KLC devices + Returns: + The klc device list, each deice item is serialNumber/COM + """ + str = create_string_buffer(1024, '\0') + result = cmdList(str,1024) + devicesStr = str.raw.decode("utf-8","ignore").rstrip('\x00').split(',') + length = len(devicesStr) + i=0 + devices=[] + devInfo=["",""] + discription="Kinesis LC Controller" + while(i=0): + #info = str.split('&') + devInfo[1] = discription + devices.append(devInfo.copy()) + i+=1 + return devices + +def klcOpen(serialNo, nBaud, timeout): + """ Open device + Args: + serialNo: serial number of KLC device + nBaud: bit per second of port + timeout: set timeout value in (s) + Returns: + non-negative number: hdl number returned Successful; negative number: failed. + """ + return cmdOpen(serialNo.encode('utf-8'), nBaud, timeout) + +def klcIsOpen(serialNo): + """ Check opened status of device + Args: + serialNo: serial number of device + Returns: + 0: device is not opened; 1: device is opened. + """ + return klcLib.IsOpen(serialNo.encode('utf-8')) + +def klcClose(hdl): + """ Close opened device + Args: + hdl: the handle of opened device + Returns: + 0: Success; negative number: failed. + """ + return klcLib.Close(hdl) + +def klcSetEnable(hdl, enable): + """ Set output enable state + Args: + hdl: the handle of opened device + enable: 0x01 enable, 0x02 disable + Returns: + 0: Success; negative number: failed. + """ + return cmdSetEnable(hdl, enable); + +def klcGetEnable(hdl, enable): + """ Get output enable state + Args: + hdl: the handle of opened device + enable: 0x01 enable, 0x02 disable + Returns: + 0: Success; negative number: failed. + """ + e = c_byte(0) + ret = cmdGetEnable(hdl, e) + enable[0] = e.value + return ret + +def klcGetVoltage1(hdl, voltage): + """ Get output Voltage 1. + Args: + hdl: the handle of opened device + voltage: the output voltage + Returns: + 0: Success; negative number: failed. + """ + vol = c_float(0) + ret = cmdGetVoltage1(hdl, vol) + voltage[0] = vol.value + return ret + +def klcSetVoltage1(hdl, voltage): + """ Set the output voltage 1. + Args: + hdl: the handle of opened device + voltage: the output voltage 0~25 V. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetVoltage1(hdl, voltage) + +def klcGetVoltage2(hdl, voltage): + """ Get output Voltage 2. + Args: + hdl: the handle of opened device + voltage: the output voltage + Returns: + 0: Success; negative number: failed. + """ + vol = c_float(0) + ret = cmdGetVoltage2(hdl, vol) + voltage[0] = vol.value + return ret + +def klcSetVoltage2(hdl, voltage): + """ Set the output voltage 2. + Args: + hdl: the handle of opened device + voltage: the output voltage 0~25 V. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetVoltage2(hdl, voltage) + +def klcGetFrequency1(hdl, freqency): + """ Get output Frequency 1. + Args: + hdl: the handle of opened device + freqency: the output voltage + Returns: + 0: Success; negative number: failed. + """ + freq = c_ushort(0) + ret = cmdGetFrequency1(hdl, freq) + freqency[0] = freq.value + return ret + +def klcSetFrequency1(hdl, freqency): + """ Set the output Frequency 1. + Args: + hdl: the handle of opened device + freqency: the output frequency 500~10000 Hz. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetFrequency1(hdl, freqency) + +def klcGetFrequency2(hdl, freqency): + """ Get output Frequency 2. + Args: + hdl: the handle of opened device + freqency: the output freqency + Returns: + 0: Success; negative number: failed. + """ + freq = c_ushort(0) + ret = cmdGetFrequency2(hdl, freq) + freqency[0] = freq.value + return ret + +def klcSetFrequency2(hdl, freqency): + """ Set the output Frequency 2. + Args: + hdl: the handle of opened device + freqency: the output frequency 500~10000 Hz. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetFrequency2(hdl, freqency) + +def klcGetSWFrequency(hdl, freqency): + """ Get frequency of switch mode. + Args: + hdl: the handle of opened device + freqency: the output frequency + Returns: + 0: Success; negative number: failed. + """ + freq = c_float(0) + ret = cmdGetSWFrequency(hdl, freq) + freqency[0] = freq.value + return ret + +def klcSetSWFrequency(hdl, freqency): + """ Set frequency of switch mode. + Args: + hdl: the handle of opened device + freqency: the output frequency 0.1~150 Hz. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetSWFrequency(hdl, freqency) + +def klcGetInputMode(hdl, mode): + """ Get device analog input mode. + Args: + hdl: the handle of opened device + mode: 0 disable; 1 enable + Returns: + 0: Success; negative number: failed. + """ + m = c_ubyte(0) + ret = cmdGetInputMode(hdl, m) + mode[0] = m.value + return ret + +def klcSetInputMode(hdl, mode): + """ Set device analog input mode. + Args: + hdl: the handle of opened device + mode: 0 disable; 1 enable + Returns: + 0: Success; negative number: failed. + """ + return cmdSetInputMode(hdl, mode) + +def klcGetTrigIOConfigure(hdl, mode): + """ Get device trigger pin mode. + Args: + hdl: the handle of opened device + mode: 01 -Trigger Pin1 output, Pin2 output; 02- Trigger Pin1 In, Pin2 out; 03- Trigger Pin1 out, Pin2 in + Returns: + 0: Success; negative number: failed. + """ + m = c_ubyte(0) + ret = cmdGetTrigIOConfigure(hdl, m) + mode[0] = m.value + return ret + +def klcSetTrigIOConfigure(hdl, mode): + """ Set device trigger pin mode. + Args: + hdl: the handle of opened device + mode: 01 -Trigger Pin1 output, Pin2 output; 02- Trigger Pin1 In, Pin2 out; 03- Trigger Pin1 out, Pin2 in. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetTrigIOConfigure(hdl, mode) + +def klcGetChannelEnable(hdl, enable): + """ Get device channel enable state. + Args: + hdl: the handle of opened device + enable: 0x01 V1 Enable , 0x02 V2 Enable, 0x03 SW Enable, 0x00 channel output disable. + Returns: + 0: Success; negative number: failed. + """ + e = c_ubyte(0) + ret = cmdGetChannelEnable(hdl, e) + enable[0] = e.value + return ret + +def klcSetChannelEnable(hdl, enable): + """ Set device channel enable state. + Args: + hdl: the handle of opened device + enable: 0x01 V1 Enable , 0x02 V2 Enable, 0x03 SW Enable, 0x00 channel output disable. + Returns: + 0: Success; negative number: failed. + """ + return cmdSetChannelEnable(hdl, enable) + +def klcGetKcubeMMIParams(hdl, dispBrightness, dispTimeout): + """ Get device configure the operating parameters. + Args: + hdl: the handle of opened device + dispBrightness: display brightness + dispTimeout: display timeout + Returns: + 0: Success; negative number: failed. + """ + db = c_ushort(0) + dt = c_ushort(0) + ret = cmdGetKcubeMMIParams(hdl, db, dt) + dispBrightness[0] = db.value + dispTimeout[0] = dt.value + return ret + +def klcSetKcubeMMIParams(hdl, dispBrightness, dispTimeout): + """ Set device configure the operating parameters. + Args: + hdl: the handle of opened device + dispBrightness: display brightness 0~100 + dispTimeout: display timeout 1~480; set nerver should set to 0xFFFF + Returns: + 0: Success; negative number: failed. + """ + return cmdSetKcubeMMIParams(hdl, dispBrightness, dispTimeout) + +def klcGetKcubeMMILock(hdl, lock): + """ Get the device lock/unlock the wheel control on the top pannel. + Args: + hdl: the handle of opened device + lock: x02 unlock the wheel; 0x01 Lock the wheel + Returns: + 0: Success; negative number: failed. + """ + l = c_ubyte(0) + ret = cmdGetKcubeMMILock(hdl, l) + lock[0] = l.value + return ret + +def klcSetKcubeMMILock(hdl, lock): + """ Set the device lock/unlock the wheel control on the top pannel . + Args: + hdl: the handle of opened device + lock: x02 unlock the wheel; 0x01 Lock the wheel + Returns: + 0: Success; negative number: failed. + """ + return cmdSetKcubeMMILock(hdl, lock) + +def klcGetOutPutStatus(hdl, isOutputActive, outputVoltage, outputFrequency, errFlag): + """ Get the device output status. + Args: + hdl: the handle of opened device + isOutputActive: 0x00 Inactive; 0x01 Active + outputVoltage: output voltage + outputFrequency: output frequency + Returns: + 0: Success; negative number: failed. + """ + active = c_ushort(0) + vol = c_float(0) + freq = c_ushort(0) + err = c_ushort(0) + ret = cmdGetOutPutStatus(hdl, active, vol, freq, err) + isOutputActive[0] = active.value + outputVoltage[0] = vol.value + outputFrequency[0] = freq.value + errFlag[0] = err.value + return ret + +def klcGetStatus(hdl, channelenable, v1, freq1, v2, freq2, swFreq, dispBrightness, dipTimeout, adcMod, trigConfig, wheelMod, errFlag): + """ Get the device status update value. + Args: + hdl: the handle of opened device + channelenable: channel enable state + v1: output voltage 1 + freq1: output frequency 1 + v2: output voltage 2 + freq2: output frequency 2 + swFreq: switch frequency + dispBrightness: display pannel brightness + dipTimeout: display pannel timeout + adcMod: ADC mod in + trigConfig: trigger config + wheelMod: wheel locked mode + errFlag: error flag + Returns: + 0: Success; negative number: failed. + """ + enable = c_ubyte(0) + vol1 = c_float(0) + f1 = c_ushort(0) + vol2 = c_float(0) + f2 = c_ushort(0) + sw = c_float(0) + db = c_ushort(0) + dt = c_ushort(0) + am = c_ubyte(0) + t = c_ubyte(0) + w = c_ubyte(0) + err = c_ushort(0) + ret = cmdGetStatus(hdl, enable, vol1, f1,vol2,f2,sw,db,dt,am,t,w, err) + channelenable[0] = enable.value + v1[0] = vol1.value + freq1[0] = f1.value + v2[0] = vol2.value + freq2[0] = f2.value + swFreq[0] = sw.value + dispBrightness[0] = db.value + dipTimeout[0] = dt.value + adcMod[0] = am.value + trigConfig[0] = t.value + wheelMod[0] = w.value + errFlag[0] = err.value + return ret + +def klcRestoreFactorySettings(hdl): + """ Reset default factory seetings. + Args: + hdl: the handle of opened device + Returns: + 0: Success; negative number: failed. + """ + return klcLib.RestoreFactorySettings(hdl) + +def klcUpdateOutputLUT(hdl, index, voltage): + """ Update LUT value. + Args: + hdl: the handle of opened device + index: index of the LUT array + voltage: output voltage 0~25 + Returns: + 0: Success; negative number: failed. + """ + return cmdUpdateOutputLUT(hdl, index, voltage) + +def klcRemoveLastOutputLUT(hdl, count): + """ Remove the last of LUT array. + Args: + hdl: the handle of opened device + count: the count values will be removed from LUT array + Returns: + 0: Success; negative number: failed. + """ + return cmdRemoveLastOutputLUT(hdl, count) + +def klcSetOutputLUT(hdl, vols, size): + """ Set the LUT array data. + Args: + hdl: the handle of opened device + vols: the LUT values array + size: the count of the array 0~512 + Returns: + 0: Success; negative number: failed. + """ + return cmdSetOutputLUT(hdl, vols, size) + +def klcStartLUTOutput(hdl): + """ Start LUT output. + Args: + hdl: the handle of opened device + Returns: + 0: Success; negative number: failed. + """ + return klcLib.StartLUTOutput(hdl) + +def klcStopLUTOutput(hdl): + """ Stop LUT output. + Args: + hdl: the handle of opened device + Returns: + 0: Success; negative number: failed. + """ + return klcLib.StopLUTOutput(hdl) + +def klcSetOutputLUTParams(hdl, mode, numCycles, delayTime,preCycleRest): + """ Set LUT parameters. + Args: + hdl: the handle of opened device + mode: 1 continuous; 2 cycle + numCycles: number of cycles 1~ 2147483648 + delayTime: the sample intervals[ms] 1~ 2147483648 + preCycleRest: the delay time before the cycle start[ms] 0~ 2147483648 + Returns: + 0: Success; negative number: failed. + """ + return cmdSetOutputLUTParams(hdl, mode, numCycles, delayTime,preCycleRest) + +def klcGetOutputLUTParams(hdl, mode, numCycles, delayTime,preCycleRest): + """ Get LUT parameters. + Args: + hdl: the handle of opened device + mode: 1 continuous; 2 cycle + numCycles: number of cycles 1~ 2147483648 + delayTime: the sample intervals[ms] 1~ 2147483648 + preCycleRest: the delay time before the cycle start[ms] 0~ 2147483648 + Returns: + 0: Success; negative number: failed. + """ + m = c_ushort(0) + n = c_ulong(0) + d = c_ulong(0) + p = c_ulong(0) + ret = cmdGetOutputLUTParams(hdl, m, n, d,p) + mode[0] = m.value + numCycles[0] = n.value + delayTime[0] = d.value + preCycleRest[0] = p.value + return ret \ No newline at end of file diff --git a/KLCCommandLibTest.py b/KLCCommandLibTest.py new file mode 100644 index 0000000..b5e176c --- /dev/null +++ b/KLCCommandLibTest.py @@ -0,0 +1,226 @@ +import time + +try: + from KLCCommandLib64 import * +except OSError as ex: + print("Warning:",ex) + +def main(): + print("*** KLC device python example ***") + try: + devs = klcListDevices() + print(devs) + if(len(devs)<=0): + print('There is no devices connected') + exit() + klc = devs[0] + sn = klc[0] + print("connect ", sn) + hdl = klcOpen(sn, 115200, 3) + if(hdl<0): + print("open ", sn, " failed") + exit() + if(klcIsOpen(sn) == 0): + print("klcIsOpen failed") + klcClose(hdl) + exit() + +# ------------ Example Disable/Enable global output -------------- # + klcSetEnable(hdl,2) + + print("set output to enable") + if(klcSetEnable(hdl, 1)<0): + print("klcSetEnable failed") + + en=[0] + if(klcGetEnable(hdl, en)<0): + print("klcGetEnable failed") + else: + print("klcGetEnable ", en) +# ---------------------------------------------------------------- # + +# ------------ Example Present1 mode ----------------------------- # + print("Enable V1") + klcSetChannelEnable(hdl, 1) + print("set vol1 to 5.0") + if(klcSetVoltage1(hdl, 5)<0): + print("klcSetVoltage1 failed") + vol1=[0] + if(klcGetVoltage1(hdl, vol1)<0): + print("klcGetVoltage1 failed") + else: + print("klcGetVoltage1 ", vol1) + + print("set freq 1 to 2005") + if(klcSetFrequency1(hdl, 2005)<0): + print("klcSetFrequency1 failed") + + freq1=[0] + if(klcGetFrequency1(hdl, freq1)<0): + print("klcGetFrequency1 failed") + else: + print("klcGetFrequency1 ", freq1) +# ---------------------------------------------------------------- # + +# ------------ Example Present2 mode ----------------------------- # + print("Enable V2") + klcSetChannelEnable(hdl, 2) + print("set vol2 to 10.0") + if(klcSetVoltage2(hdl, 10)<0): + print("klcSetVoltage2 failed") + vol2=[0] + if(klcGetVoltage2(hdl, vol2)<0): + print("klcGetVoltage2 failed") + else: + print("klcGetVoltage2 ", vol2) + print("set freq 2 to 3005") + if(klcSetFrequency2(hdl, 3005)<0): + print("klcSetFrequency2 failed") + + freq2=[0] + if(klcGetFrequency2(hdl, freq2)<0): + print("klcGetFrequency2 failed") + else: + print("klcGetFrequency2 ", freq2) +# ---------------------------------------------------------------- # + +# ------------ Example Switching mode ---------------------------- # + print("set to sw mode") + if(klcSetChannelEnable(hdl, 3)<0): + print("klcSetChannelEnable failed") + print("set sw frequency to 99") + if(klcSetSWFrequency(hdl, 99)<0): + print("klcSetSWFrequency failed") + + swf=[0] + if(klcGetSWFrequency(hdl, swf)<0): + print("klcGetSWFrequency failed") + else: + print("klcGetSWFrequency ", swf) +# ---------------------------------------------------------------- # + time.sleep(5) + +# ------------ Example Mode in mode ------------------------------ # + print("set input mode to enable") + if(klcSetInputMode(hdl, 1)<0): + print("klcSetInputMode failed") + + im=[0] + if(klcGetInputMode(hdl, im)<0): + print("klcGetInputMode failed") + else: + print("klcGetInputMode ", im) + print("set mode in frequency") + if(klcSetFrequency1(hdl, 5000)<0): + print("klcSetFrequency1 failed") +# ---------------------------------------------------------------- # + +# ------------ Example Trigger mode ------------------------------ # + print("set trigger mode to Pin 1") + if(klcSetTrigIOConfigure(hdl, 2)<0): + print("klcSetTrigIOConfigure failed") + + trigger=[0] + if(klcGetTrigIOConfigure(hdl, trigger)<0): + print("klcGetTrigIOConfigure failed") + else: + print("klcGetTrigIOConfigure ", trigger) +# ---------------------------------------------------------------- # + +# --------- Example Wheel lock, pannel brightness/timeout -------- # + print("set wheel lock to locked") + if(klcSetKcubeMMILock(hdl, 1)<0): + print("klcSetKcubeMMILock failed") + + lock=[0] + if(klcGetKcubeMMILock(hdl, im)<0): + print("klcGetKcubeMMILock failed") + else: + print("klcGetKcubeMMILock ", im) + + print("set pannel brightness to 90, timeout to never") + if(klcSetKcubeMMIParams(hdl, 90, 0xFFFF)<0): + print("klcSetKcubeMMIParams failed") + + dbrightness=[0] + dtimeout=[0] + if(klcGetKcubeMMIParams(hdl, dbrightness, dtimeout)<0): + print("klcGetKcubeMMIParams failed") + else: + print("klcGetKcubeMMIParams dbrightness: ", dbrightness ," dtimeout:", dtimeout) +# ---------------------------------------------------------------- # + +# ------------ Example get output status ------------------------- # + active=[0] + v=[0] + f=[0] + err=[0] + ch=[0] + if(klcGetOutPutStatus(hdl, active, v, f, err)<0): + print("klcGetOutPutStatus failed") + else: + print("klcGetOutPutStatus active: ", active ," voltage: ", v ," frequency: " , f, " errFlag ",err) + + if(klcGetStatus(hdl, ch, vol1, freq1, vol2, freq2, swf, dbrightness, dtimeout, im, trigger, lock, err)<0): + print("klcGetStatus failed") + else: + print("klcGetStatus channel: ", ch ," vol1: ", vol1 ," freq1: " , freq1," vol2: ", vol2 ," freq2: " , freq2," swf: ", swf ," dbrightness: " , dbrightness," dtimeout: ", dtimeout ," im: " , im," trigger: ", trigger ," lock: " , lock, " errFlag ",err) +# ---------------------------------------------------------------- # + +# ------------ Example run LUT ---------------------------------- # + print("Test LUT Array") + #disbale trigger mode + klcSetTrigIOConfigure(hdl, 1) + #disable mode in mode + klcSetInputMode(hdl, 0) + klcSetChannelEnable(hdl, 1) + + #init array 2,4,6,8,10 + vols = [2,4,6,8,10] + volarr = (c_float * len(vols))(*vols) + print("set LUT array") + if(klcSetOutputLUT(hdl, volarr, 5)<0): + print("klcSetOutputLUT failed") + #update second 4 to 5 + if(klcUpdateOutputLUT(hdl, 1, 5)<0): + print("klcUpdateOutputLUT failed") + #remove last one the arry will be 2,5,6,8 + if(klcRemoveLastOutputLUT(hdl, 1)<0): + print("klcRemoveLastOutputLUT failed") + + print("set LUT parameters") + if(klcSetOutputLUTParams(hdl, 2, 3, 1000, 0)<0): + print("klcSetOutputLUTParams failed") + + lut_mode=[0] + lut_cyclenumber=[0] + lut_delay=[0] + lut_precycle_rest=[0] + if(klcGetOutputLUTParams(hdl, lut_mode, lut_cyclenumber, lut_delay, lut_precycle_rest)<0): + print("klcGetOutputLUTParams failed") + else: + print("klcGetOutputLUTParams mode: ", lut_mode ," lut_cyclenumber:", lut_cyclenumber," lut_delay:", lut_delay," lut_precycle_rest:", lut_precycle_rest) + + print("start LUT") + if(klcStartLUTOutput(hdl)<0): + print("klcStartLUTOutput failed") + + t=0 + while(t<20): + klcGetOutPutStatus(hdl, active, v, f, err) + print("Get LUT output: ", active ," voltage: ", v ," frequency: " , f, " errFlag ", err) + time.sleep(1) + t+=1 + print("stop LUT") + if(klcStopLUTOutput(hdl)<0): + print("klcStopLUTOutput failed") +# ---------------------------------------------------------------- # + + klcClose(hdl) + + except Exception as ex: + print("Warning:", ex) + print("*** End ***") + input() +main() + diff --git a/KLCCommandLib_x64.dll b/KLCCommandLib_x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..b86be1c93f52a54564f2c6831373a8e57ebf6e87 GIT binary patch literal 306176 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 BXaN8K literal 0 HcmV?d00001 diff --git a/KLCCommandLib_x64.lib b/KLCCommandLib_x64.lib new file mode 100644 index 0000000000000000000000000000000000000000..4cb288195f645b19587e53a3fc40bbbdd164f378 GIT binary patch literal 10582 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 literal 0 HcmV?d00001 diff --git a/__pycache__/KLCCommandLib64.cpython-312.pyc b/__pycache__/KLCCommandLib64.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cef260416bf84a01fed71210afa1894f55e534cb GIT binary patch literal 22797 zcmeHPYit`=cIHbWMe0SpCCk$IDJgzLr0v*IoUCm*vMs+7%a1JWL`!i-6m5!>hm>Wh zbV~1Lcjb7uk+ub-G}uN4`a?mwfEPiq4vMz!1I2E)XsObL*@1x??XN}mM{4I!1GMOO z?z|~V-db|ATXY28xsP+s+&TB0bI-l^jDB8L=C2!)NHtQH_E>Ho;3Ik?|P>JVPnDExC(E2@4 z1-vRFp3Ndu3zg~{f<~2zM!Sxy<^r{#QEQ|j)B&&7gtuLV*6)D^;5975YcS#Yb$B%w zXaZi75s&q`&d}#36O9*CO#L2c294%rX*8Q?bm_QiF3n_ zgN=8a3GX!(TE7Q6fY)KfTQqJRCK{)8Ts0Ti0vcP4G=#0-`4$siK!w)tf$hNCZp35H z-fH08b`y=abX+wT=md>UBMtWKP7~gM3a#G*e&G3yc#EFxH_;f>an)R4Cur<6(qPZt zX~MgxLhJXy3&4B9h_~q3FPLb=bX+wT*aI4Sj5LH+NV*+$Myn*M@cKQ_1eTIGy9Kh2KEP9$Iv5ew!PkY)n^ZS^ew_HiX3zwna#<%;9 z{#I%(a1d{I(D-(csX9o&K@;Y?D!hIV^Z>KRj0p?SW5W9#9bU}^4g>G75zov)CeepY zRDPi1>i0k|sPr1Cpx;O74`bSE!k*Q!)Lh^=u#X$D&2qs?M^&4&TnSG*u0M@;ykiNR z;ERx+PVnd^yrL_zI+7=PQv0crViP zd==6Qd^OTH`5L5e@wG_%`8uTE;OmhF`39r|d?V5j--MLs*B}-6W~77sTBKpV1?dpq ziZsG=NH6m1kY3`~BaQMKkPh=3k;eEmP}kYH6Dzei;I{1o&KE{4h9oL!EML7PxW`ldEvt8p|}_g z4kY@I9_#LZZ9F*?kM$iqdSN|^-SOe!V2nQ&8R)`CLW@>!O<67yg}m#cGp_8A|WB+=5U=7lA~fQ(Z#V6Dozgx+@)wp0pg+{v6T~op&`@&i;E9jm6SYSp zF(Cnb^rJf-ON#MmR1kkbt-m0F>TpXnAyEh>h5kfRjKsqI1EYh3f+#sd!;s8GQnHJ| zF{zjrLXc*uSR|+ssVFfLji4;MF~kQj|7CAY$Y zKB@ywI5{L)Ba&08W|kh~^CnAab^63(yrU(g*%1_q@ME@z79K|11C2Anp_MM!9mP7O ztk8S~0$O34_)qR6I5Mj>11*T2J2dP+yks@{2C6}Vn zajA&CmE=@Zw$eEhys4F07^j)DsuY-q3y7V9q7GO z#Jcm5RkGuWMpn7ND%K`;0`61%64gi`l#Ek*Z|t45XFbgsN3+Zz#a97{!K-OP!E9Ml zn)d?PvQB);^+A21$0MUjPKX5u@Tw$WLIJ7zl~_Xah)k!8>%7|OQwm$D;O8*&&?6Y} zl`zjLm162d*I#8_{>Uaik2fX7C-Mp6g{s@7;G+g8?n29-;+G%?1-z`Zls3%TXU}Fm z8#9iL%W(1(;EkNrbrl{N2_w7UL+M_lJ!LE89j2_jm3c{arrn=%hkgS`fVn;}u*ISN zf$^lkh6C>*4~JC5=7EnKY*fUZV2xxI;N%F&gaZYV5!vw4;Am*#%V_&4ehIP-Y;Z~{ zCNJMCN$-E)uA55C?$5eg(%rdA?~HTWneLhNT|biZl&5>YiedYaaoEnrqsd@c;C!-C zdlf*?;6Lya$v<9(ZO?3?y=}DEJ)&@V6w8G1721nI&>=F< z(rCLv{i6x&a3!Tm*=lQ@H`{HO+8OK?pj(A3ccpB(4Ft|%H0epK8d@fT<>BAikR*#R~wbB);pWym_{Jt|9ArF5`IatI&@h7uJuJ86#r; zBK=S+SIMgp$z&|j4aK0-0b`y)&sPG!_zeIxVKBrukXeTJPc-SvNcJ=0~*2g`S}i|qLt7?_%@d-Jog=NdO?ujGG+ z?_B40-`l=jt7XrL^RUuJb}kZoVtF1+1T24rSgxD$wX=P5?OD&3jAP3(=H!_v!Y51- z%kG~_i;Scv_^GM zKP2mLAt$Fo)(RbQ1Os%~q!T5TQ`Vbq+E-}A`ss4ky$(82Uh!V|MmT+N(tG{TihZ0< zn2+Uc&fDwX#l8Uyhu_QRQGHJSxhXB@WXNo0q<|vL@w&j{&lO34Lmvv(LSrb+@gu zKFNa#fm07ClB++M&weadW6?oF2tMSGNrFbt=%3Np6@Z%nT-2*lKG_^)oV`ogHA zAsn~FgsAB#VnvRd=`7-`kCS((IpsWpJL^|!Sj7&G>pN$x=;YK6DZ7ly0mh04QrVD| zwX#~)%5M4Hl)pS+6ypX{7Jajo-(afVabB(qyS zLi)crZkQrzw4hk#0oakRel$#rpwfW)mRb2)XA^ThM&;Aak^rlnDNmxX#OagW7_;;- zh|_h=VLFqtryOd$z_p^3ec4kfN5NK`a%M$QIJSvLCY4pE5q4aP!(kC;`>`-L5)^~O zLK2}|D-r}~+{ghK`=KOaY!K5!fjX}qiPgyZok#n-fcid3 z4xP2IzyvoPv8+iScu?Y1GVT`0(t&wf*1ZL@Z$s0EuJ>K(6H~qgM{TaQe&&toH_}I^ ztk+K%eA|M;MhEgnVZ))OIpD+^Y(-a0>i<>C0Cu*qv-c}W0_S^s=bp}&SlmiX5U)^( z%TRnYipUDM7s)tIs(Wy)RA68!NK9Y@%tP5>mrq5%1ul#4ATfuc(C{z95h+Oahcx`v z$gtrr<=|+&b^CnQvp?h5{}s5`6aU7H0G+@otDI;&bm{rg7~PmD7#k8WlOuSD0^+!M zj8!J%Bd`oK$FImL&_lX73Mt5cAlzvRJ2+%M&6Ejg%jlC|K` zX_Z;K8SZ-+(|H?GQ zvg8y*u_qb~BVd@ZL+pkOh-Z;Vb~MS3hZ{xacd$f`$5G6asUsf%?$1c{>02GlJvEl{ zx~bsJ^XZ-kZgM>+%)?Wyo*7nQvl;Hk12qBRuzP;E?8SrP@8KD*47oQtuIKoA*p?N0DDlDDo<6UDpTH6RjN8wld4VC zrRq}+A1i#k)|e{0Na5dkmu4Tz3%08Ep`u``Y9A^KwyO5QTd=iAu^v?gTZ@&}>VmCK zrM0GDt4nFEE!bM3wAK}Dbt|p)1zSBzYeT`-Ql+(#*~6D1s`>U%3FaLg;SqBwhflA_ zDk|%6b=RZNvRpHCR}j@JTMjk!jPq%YWbO2J&Gs1}uJ{+B`%UP2yN<3yB*w^IA$(ju zq0>M#66O_@zVMU1$HMDBb&0hI+PDfNdl%$GI8*52_8;t~y#x=7!? z$)TMNgb9M;piiQlA36LIW8$|7;yXmu795tWNy$1U{yx>QkV4vDVlz*{#1tN?yxDDF z+@pzT7ZOZFn=R$FQ?K6)U?M`ip?t=vEru7@z^V4$Y%(sGHDImDRiT^ZA(M%g#Q*Ixqk6M))avJ1b zDN=cn<)+xym6|7InI*p!Tu7YTq65l)hg8IRCdarEi=g(p&zXlK{saIX;(awT@_q*` zw|3398NUeufOa{MW1N5DzI6s-I~>QyN5r9M5ML95TNKI-~=e_b>L=o$aX^~sU1fTd|!Vv!$e5@nR z>kHlWa~tMHS3~0eN!xVL*v-N339g9ekZ9}*tJ2OsJV@jTeIhaeiPuL((GI2=*f`wf zlf9Cam>uopT<5*K&&TG(gyf(;n0NY=6LbwhybIQIW}#;%=;p(@)w15-<}j^_NhXGI zrmRmr3@c%rVz0|tXCM|bI~Lh#7Is7Z)j|Fe?Ak)?GTCQt!NbkLKI=gTtHrQ)z%XoH zlIVW*{3@fq=)B0E)>v?!3F5E8t(}Xw)w4p>I{qP_x(h)@w2d5zjmAe4FL8b@G#*mEA|vk+U$b^o1?+(SVJibk zV6&g|`*!Z$xo5`gwlvfsItLY#j9TZSeyl`mtSpiPUX5lw?mD@~Db`3n*H>ChC#FbX;dCWkCb;M{bYbZO(d5WE>|}cMp`N za&{T^Xq*N2U4FgyK$%L=9_at8gsimBN+smAvAn6uVhE%0SXhmB%9m&Q+O0$0TNO!F z#Gg^}HnF@9FGvVoQ`q-5B`bqt0w*&tKB9t5-5fYLu zp1^;K7>5%Q!oNR}Jjdce`hO^5P#l*ROAh*{3?gj{O8C|Udj?`Z{`*9zANEjk1;wyT z#wo(&fuQ7IUwE%4@Di9HC0@mkvbdX7Lf)0iJydqScJj!H)32VAJb*qcFF<_aA%bTC z&xUHhc#<$Ypr8Tn%d7E=$Ec-A9rtpaF%xYjsp0Bn8(ZL&+1!00wb1N}Cu z2E4gCMb%zFo6nfV8>}ASdG+6<`U(R)JAj;KwFYQb`#rT5@~t0B{2tYo09M(Q`5}YK zU%!1ywbcbyB;se(Ld?^&M*I`1A|`27N(Ves$YIbz26n-`Ilmo~0qThMQ~8G;Lv}#)nT2a;t5=J-dEKrfKK$q!z)| zG~KW1Sg7g9SiHHWR;2eVjk)G^bGtKZ&?}Uh9xefLYxn%_?1mkgHFzY0t7^DkwP~Sh zQ@SG8ur^%*?toRS{^O|a%*gUEZep_)4E52t82brw{4+rTgFn2H$r;PvIaEg&Sln8-91b5 z!zDm&otr-VxFZO0yjw;}_Ywp)>S*QhMua z`~JM`r|sDTeG6wUWZvYnXM}}tEE6BghOhp+#qwL$1GdjCmTp_G?J<>(+E97icA6^B z*xsbdb`vfnmHm0??)D*J6CRC(EUl`6+=`|PN^Y};=~