Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Calibration
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Calibration
Commits
78e72a0f
Commit
78e72a0f
authored
Sep 21, 2018
by
Peter Jansweijer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wr_serial_3lamda.py now reads ddelay.out file
parent
16c19d45
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
89 additions
and
21 deletions
+89
-21
wr_serial_3lamda.py
sw/insitu_alpha/wr_serial_3lamda.py
+89
-21
No files found.
sw/insitu_alpha/wr_serial_3lamda.py
View file @
78e72a0f
...
...
@@ -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
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment