commit old stuff from lab
This commit is contained in:
BIN
projects/Lab_base_system/exfo_control_app.mlapp
Normal file
BIN
projects/Lab_base_system/exfo_control_app.mlapp
Normal file
Binary file not shown.
15
projects/Lab_base_system/exfo_laser_example.m
Normal file
15
projects/Lab_base_system/exfo_laser_example.m
Normal file
@@ -0,0 +1,15 @@
|
||||
%% Laser
|
||||
start_wavelength = 1550;
|
||||
laser = Exfo_laser("mainframe_channel",3,"safety_mode",0,"connection_id",'10','lab_interface','gpib');
|
||||
laser.getLaserInfo();
|
||||
|
||||
laser.setWavelength(start_wavelength)
|
||||
laser.setPower(0);
|
||||
|
||||
laser.enableLaser();
|
||||
for l = 1550:1560
|
||||
laser.setWavelength(l);
|
||||
end
|
||||
|
||||
laser.disableLaser();
|
||||
|
||||
74
projects/Lab_base_system/olaf_control.m
Normal file
74
projects/Lab_base_system/olaf_control.m
Normal file
@@ -0,0 +1,74 @@
|
||||
|
||||
clear all
|
||||
|
||||
visastring = "GPIB0::22::INSTR";
|
||||
v_pwrmtr = visadev(visastring);
|
||||
writeline(v_pwrmtr, "*IDN?");
|
||||
answ = readline(v_pwrmtr);
|
||||
disp(['Yay! We can talk to Instrument: ',char(answ)]);
|
||||
|
||||
% laser = Exfo_laser("mainframe_channel",3,"safety_mode",0,"connection_id",'15','lab_interface','gpib');
|
||||
% laser.getLaserInfo();
|
||||
|
||||
L = OptLaserN7714A("GPIB0::20::INSTR");
|
||||
|
||||
% visastring = 'GPIB0::10::INSTR';
|
||||
% v_lsr = visadev(visastring);
|
||||
% writeline(v_lsr, "*IDN?");
|
||||
% answ = readline(v_lsr);
|
||||
% disp(['Yay! We can talk to Instrument: ',char(answ)]);
|
||||
|
||||
steps = 100;
|
||||
wavelength_sweep = linspace(1554,1556,steps);
|
||||
start_wavelength = wavelength_sweep(1);
|
||||
|
||||
% laser.setWavelength(start_wavelength);
|
||||
L.setWavelength(start_wavelength,0);
|
||||
% laser.setPower(0);
|
||||
% laser.enableLaser();
|
||||
L.setPower(0, true,0);
|
||||
|
||||
|
||||
pwr_save = NaN(size(wavelength_sweep));
|
||||
for l = 1:numel(wavelength_sweep)
|
||||
|
||||
% 1)
|
||||
% laser.setWavelength(wavelength_sweep(l));
|
||||
L.setWavelength(wavelength_sweep(l),0);
|
||||
%writeline(v_lsr, ['L=' num2str(wavelength_sweep(l))]);
|
||||
|
||||
% 2) Set Wavelength of Power Meter
|
||||
t = string(['SENS2:POW:WAVE ',num2str(wavelength_sweep(l)),'NM']);
|
||||
writeline(v_pwrmtr, t);
|
||||
% writeline(v, "SENS:POW:WAVE?");
|
||||
% wavel = readline(v);
|
||||
|
||||
% 3) Read Power of
|
||||
writeline(v_pwrmtr, "READ2:POW?");
|
||||
pwr = readline(v_pwrmtr);
|
||||
pwr_save(l) = str2num(pwr);
|
||||
|
||||
figure(2025);clf
|
||||
plot(wavelength_sweep,pwr_save,'Marker','*');
|
||||
xlabel('Wavelength [nm]');
|
||||
ylabel('Insertion Loss [dB]');
|
||||
ylim([min(pwr_save)-1, min(pwr_save)+1]);
|
||||
xlim([wavelength_sweep(1) wavelength_sweep(end)])
|
||||
grid minor
|
||||
|
||||
end
|
||||
|
||||
% laser.disableLaser();
|
||||
L.setPower(0, false,0);
|
||||
L.delete();
|
||||
|
||||
%writeline(v_lsr, 'DISABLE');
|
||||
|
||||
path= "Z:\2025\NFT WDM DFG Olaf\lambda_vs_power";
|
||||
|
||||
dt = datetime('now','Format','yyyyMMdd_HHmmss');
|
||||
filename = fullfile(path, "loop_5_7_"+num2str(wavelength_sweep(1)) +"nm_to_"+ num2str(wavelength_sweep(end))+ "nm_" + string(dt) + ".mat");
|
||||
|
||||
save(filename, "pwr_save","wavelength_sweep");
|
||||
|
||||
disp("Saved to: " + filename);
|
||||
@@ -0,0 +1,61 @@
|
||||
|
||||
clear all
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
start_wavelength = 1554.2; %nm
|
||||
stop_wavelength = 1555.7; %nm
|
||||
steps = 100;
|
||||
power = 0; %dBm
|
||||
name = "south_board_total_loss_ports_21_20";
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
wavelength_sweep = linspace(start_wavelength,stop_wavelength,steps);
|
||||
wavelength_1 = wavelength_sweep(1);
|
||||
|
||||
visastring = "GPIB0::22::INSTR";
|
||||
v_pwrmtr = visadev(visastring);
|
||||
%writeline(v_pwrmtr, "*IDN?");
|
||||
%answ = readline(v_pwrmtr);
|
||||
%disp(['Yay! We can talk to Instrument: ',char(answ)]);
|
||||
|
||||
L = OptLaserN7714A("GPIB0::20::INSTR");
|
||||
L.setWavelength(wavelength_1,0);
|
||||
L.setPower(power, true,0);
|
||||
|
||||
pwr_save = NaN(size(wavelength_sweep));
|
||||
for l = 1:numel(wavelength_sweep)
|
||||
|
||||
% 1)
|
||||
L.setWavelength(wavelength_sweep(l),0);
|
||||
|
||||
% 2) Set Wavelength of Power Meter
|
||||
t = string(['SENS1:POW:WAVE ',num2str(wavelength_sweep(l)),'NM']);
|
||||
writeline(v_pwrmtr, t);
|
||||
|
||||
% 3) Read Power of
|
||||
writeline(v_pwrmtr, "READ1:POW?");
|
||||
pwr = readline(v_pwrmtr);
|
||||
pwr_save(l) = str2num(pwr);
|
||||
|
||||
figure(2026);clf
|
||||
plot(wavelength_sweep,pwr_save,'Marker','*');
|
||||
xlabel('Wavelength [nm]');
|
||||
ylabel('Insertion Loss [dB]');
|
||||
ylim([min(pwr_save)-1, max(pwr_save)+1]);
|
||||
xlim([wavelength_sweep(1) wavelength_sweep(eind)])
|
||||
grid minor
|
||||
end
|
||||
|
||||
L.setPower(0, false,0);
|
||||
L.delete();
|
||||
|
||||
path= "Z:\2025\NFT WDM DFG Olaf\lambda_vs_power";
|
||||
|
||||
dt = datetime('now','Format','yyyyMMdd_HHmmss');
|
||||
filename = fullfile(path, name+"_"+replace(num2str(wavelength_sweep(1)),".","_") +"nm_to_"+ replace(num2str(wavelength_sweep(end)),".","_")+ "nm_" + string(dt) + ".mat");
|
||||
|
||||
save(filename, "pwr_save","wavelength_sweep");
|
||||
|
||||
disp("Saved to: " + filename);
|
||||
21
projects/Lab_base_system/olaf_laser_control.m
Normal file
21
projects/Lab_base_system/olaf_laser_control.m
Normal file
@@ -0,0 +1,21 @@
|
||||
clear all
|
||||
|
||||
% L = OptLaserN7714A("TCPIP0::134.245.243.209::inst0::INSTR");
|
||||
% L.setWavelength(1551,1); % nm
|
||||
% L.setPower(5.8, true,1); % dBm, also turns output ON
|
||||
% L.setDither(0,1);
|
||||
% % L.setPower(5.9, false,1);
|
||||
% info = L.getLaserInfo();
|
||||
%
|
||||
% L.delete();
|
||||
|
||||
|
||||
clear all
|
||||
|
||||
L = OptLaserN7714A("GPIB0::20::INSTR");
|
||||
L.setWavelength(1550,0); % nm
|
||||
L.setPower(0, true,0); % dBm, also turns output ON
|
||||
L.setPower(0, false,0);
|
||||
info = L.getLaserInfo();
|
||||
|
||||
L.delete();
|
||||
29
projects/Lab_base_system/olaf_laser_control_minimal.m
Normal file
29
projects/Lab_base_system/olaf_laser_control_minimal.m
Normal file
@@ -0,0 +1,29 @@
|
||||
% --- Minimal N7714A example (MATLAB) ---
|
||||
visa_addr = "TCPIP0::134.245.243.209::inst0::INSTR"; % <-- change to your laser's IP
|
||||
port = 1; % 1..4 selects the N7714A output port
|
||||
|
||||
% v = visadev(visa_addr);
|
||||
|
||||
% Identify instrument
|
||||
writeline(v,'*IDN?'); disp(strtrim(readline(v)));
|
||||
|
||||
% Make sure wavelength is settable (Auto mode)
|
||||
writeline(v, sprintf('SOUR%d:WAV:AUTO 1', port)); % Auto Mode ON (wavelength set allowed).
|
||||
|
||||
% Set wavelength and power (units explicit)
|
||||
writeline(v, sprintf('SOUR%d:WAV 1560NM', port)); % set 1550 nm. :contentReference[oaicite:3]{index=3}
|
||||
writeline(v, sprintf('SOUR%d:POW:UNIT DBM', port)); % power unit = dBm. :contentReference[oaicite:4]{index=4}
|
||||
writeline(v, sprintf('SOUR%d:POW:LEV:IMM:AMPL 6 DBM', port)); % set -3 dBm. :contentReference[oaicite:5]{index=5}
|
||||
|
||||
% Enable output (either OUTP or SOUR:POW:STAT works)
|
||||
writeline(v, sprintf('OUTP%d:STAT ON', port)); % laser ON. :contentReference[oaicite:6]{index=6}
|
||||
writeline(v, 'OUTP1 ON');
|
||||
|
||||
% ---- Read back to verify ----
|
||||
writeline(v, sprintf('SOUR%d:WAV?', port)); wav_m = str2double(readline(v));
|
||||
writeline(v, sprintf('SOUR%d:POW:LEV:IMM:AMPL?', port)); pow = str2double(readline(v));
|
||||
writeline(v, sprintf('OUTP%d:ON?', port)); onoff = str2double(readline(v));
|
||||
|
||||
fprintf('Port %d -> %.2f nm, %.2f dBm, Output=%d\n', port, 1e9*wav_m, pow, onoff);
|
||||
|
||||
delete(v);
|
||||
@@ -0,0 +1,2 @@
|
||||
L.setPower(power, false,0);
|
||||
L.delete();
|
||||
@@ -0,0 +1,19 @@
|
||||
clear all
|
||||
|
||||
% 1554.7097
|
||||
% 1554.9032
|
||||
% 1555.0968
|
||||
% 1555.2904
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
wavelength = 1555.0968; %nm
|
||||
power = 6; %dBm
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
L = OptLaserN7714A("GPIB0::20::INSTR");
|
||||
|
||||
L.setWavelength(wavelength,0);
|
||||
L.setPower(power, true,0);
|
||||
Reference in New Issue
Block a user