Commit 78e72a0f authored by Peter Jansweijer's avatar Peter Jansweijer

wr_serial_3lamda.py now reads ddelay.out file

parent 16c19d45
......@@ -41,11 +41,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
-------------------------------------------------------------------------------
Usage:
wr_serial_3lambda.py [-o <dir>] [-m <number>]
wr_serial_3lambda.py -name ddelay.out [-o <dir>] [-m <number>]
wr_serial_3lambda.py -h | --help
Options:
-h --help Show this screen.
-name pointer to a "ddelay.out" file to be taken as input for measurements
-sm master serial port, default: "/dev/ttyUSB2"
-ss slave serial port, default: "/dev/ttyUSB1"
-t track fiber spool temperature (using Digital Multimeter and PT100), default: False
......@@ -373,7 +374,57 @@ def meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, c
#continue
return (result_line)
############################################################################
def file_to_array(filename):
"""
Retrieve the delat delay file
filename -- source file from which to retrieve data.
returns: True, <type 'numpy.array'>
[lambda 1 itu-ch, lambda 2 itu-ch],
[lambda 1 itu-ch, lambda 2 itu-ch],
:
False
"Not a Delta Delay file"
"""
# create empty list
pairs=[]
data_file = open(filename, "r")
line = data_file.readline()
if line.strip() != "# Proposed Delta Delay measurements":
Exception("file_to_arrays: Not a Delta Delay measurements file.")
data_file.close()
return (False, alpha_spec_data)
while 1:
line = data_file.readline()
if line[:len("#")] != "#": # Skip lines that are commented out
line_lst = line.split(",")
if len(line_lst) < 3:
break
# Values of interest on one line are lambda-1[nm] and lambda-2[nm]:
# # lambda-1[nm], ITU-ch, SPEC_alpha_3wl(lambda-1), lambda-2[nm], time_err[ps]
l1_wavelength = float(line_lst[0])*1e-9
l2_wavelength = float(line_lst[3])*1e-9
l1 = itu_conv.wavelength_2_itu(l1_wavelength)
l2 = itu_conv.wavelength_2_itu(l2_wavelength)
pair = l1, l2
pairs.append(pair)
arr_pair=numpy.array(pairs)
data_file.close()
return (True, arr_pair)
###############################################
# Main
......@@ -381,11 +432,12 @@ def meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, c
"""
Usage:
wr_serial_3lambda.py [-o <dir>] [-m <number>]
wr_serial_3lambda.py -name ddelay.out [-o <dir>] [-m <number>]
wr_serial_3lambda.py -h | --help
Options:
-h --help Show this screen.
-name pointer to a "ddelay.out" file to be taken as input for measurements
-sm master serial port, default: "/dev/ttyUSB2"
-ss slave serial port, default: "/dev/ttyUSB1"
-t <IP> track fiber spool temperature (using PT100 and Digital Multimeter at IP address)
......@@ -400,18 +452,27 @@ if __name__ == "__main__":
#arguments = docopt(__doc__,version='White Rabbit controlled via serial port')
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("name", help="file containing ddelay measurements to perform")
parser.add_argument("-mserial", default="/dev/ttyUSB2")
parser.add_argument("-sserial", default="/dev/ttyUSB1")
parser.add_argument("-t", help="track fiber spool temperature (using PT100 and Digital Multimeter at IP address)", default=None)
parser.add_argument("-output_dir", default="data")
parser.add_argument("-measurements", default=1, type=int)
args = parser.parse_args()
name = args.name
print("Used Delta Delay input file: ",name)
print("Use Master Serial port: ",args.mserial)
print("Use Slave Serial port: ",args.sserial)
print("Fiber spool temperature track: ",args.t)
print("Output directory: ",args.output_dir)
print("Number of measurement cycles: ", args.measurements)
if os.path.exists(name) == True and os.path.isfile(name) == True:
measure, pairs = file_to_array(name)
else:
print("Delat Delay input file not found")
sys.exit()
# add trailing slash if not present
output_dir = os.path.join(args.output_dir,'')
if os.path.exists(output_dir) != True:
......@@ -554,26 +615,33 @@ if __name__ == "__main__":
wr2wrpc(ser_slave,"stat on\r","slv=>")
l1 = 40
l2 = 56
while measurements > 0:
measurements = measurements - 1
for pair in pairs:
# pair[0] = ITU channel for lambda 1
# pair[1] = ITU channel for lambda 2
# write file delimieter to separate the measurements in the output file
print("ITU-Lambda1 = " + str(pair[0]) + ", ITU-Lambda2 = " + str(pair[1]) + "\r")
data_file_l1_a.write(("ITU-Lambda1 = " + str(pair[0]) + ", ITU-Lambda2 = " + str(pair[1]) + "\r").encode())
data_file_l2_a.write(("ITU-Lambda1 = " + str(pair[0]) + ", ITU-Lambda2 = " + str(pair[1]) + "\r").encode())
data_file_l2_b.write(("ITU-Lambda1 = " + str(pair[0]) + ", ITU-Lambda2 = " + str(pair[1]) + "\r").encode())
data_file_l1_b.write(("ITU-Lambda1 = " + str(pair[0]) + ", ITU-Lambda2 = " + str(pair[1]) + "\r").encode())
# for each pair, repeat 3-lamda wavelength measuremens with link restart "measurement" times
meas = measurements
while meas > 0:
meas = meas - 1
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, pair[0])
data_file_l1_a.write(result_line.encode())
timestamp = time.localtime()
ch = l1
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, ch)
data_file_l1_a.write(result_line.encode())
ch = l2
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, ch)
data_file_l2_a.write(result_line.encode())
ch = l2
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, ch)
data_file_l2_b.write(result_line.encode())
ch = l1
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, ch)
data_file_l1_b.write(result_line.encode())
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, pair[1])
data_file_l2_a.write(result_line.encode())
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, pair[1])
data_file_l2_b.write(result_line.encode())
result_line = meas_crtt(ser_tunable, ser_master, ser_slave, master_is_switch, crtt_skip, crtt_measurement, pair[0])
data_file_l1_b.write(result_line.encode())
data_file_l1_a.close()
data_file_l2_a.close()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment