diff --git a/.gitignore b/.gitignore
index dee43f70b..0d745c20f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,3 +105,140 @@ venv.bak/
# doc generation
doc/source/_static/logos
+adjacent_loopback_by_channel.png
+combined_loopback_by_channel.png
+install_libiio.sh
+install_libiio.sh.1
+progress.html
+progress2.html
+report_007.pdf
+report.html
+SN7 Test Report 2.html
+SN7 Test Report 2.pdf
+SN7 Test Report 3.pdf
+SN7 Test Report.pdf
+test_triton_cal.json
+test_triton.json
+test.html
+testfig.png
+testfig2.png
+testfig3.png
+testfig4.png
+testfig5.png
+triton_cal_plots.py
+tritonsn7_2.html
+tritonsn7.html
+assets/style.css
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set0_50000000_0.9__25_5_15_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set1_50000000_0.9__25_5_15_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set2_50000000_0.9__25_5_15_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set3_50000000_0.9__20_5_15_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set4_50000000_0.9__30_11_9_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_dds_loopback_param_set5_50000000_0.9__50_5_15_channel_15_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_0_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_1_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_2_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_3_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_4_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_5_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_6_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_7_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_8_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_9_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_10_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_11_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_12_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_13_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_14_adi.Triton__0_0.png
+assets/test_test_triton.py__test_Triton_sfdr_50_param_set0_5_15_channel_15_adi.Triton__0_0.png
+test/html_to_pdf.py
diff --git a/=0.0.18 b/=0.0.18
new file mode 100644
index 000000000..92b2d21d7
--- /dev/null
+++ b/=0.0.18
@@ -0,0 +1,11 @@
+Requirement already satisfied: pytest-libiio in ./venv/lib/python3.10/site-packages (0.0.18)
+Requirement already satisfied: click in ./venv/lib/python3.10/site-packages (from pytest-libiio) (8.1.7)
+Requirement already satisfied: lxml in ./venv/lib/python3.10/site-packages (from pytest-libiio) (5.2.2)
+Requirement already satisfied: pylibiio>=0.23.1 in ./venv/lib/python3.10/site-packages (from pytest-libiio) (0.23.1)
+Requirement already satisfied: pytest>=3.5.0 in ./venv/lib/python3.10/site-packages (from pytest-libiio) (8.2.2)
+Requirement already satisfied: pyyaml in ./venv/lib/python3.10/site-packages (from pytest-libiio) (6.0.1)
+Requirement already satisfied: exceptiongroup>=1.0.0rc8 in ./venv/lib/python3.10/site-packages (from pytest>=3.5.0->pytest-libiio) (1.2.1)
+Requirement already satisfied: tomli>=1 in ./venv/lib/python3.10/site-packages (from pytest>=3.5.0->pytest-libiio) (2.0.1)
+Requirement already satisfied: iniconfig in ./venv/lib/python3.10/site-packages (from pytest>=3.5.0->pytest-libiio) (2.0.0)
+Requirement already satisfied: pluggy<2.0,>=1.5 in ./venv/lib/python3.10/site-packages (from pytest>=3.5.0->pytest-libiio) (1.5.0)
+Requirement already satisfied: packaging in ./venv/lib/python3.10/site-packages (from pytest>=3.5.0->pytest-libiio) (24.1)
diff --git a/=1.20 b/=1.20
new file mode 100644
index 000000000..78a1cc5ba
--- /dev/null
+++ b/=1.20
@@ -0,0 +1 @@
+Requirement already satisfied: numpy in ./venv/lib/python3.10/site-packages (2.0.0)
diff --git a/=4.6 b/=4.6
new file mode 100644
index 000000000..350e76ab1
--- /dev/null
+++ b/=4.6
@@ -0,0 +1,6 @@
+Requirement already satisfied: pytest in ./venv/lib/python3.10/site-packages (8.2.2)
+Requirement already satisfied: exceptiongroup>=1.0.0rc8 in ./venv/lib/python3.10/site-packages (from pytest) (1.2.1)
+Requirement already satisfied: packaging in ./venv/lib/python3.10/site-packages (from pytest) (24.1)
+Requirement already satisfied: iniconfig in ./venv/lib/python3.10/site-packages (from pytest) (2.0.0)
+Requirement already satisfied: tomli>=1 in ./venv/lib/python3.10/site-packages (from pytest) (2.0.1)
+Requirement already satisfied: pluggy<2.0,>=1.5 in ./venv/lib/python3.10/site-packages (from pytest) (1.5.0)
diff --git a/assets/style.css b/assets/style.css
index 3edac88ee..561524c69 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -33,11 +33,16 @@ table {
******************************/
#environment td {
padding: 5px;
- border: 1px solid #E6E6E6;
+ border: 1px solid #e6e6e6;
+ vertical-align: top;
}
#environment tr:nth-child(odd) {
background-color: #f6f6f6;
}
+#environment ul {
+ margin: 0;
+ padding: 0 20px;
+}
/******************************
* TEST RESULT COLORS
@@ -65,6 +70,10 @@ span.xpassed,
color: red;
}
+.col-links__extra {
+ margin-right: 3px;
+}
+
/******************************
* RESULTS TABLE
*
@@ -85,7 +94,7 @@ span.xpassed,
#results-table th,
#results-table td {
padding: 5px;
- border: 1px solid #E6E6E6;
+ border: 1px solid #e6e6e6;
text-align: left;
}
#results-table th {
@@ -95,63 +104,133 @@ span.xpassed,
/*------------------
* 2. Extra
*------------------*/
-.log {
+.logwrapper {
+ max-height: 230px;
+ overflow-y: scroll;
background-color: #e6e6e6;
+}
+.logwrapper.expanded {
+ max-height: none;
+}
+.logwrapper.expanded .logexpander:after {
+ content: "collapse [-]";
+}
+.logwrapper .logexpander {
+ z-index: 1;
+ position: sticky;
+ top: 10px;
+ width: max-content;
+ border: 1px solid;
+ border-radius: 3px;
+ padding: 5px 7px;
+ margin: 10px 0 10px calc(100% - 80px);
+ cursor: pointer;
+ background-color: #e6e6e6;
+}
+.logwrapper .logexpander:after {
+ content: "expand [+]";
+}
+.logwrapper .logexpander:hover {
+ color: #000;
+ border-color: #000;
+}
+.logwrapper .log {
+ min-height: 40px;
+ position: relative;
+ top: -50px;
+ height: calc(100% + 50px);
border: 1px solid #e6e6e6;
color: black;
display: block;
font-family: "Courier New", Courier, monospace;
- height: 230px;
- overflow-y: scroll;
padding: 5px;
+ padding-right: 80px;
white-space: pre-wrap;
}
-.log:only-child {
- height: inherit;
-}
-div.image {
+div.media {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
- margin-left: 5px;
+ margin: 0 5px;
overflow: hidden;
width: 320px;
}
-div.image img {
- width: 320px;
-}
-div.video {
- border: 1px solid #e6e6e6;
- float: right;
- height: 240px;
- margin-left: 5px;
+.media-container {
+ display: grid;
+ grid-template-columns: 25px auto 25px;
+ align-items: center;
+ flex: 1 1;
overflow: hidden;
- width: 320px;
+ height: 200px;
}
-div.video video {
- overflow: hidden;
- width: 320px;
- height: 240px;
+
+.media-container--fullscreen {
+ grid-template-columns: 0px auto 0px;
}
-.collapsed {
- display: none;
+.media-container__nav--right,
+.media-container__nav--left {
+ text-align: center;
+ cursor: pointer;
}
-.expander::after {
- content: " (show details)";
- color: #BBB;
+.media-container__viewport {
+ cursor: pointer;
+ text-align: center;
+ height: inherit;
+}
+.media-container__viewport img,
+.media-container__viewport video {
+ object-fit: cover;
+ width: 100%;
+ max-height: 100%;
+}
+
+.media__name,
+.media__counter {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-around;
+ flex: 0 0 25px;
+ align-items: center;
+}
+
+.collapsible td:not(.col-links) {
+ cursor: pointer;
+}
+.collapsible td:not(.col-links):hover::after {
+ color: #bbb;
font-style: italic;
cursor: pointer;
}
-.collapser::after {
+.col-result {
+ width: 130px;
+}
+.col-result:hover::after {
+ content: " (hide details)";
+}
+
+.col-result.collapsed:hover::after {
+ content: " (show details)";
+}
+
+#environment-header h2:hover::after {
content: " (hide details)";
- color: #BBB;
+ color: #bbb;
font-style: italic;
cursor: pointer;
+ font-size: 12px;
+}
+
+#environment-header.collapsed h2:hover::after {
+ content: " (show details)";
+ color: #bbb;
+ font-style: italic;
+ cursor: pointer;
+ font-size: 12px;
}
/*------------------
@@ -160,27 +239,81 @@ div.video video {
.sortable {
cursor: pointer;
}
+.sortable.desc:after {
+ content: " ";
+ position: relative;
+ left: 5px;
+ bottom: -12.5px;
+ border: 10px solid #4caf50;
+ border-bottom: 0;
+ border-left-color: transparent;
+ border-right-color: transparent;
+}
+.sortable.asc:after {
+ content: " ";
+ position: relative;
+ left: 5px;
+ bottom: 12.5px;
+ border: 10px solid #4caf50;
+ border-top: 0;
+ border-left-color: transparent;
+ border-right-color: transparent;
+}
+
+.hidden, .summary__reload__button.hidden {
+ display: none;
+}
+
+.summary__data {
+ flex: 0 0 550px;
+}
+.summary__reload {
+ flex: 1 1;
+ display: flex;
+ justify-content: center;
+}
+.summary__reload__button {
+ flex: 0 0 300px;
+ display: flex;
+ color: white;
+ font-weight: bold;
+ background-color: #4caf50;
+ text-align: center;
+ justify-content: center;
+ align-items: center;
+ border-radius: 3px;
+ cursor: pointer;
+}
+.summary__reload__button:hover {
+ background-color: #46a049;
+}
+.summary__spacer {
+ flex: 0 0 550px;
+}
+
+.controls {
+ display: flex;
+ justify-content: space-between;
+}
+
+.filters,
+.collapse {
+ display: flex;
+ align-items: center;
+}
+.filters button,
+.collapse button {
+ color: #999;
+ border: none;
+ background: none;
+ cursor: pointer;
+ text-decoration: underline;
+}
+.filters button:hover,
+.collapse button:hover {
+ color: #ccc;
+}
-.sort-icon {
- font-size: 0px;
- float: left;
- margin-right: 5px;
- margin-top: 5px;
- /*triangle*/
- width: 0;
- height: 0;
- border-left: 8px solid transparent;
- border-right: 8px solid transparent;
-}
-.inactive .sort-icon {
- /*finish triangle*/
- border-top: 8px solid #E6E6E6;
-}
-.asc.active .sort-icon {
- /*finish triangle*/
- border-bottom: 8px solid #999;
-}
-.desc.active .sort-icon {
- /*finish triangle*/
- border-top: 8px solid #999;
+.filter__label {
+ margin-right: 10px;
}
diff --git a/libiio/libiio b/libiio/libiio
new file mode 160000
index 000000000..b6028fdee
--- /dev/null
+++ b/libiio/libiio
@@ -0,0 +1 @@
+Subproject commit b6028fdeef888ab45f7c1dd6e4ed9480ae4b55e3
diff --git a/test/conftest.py b/test/conftest.py
index b9fe7cf16..9e57bf92e 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -13,7 +13,7 @@
from test.dma_tests import *
from test.generics import iio_attribute_single_value
from test.globals import *
-from test.html import pytest_html_report_title, pytest_runtest_makereport
+from test.html import pytest_html_report_title, pytest_html_results_summary, pytest_runtest_makereport
import adi
import numpy as np
diff --git a/test/dma_tests.py b/test/dma_tests.py
index 501655f08..c6848852a 100644
--- a/test/dma_tests.py
+++ b/test/dma_tests.py
@@ -7,6 +7,8 @@
import pytest
from numpy.fft import fft, fftfreq, fftshift
from scipy import signal
+from signal import signal, SIGPIPE, SIG_DFL
+
try:
from .plot_logger import gen_line_plot_html
@@ -243,6 +245,7 @@ def dds_loopback(
peak_min,
use_obs=False,
use_rx2=False,
+ tone_peak_values=None
):
"""dds_loopback: Test DDS loopback with connected loopback cables.
This test requires a devices with TX and RX onboard where the transmit
@@ -269,6 +272,10 @@ def dds_loopback(
Minimum acceptable value of maximum peak in dBFS of received tone
"""
+
+ if tone_peak_values is None:
+ tone_peak_values = []
+
# See if we can tone using DMAs
sdr = eval(classname + "(uri='" + uri + "')")
# Set custom device parameters
@@ -314,6 +321,9 @@ def dds_loopback(
s = "Peak: " + str(tone_peaks[indx]) + "@" + str(tone_freqs[indx])
print(s)
+ tone_peak_values.append(tone_peaks[indx])
+
+
if do_html_log:
pytest.data_log = {
"html": gen_line_plot_html(
@@ -325,9 +335,12 @@ def dds_loopback(
)
}
+
assert (frequency * 0.01) > diff
assert tone_peaks[indx] > peak_min
+ return tone_peak_values
+
def dds_two_tone(
uri,
@@ -633,7 +646,7 @@ def cw_loopback(uri, classname, channel, param_set, use_tx2=False, use_rx2=False
# self.assertGreater(fc * 0.01, diff, "Frequency offset")
-def t_sfdr(uri, classname, channel, param_set, sfdr_min, use_obs=False, full_scale=0.9):
+def t_sfdr(uri, classname, channel, param_set, sfdr_min, use_obs=False, full_scale=0.9, sfdr_values=None):
"""t_sfdr: Test SFDR loopback of tone with connected loopback cables.
This test requires a devices with TX and RX onboard where the transmit
signal can be recovered. Sinuoidal data is passed to DMAs which is then
@@ -655,6 +668,13 @@ def t_sfdr(uri, classname, channel, param_set, sfdr_min, use_obs=False, full_sca
Minimum acceptable value of SFDR in dB
"""
+
+ if sfdr_values is None:
+ sfdr_values = []
+
+ from signal import signal, SIGPIPE, SIG_DFL
+ signal(SIGPIPE, SIG_DFL)
+
# See if we can tone using DMAs
sdr = eval(classname + "(uri='" + uri + "')")
# Set custom device parameters
@@ -699,6 +719,8 @@ def t_sfdr(uri, classname, channel, param_set, sfdr_min, use_obs=False, full_sca
raise Exception(e)
del sdr
val, amp, freqs = spec.sfdr(data, plot=False)
+ sfdr_values.append(val)
+
if do_html_log:
pytest.data_log = {
"html": gen_line_plot_html(
@@ -710,8 +732,11 @@ def t_sfdr(uri, classname, channel, param_set, sfdr_min, use_obs=False, full_sca
)
}
print("SFDR:", val, "dB")
+
assert val > sfdr_min
+ return sfdr_values
+
def gain_check(uri, classname, channel, param_set, dds_scale, min_rssi, max_rssi):
"""gain_check: Test DDS loopback with connected loopback cables and verify
diff --git a/test/html.py b/test/html.py
index 0fb8351c6..a3d3ec746 100644
--- a/test/html.py
+++ b/test/html.py
@@ -1,9 +1,56 @@
import plotly.express as px
+from test.test_triton import serial_number, all_tone_peak_values, all_sfdr_values
import pytest
-
+from docutils import nodes
+import pytest_html
+from py.xml import html
+# from pytest_html import html
+from pytest_metadata.plugin import metadata_key
+# from pytest_html import html
def pytest_html_report_title(report):
- report.title = "pyadi-iio Test Report"
+ report.title = f'ADXBAND16EBZ Test Report, Serial Number: {serial_number}'
+
+def pytest_html_results_summary(prefix, summary, postfix):
+
+ # Add html paragraph to prefix
+ # prefix.extend([html.p("This is a custom report summary")])
+
+ # Add line break to prefix
+ prefix.extend([html.br()])
+
+ # Add image to prefix, must be relative to the html output (not absolute path)
+ image_loc = "testfig.png"
+ image2_loc = "testfig2.png"
+ image3_loc = "testfig3.png"
+ image4_loc = "testfig4.png"
+ image5_loc = "testfig5.png"
+ if len(all_tone_peak_values) == 96:
+ image = html.img(src=image_loc, style="width: 300px;")
+ image2 = html.img(src=image2_loc, style="width: 300px;")
+ image3 = html.img(src=image3_loc, style="width: 300px;")
+ image4 = html.img(src=image4_loc, style="width: 300px;")
+ prefix.extend([image])
+ prefix.extend([image2])
+ prefix.extend([image3])
+ prefix.extend([image4])
+ if len(all_sfdr_values) == 16:
+ image5 = html.img(src=image5_loc, style="width: 300px;")
+ prefix.extend([image5])
+
+
+
+ print(summary)
+ print(serial_number)
+ # summary.extend([r'
random_test
'])
+ # summary.append(html.html(""))
+ # summary.append(html.html(""))
+ # summary.append(html.html(""))
+ # summary.append(html.html(""))
+ # summary.append(html.html(""))
+
+ for item in summary:
+ print(type(item))
@pytest.hookimpl(hookwrapper=True)
@@ -17,3 +64,6 @@ def pytest_runtest_makereport(item, call):
if hasattr(pytest, "data_log") and "html" in pytest.data_log.keys():
extra.append(pytest_html.extras.html(pytest.data_log["html"]))
report.extra = extra
+ if hasattr(pytest, "data"):
+ extra.append(pytest_html.extras.html(f'{pytest.data}
'))
+ report.extra = extra
diff --git a/test/rf/spec.py b/test/rf/spec.py
index c0c7c6967..31b7d07d0 100644
--- a/test/rf/spec.py
+++ b/test/rf/spec.py
@@ -23,7 +23,7 @@ def spec_est(x, fs, ref=2 ** 15, plot=False):
N = len(x)
# Apply window
- window = signal.kaiser(N, beta=38)
+ window = signal.windows.kaiser(N, beta=38)
# x = multiply(x, window)
# Use FFT to get the amplitude of the spectrum
diff --git a/test/test_triton.py b/test/test_triton.py
index de23199c7..0d634b473 100644
--- a/test/test_triton.py
+++ b/test/test_triton.py
@@ -1,5 +1,6 @@
+
import adi
-import test.dma_tests
+# import test.dma_tests
import pytest
import test
import matplotlib.pyplot as plt
@@ -10,13 +11,16 @@
import pyvisa
import time
import test.instruments as instruments
-# from scpi import signal
+from scipy import signal
hardware = ["Triton"]
classname = "adi.Triton"
+iio_uri = "ip:192.168.2.1"
+
+
##########################################
# Dictionaries for Tests
@@ -104,125 +108,148 @@
##########################################
# DC Power Test - Preboot
-##########################################
-
-def test_current_preboot():
- rm = pyvisa.ResourceManager()
- rm.list_resources()
- inst = rm.open_resource('TCPIP::192.168.10.1::inst0::INSTR')
-
- inst.write("OUTP:PAIR PAR")
- inst.write("INST CH1")
- inst.write("SOUR:VOLT 12")
- inst.write("SOUR:CURR 30") # Change as needed
- print(inst.query("MEASure:CURR?"))
-
- current_value = float(inst.query("MEASure:CURR?"))
-
- assert current_value > 2
- assert current_value < 4.5
-
-def test_voltage_preboot():
- rm = pyvisa.ResourceManager()
- rm.list_resources()
- inst = rm.open_resource('TCPIP::192.168.10.1::inst0::INSTR')
-
- inst.write("OUTP:PAIR PAR")
- inst.write("INST CH1")
- inst.write("SOUR:VOLT 12")
- inst.write("SOUR:CURR 30") # Change as needed
- print(inst.query("MEASure:VOLT?"))
-
- voltage_value = float(inst.query("MEASure:VOLT?"))
-
- assert voltage_value > 11.8
- assert voltage_value < 12.2
-
-
-# ##########################################
-# # Automated bootup
-# ##########################################
+#########################################
-@pytest.fixture(scope="module")
-def test_bootup():
- import os
- import subprocess
-
- dir_path = os.path.dirname(os.path.realpath(__file__))
- print(dir_path)
- boot_path = os.path.join(dir_path, 'vcu118_quad_ad9084_2023-09-28')
- # tcl_script_path = r"C:/Users/JChambli/Downloads/vcu118_quad_ad9084_2023-09-28/run_26p4.tcl"
- tcl_script_path = os.path.join(boot_path, 'run_me.tcl')
-
- # Path to Vivado Lab executable
- vivado_lab_executable = r"C:\Xilinx\Vivado_Lab\2022.2\bin\xsdb.bat"
-
- # Open Xilinx xsdb tool and
- # source run.tcl
- bitstream = os.path.join(boot_path, "system_top_26p4.bit")
- strip = os.path.join(boot_path, "simpleImage_26p4.strip" )
- script = f"""
- connect
- fpga -f "{bitstream.replace(os.sep, '/')}"
- after 1000
- target 3
- dow "{strip.replace(os.sep, '/')}"
- after 1000
- con
- disconnect
- """
- with open(tcl_script_path, 'w') as f:
- f.write(script)
-
- # Command to run Vivado Lab with the Tcl script
- command = [vivado_lab_executable, '-eval', 'source', tcl_script_path]
- print(command)
-
- # Run the command
- # subprocess.run(command)
-
- results = subprocess.run(command)
- time.sleep(140) ## Wait for bootup
- print(dir(results))
- print(results)
+# @pytest.fixture(scope="module", autouse=True)
+# def test_power_on():
+# rm = pyvisa.ResourceManager()
+# x = rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
+
+# inst.write("SOUR:VOLT 12")
+# inst.write("SOUR:CURR 30") # Change as needed
+# inst.write('OUTPut ON')
+
+# def test_current_preboot():
+# rm = pyvisa.ResourceManager()
+# x = rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
+
+# # inst.write("OUTP:PAIR PAR")
+# # inst.write("INST CH1")
+# # inst.write("SOUR:VOLT 12")
+# # inst.write("SOUR:CURR 30") # Change as needed
+# # inst.write('OUTPut ON')
+# print(inst.query("MEASure:CURR?"))
+
+# # error_message = inst.query('SYSTem:ERRor?')
+# # print("Error Message:", error_message)
+
+# current_value = float(inst.query("MEASure:CURR?"))
+
+# assert current_value > 2
+# assert current_value < 4.5
+
+# def test_voltage_preboot():
+# rm = pyvisa.ResourceManager()
+# rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
+
+# # inst.write("OUTP:PAIR PAR")
+# # inst.write("INST CH1")
+# # inst.write("SOUR:VOLT 12")
+# # inst.write("SOUR:CURR 30") # Change as needed
+# # inst.write('OUTPut ON')
+# print(inst.query("MEASure:VOLT?"))
+
+# voltage_value = float(inst.query("MEASure:VOLT?"))
+
+# assert voltage_value > 11.8
+# assert voltage_value < 12.2
+
+
+# # ##########################################
+# # # Automated bootup
+# # ##########################################
+
+# @pytest.fixture(scope="module", autouse=True)
+# # @pytest.fixture(scope="module")
+# def test_bootup():
+# import os
+# import subprocess
+
+# dir_path = os.path.dirname(os.path.realpath(__file__))
+# print(dir_path)
+# boot_path = os.path.join(dir_path, 'vcu118_quad_ad9084_2023-09-28')
+# tcl_script_path = os.path.join(boot_path, 'run_me.tcl')
+
+# # Path to Vivado Lab executable
+# vivado_lab_executable = r"/tools/Xilinx/Vivado_Lab/2023.2/bin/xsdb"
+
+# # Open Xilinx xsdb tool and
+# # source run.tcl
+# bitstream = os.path.join(boot_path, "system_top_26p4.bit")
+# strip = os.path.join(boot_path, "simpleImage_26p4.strip" )
+# script = f"""
+# connect
+# fpga -f "{bitstream.replace(os.sep, '/')}"
+# after 1000
+# target 3
+# dow "{strip.replace(os.sep, '/')}"
+# after 1000
+# con
+# disconnect
+# """
+# with open(tcl_script_path, 'w') as f:
+# f.write(script)
+
+# # Command to run Vivado Lab with the Tcl script
+# command = [vivado_lab_executable, '-eval', 'source', tcl_script_path]
+# print(command)
+
+# # Run the command
+# subprocess.run(command)
+
+# results = subprocess.run(command)
+# time.sleep(140) ## Wait for bootup
+# print(dir(results))
+# print(results)
-# #########################################
-# # DC Power Test - Postboot
-# #########################################
+# # #########################################
+# # # DC Power Test - Postboot
+# # #########################################
-def test_current_postboot():
- rm = pyvisa.ResourceManager()
- rm.list_resources()
- inst = rm.open_resource('TCPIP::192.168.10.1::inst0::INSTR')
+# def test_current_postboot():
+# rm = pyvisa.ResourceManager()
+# rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
- inst.write("OUTP:PAIR PAR")
- inst.write("INST CH1")
- inst.write("SOUR:VOLT 12")
- inst.write("SOUR:CURR 30") # Change as needed
- print(inst.query("MEASure:CURR?"))
+# # inst.write("OUTP:PAIR PAR")
+# # inst.write("INST CH1")
+# # inst.write("SOUR:VOLT 12")
+# # inst.write("SOUR:CURR 30") # Change as needed
+# # inst.write('OUTPut ON')
+# print(inst.query("MEASure:CURR?"))
- current_value = float(inst.query("MEASure:CURR?"))
+# current_value = float(inst.query("MEASure:CURR?"))
- assert current_value > 14
- assert current_value < 18
+# assert current_value > 14
+# assert current_value < 18\
-def test_voltage_postboot():
- rm = pyvisa.ResourceManager()
- rm.list_resources()
- inst = rm.open_resource('TCPIP::192.168.10.1::inst0::INSTR')
+# def test_voltage_postboot():
+# rm = pyvisa.ResourceManager()
+# rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
- inst.write("OUTP:PAIR PAR")
- inst.write("INST CH1")
- inst.write("SOUR:VOLT 12")
- inst.write("SOUR:CURR 30") # Change as needed
- print(inst.query("MEASure:VOLT?"))
+# # inst.write("OUTP:PAIR PAR")
+# # inst.write("INST CH1")
+# # inst.write("SOUR:VOLT 12")
+# # inst.write("SOUR:CURR 30") # Change as needed
+# # inst.write('OUTPut ON')
+# print(inst.query("MEASure:VOLT?"))
- voltage_value = float(inst.query("MEASure:VOLT?"))
+# voltage_value = float(inst.query("MEASure:VOLT?"))
- assert voltage_value > 11.8
- assert voltage_value < 12.2
+# assert voltage_value > 11.8
+# assert voltage_value < 12.2
+
+# inst.write("OUTP:PAIR PAR")
+# inst.write("INST CH1")
+# inst.write("SOUR:VOLT 12")
+# inst.write("SOUR:CURR 30") # Change as needed
+# inst.write('OUTPut ON')
@@ -234,13 +261,24 @@ def test_voltage_postboot():
def test_iio_attr(iio_uri):
print("iio_uri", iio_uri)
-#########################################
-# DDS Loopback Test
-#########################################
+# #########################################
+# # DDS Loopback Test
+# #########################################
+# Prompt user to enter serial number
+serial_number = input("Enter the serial number being tested: ")
+
+@pytest.fixture(scope="session")
+def serial_number_fixture():
+ return serial_number
+
+
+
+
+all_tone_peak_values = []
@pytest.mark.parametrize("classname", [(classname)])
-# @pytest.mark.parametrize("channel", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ids=lambda x: f"channel:{x}")
-@pytest.mark.parametrize("channel", [0, 1], ids=lambda x: f"channel:{x}")
+@pytest.mark.parametrize("channel", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ids=lambda x: f"channel:{x}")
+# @pytest.mark.parametrize("channel", [0], ids=lambda x: f"channel:{x}")
@pytest.mark.parametrize(
"param_set, frequency, scale, peak_min, hpf_value, lpf_value",
[
@@ -252,6 +290,9 @@ def test_iio_attr(iio_uri):
(params["dac_adc_loopback_30dB_attenuation"], 50000000, 0.9, -50, 5, 15),
]
)
+
+
+
def test_Triton_dds_loopback(
test_dds_loopback,
iio_uri,
@@ -264,43 +305,137 @@ def test_Triton_dds_loopback(
hpf_value,
lpf_value,
):
+ global all_tone_peak_values
dev = adi.Triton("ip:192.168.2.1", calibration_board_attached=True)
+ iio_uri = "ip:192.168.2.1"
## Set low pass and high pass filter values
dev.hpf_ctrl = hpf_value
dev.lpf_ctrl = lpf_value
## Set cal board loopback state
dev.gpio_ctrl_ind = 0
- dev.gpio_5045_v1 = 1
+ dev.gpio_5045_v1 = 1
dev.gpio_5045_v2 = 0
dev.gpio_ctrl_rx_combined = 0
## Param set and DDS test
param_set = scale_field(param_set, iio_uri)
- test_dds_loopback(
- iio_uri, classname, param_set, channel, frequency, scale, peak_min
+
+ all_tone_peak_values = test_dds_loopback(
+ iio_uri, classname, param_set, channel, frequency, scale, peak_min, use_obs=False, use_rx2=False, tone_peak_values=all_tone_peak_values
)
+ if len(all_tone_peak_values) == 48:
+ freq_axis_values = [8000, 10000, 12000]
+ ch0_values = [all_tone_peak_values[0], all_tone_peak_values[16], all_tone_peak_values[32]]
+ ch1_values = [all_tone_peak_values[1], all_tone_peak_values[17], all_tone_peak_values[33]]
+ ch2_values = [all_tone_peak_values[2], all_tone_peak_values[18], all_tone_peak_values[34]]
+ ch3_values = [all_tone_peak_values[3], all_tone_peak_values[19], all_tone_peak_values[35]]
+ ch4_values = [all_tone_peak_values[4], all_tone_peak_values[20], all_tone_peak_values[36]]
+ ch5_values = [all_tone_peak_values[5], all_tone_peak_values[21], all_tone_peak_values[37]]
+ ch6_values = [all_tone_peak_values[6], all_tone_peak_values[22], all_tone_peak_values[38]]
+ ch7_values = [all_tone_peak_values[7], all_tone_peak_values[23], all_tone_peak_values[39]]
+ ch8_values = [all_tone_peak_values[8], all_tone_peak_values[24], all_tone_peak_values[40]]
+ ch9_values = [all_tone_peak_values[9], all_tone_peak_values[25], all_tone_peak_values[41]]
+ ch10_values = [all_tone_peak_values[10], all_tone_peak_values[26], all_tone_peak_values[42]]
+ ch11_values = [all_tone_peak_values[11], all_tone_peak_values[27], all_tone_peak_values[43]]
+ ch12_values = [all_tone_peak_values[12], all_tone_peak_values[28], all_tone_peak_values[44]]
+ ch13_values = [all_tone_peak_values[13], all_tone_peak_values[29], all_tone_peak_values[45]]
+ ch14_values = [all_tone_peak_values[14], all_tone_peak_values[30], all_tone_peak_values[46]]
+ ch15_values = [all_tone_peak_values[15], all_tone_peak_values[31], all_tone_peak_values[47]]
+ plt.figure()
+ plt.plot(freq_axis_values,ch0_values)
+ plt.plot(freq_axis_values,ch1_values)
+ plt.plot(freq_axis_values,ch2_values)
+ plt.plot(freq_axis_values,ch3_values)
+ plt.plot(freq_axis_values,ch4_values)
+ plt.plot(freq_axis_values,ch5_values)
+ plt.plot(freq_axis_values,ch6_values)
+ plt.plot(freq_axis_values,ch7_values)
+ plt.plot(freq_axis_values,ch8_values)
+ plt.plot(freq_axis_values,ch9_values)
+ plt.plot(freq_axis_values,ch10_values)
+ plt.plot(freq_axis_values,ch11_values)
+ plt.plot(freq_axis_values,ch12_values)
+ plt.plot(freq_axis_values,ch13_values)
+ plt.plot(freq_axis_values,ch14_values)
+ plt.plot(freq_axis_values,ch15_values)
+ plt.xlabel('Frequency (MHz)')
+ plt.ylabel('Magnitude(dBFS)')
+ plt.title('Loopback Test')
+ plt.savefig('testfig.png')
+
+ if len(all_tone_peak_values) == 64:
+ channels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ values = [all_tone_peak_values[48],all_tone_peak_values[49],all_tone_peak_values[50], all_tone_peak_values[51], all_tone_peak_values[52], all_tone_peak_values[53], all_tone_peak_values[54], all_tone_peak_values[55], all_tone_peak_values[56], all_tone_peak_values[57], all_tone_peak_values[58], all_tone_peak_values[59], all_tone_peak_values[60], all_tone_peak_values[61], all_tone_peak_values[62], all_tone_peak_values[63]]
+ plt.figure()
+ plt.plot(channels, values)
+ plt.xlabel('Channel')
+ plt.ylabel('Magnitude(dBFS)')
+ plt.title('Filter Test: Channel Magnitudes at 10 GHz')
+ plt.savefig('testfig2.png')
+
+ if len(all_tone_peak_values) == 80:
+ channels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ values = [all_tone_peak_values[64],all_tone_peak_values[65],all_tone_peak_values[66], all_tone_peak_values[67], all_tone_peak_values[68], all_tone_peak_values[69], all_tone_peak_values[70], all_tone_peak_values[71], all_tone_peak_values[72], all_tone_peak_values[73], all_tone_peak_values[74], all_tone_peak_values[75], all_tone_peak_values[76], all_tone_peak_values[77], all_tone_peak_values[78], all_tone_peak_values[79]]
+ plt.figure()
+ plt.plot(channels, values)
+ plt.xlabel('Channel')
+ plt.ylabel('Magnitude(dBFS)')
+ plt.title('Filter Test: Channel Magnitudes at 10 GHz')
+ plt.savefig('testfig3.png')
+
+ if len(all_tone_peak_values) == 96:
+ channels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ values = [all_tone_peak_values[80],all_tone_peak_values[81],all_tone_peak_values[82], all_tone_peak_values[83], all_tone_peak_values[84], all_tone_peak_values[85], all_tone_peak_values[86], all_tone_peak_values[87], all_tone_peak_values[88], all_tone_peak_values[89], all_tone_peak_values[90], all_tone_peak_values[91], all_tone_peak_values[92], all_tone_peak_values[93], all_tone_peak_values[94], all_tone_peak_values[95]]
+ plt.figure()
+ plt.plot(channels, values)
+ plt.xlabel('Channel')
+ plt.ylabel('Magnitude(dBFS)')
+ plt.title('DSA Test: Channel Magnitudes at 10 GHz')
+ plt.savefig('testfig4.png')
+
+
+ return all_tone_peak_values
-#########################################
-# SFDR Test
-#########################################
+
+
+
+
+
+
+
+# #########################################
+# # SFDR Test
+# #########################################
+
+all_sfdr_values = []
+
@pytest.mark.parametrize("classname", [(classname)])
-# @pytest.mark.parametrize("channel", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ids=lambda x: f"channel:{x}")
-@pytest.mark.parametrize("channel", [0, 1], ids=lambda x: f"channel:{x}")
+@pytest.mark.parametrize("channel", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ids=lambda x: f"channel:{x}")
+# @pytest.mark.parametrize("channel", [0], ids=lambda x: f"channel:{x}")
@pytest.mark.parametrize(
"param_set, hpf_value, lpf_value",
[
(params["sfdr_test"], 5, 15),
],
)
-@pytest.mark.parametrize("sfdr_min", [60])
+@pytest.mark.parametrize("sfdr_min", [50])
def test_Triton_sfdr(test_sfdr, iio_uri, classname, channel, param_set, sfdr_min, hpf_value, lpf_value):
+ global all_sfdr_values
dev = adi.Triton("ip:192.168.2.1", calibration_board_attached=True)
## Set low pass and high pass filter values
dev.hpf_ctrl = hpf_value
dev.lpf_ctrl = lpf_value
## SFDR test
- test_sfdr(iio_uri, classname, channel, param_set, sfdr_min)
-
-
-
+ iio_uri = "ip:192.168.2.1"
+ all_sfdr_values = test_sfdr(iio_uri, classname, channel, param_set, sfdr_min, sfdr_values=all_sfdr_values)
+
+ if len(all_sfdr_values) == 16:
+ channels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ values = all_sfdr_values
+ plt.figure()
+ plt.plot(channels, values)
+ plt.xlabel('Channel')
+ plt.ylabel('SFDR (dB)')
+ plt.title('SFDR Test')
+ plt.savefig('testfig5.png')
diff --git a/test/test_triton_cal.py b/test/test_triton_cal.py
index a3907e405..e39c4e0bc 100644
--- a/test/test_triton_cal.py
+++ b/test/test_triton_cal.py
@@ -1,6 +1,6 @@
-import adi
+
import pytest
-import test
+
import numpy as np
import pyvisa
@@ -10,12 +10,12 @@
# # Connect to Arduino Uno
## Note: if first time installing pyfirmata, need to replace "getargspec" with "getfullargspec" in pyfirmata code
-board = pyfirmata.Arduino("COM10", baudrate=57600)
+# board = pyfirmata.Arduino("/dev/ttyACM0", baudrate=57600)
# # Establish VISA control of spectrum analyzer and signal generator
rm = pyvisa.ResourceManager()
x = rm.list_resources()
-HMCT2220 = rm.open_resource('ASRL11::INSTR')
+HMCT2220 = rm.open_resource('ASRL/dev/ttyACM1::INSTR')
FieldFox = rm.open_resource('TCPIP::192.168.100.23::INSTR')
###################################
@@ -102,6 +102,7 @@ def _set_attenuation_level(attenuation, instr):
@pytest.mark.parametrize("frequency", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f"Frequency (MHz):{x}")
@pytest.mark.parametrize("cal_board_state", ["adjacent_loopback", "combined_loopback"])
@pytest.mark.parametrize("channel", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ids=lambda x: f"channel:{x}")
+# @pytest.mark.parametrize("channel", [0])
def test_loopback(channel, cal_board_state, frequency):
@@ -116,6 +117,7 @@ def test_loopback(channel, cal_board_state, frequency):
_set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen
_set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm
_set_output('ON', HMCT2220) # Set sig gen output on
+
time.sleep(1) # Buffer time of 1 second
# Set up spectrum analyzer
diff --git a/test/vcu118_quad_ad9084_2023-09-28/run_me.tcl b/test/vcu118_quad_ad9084_2023-09-28/run_me.tcl
index eb66e4edc..f36a6687f 100644
--- a/test/vcu118_quad_ad9084_2023-09-28/run_me.tcl
+++ b/test/vcu118_quad_ad9084_2023-09-28/run_me.tcl
@@ -1,9 +1,9 @@
connect
- fpga -f "C:/ADI/Triton/pyadi-iio/test/vcu118_quad_ad9084_2023-09-28/system_top_26p4.bit"
+ fpga -f "/home/snuc/ADI/pyadi/test/vcu118_quad_ad9084_2023-09-28/system_top_26p4.bit"
after 1000
target 3
- dow "C:/ADI/Triton/pyadi-iio/test/vcu118_quad_ad9084_2023-09-28/simpleImage_26p4.strip"
+ dow "/home/snuc/ADI/pyadi/test/vcu118_quad_ad9084_2023-09-28/simpleImage_26p4.strip"
after 1000
con
disconnect
diff --git a/test_triton_cal.json b/test_triton_cal.json
index 0a3018669..efb5c2e67 100644
--- a/test_triton_cal.json
+++ b/test_triton_cal.json
@@ -1,3756 +1 @@
-{
- "report": {
- "environment": {
- "Python": "3.11.5",
- "Platform": "Windows-10-10.0.19045-SP0"
- },
- "tests": [
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 25.224134100019,
- "run_index": 0,
- "setup": {
- "name": "setup",
- "duration": 0.0013481999922078103,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 25.22092000002158,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 0 input and connect spectrum analyzer into channel 0 output. Press Enter when complete \n\nPower level (dBm): -2.713206E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000517700013006106,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0275682000501547,
- "run_index": 1,
- "setup": {
- "name": "setup",
- "duration": 0.0007087000121828169,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0257846000022255,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.077999E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003662000235635787,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.051024000014877,
- "run_index": 2,
- "setup": {
- "name": "setup",
- "duration": 0.0004743000026792288,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0494874000141863,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.643141E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005879999953322113,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.020910199993523,
- "run_index": 3,
- "setup": {
- "name": "setup",
- "duration": 0.0009751000034157187,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0185849999834318,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.773222E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000375000003259629,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0282843000022694,
- "run_index": 4,
- "setup": {
- "name": "setup",
- "duration": 0.0007431999838445336,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0264030000253115,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.158241E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003949000092688948,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0301445000222884,
- "run_index": 5,
- "setup": {
- "name": "setup",
- "duration": 0.000513100007083267,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.028404500015313,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.503376E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007137999928090721,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0383357999962755,
- "run_index": 6,
- "setup": {
- "name": "setup",
- "duration": 0.0008709999965503812,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0361946999910288,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.784751E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003991000121459365,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0603773000184447,
- "run_index": 7,
- "setup": {
- "name": "setup",
- "duration": 0.0005441000103019178,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0568306999921333,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.924398E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0024584000057075173,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0277273999527097,
- "run_index": 8,
- "setup": {
- "name": "setup",
- "duration": 0.001545099978102371,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0241550999926403,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.968870E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00048210000386461616,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.02794920001179,
- "run_index": 9,
- "setup": {
- "name": "setup",
- "duration": 0.0004447000101208687,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0267165999975987,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.190278E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003431999939493835,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 23.680717200011713,
- "run_index": 10,
- "setup": {
- "name": "setup",
- "duration": 0.00045029999455437064,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 23.679457000020193,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 1 input and connect spectrum analyzer into channel 1 output. Press Enter when complete \n\nPower level (dBm): -2.712696E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035960000241175294,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.018089700024575,
- "run_index": 11,
- "setup": {
- "name": "setup",
- "duration": 0.00043310000910423696,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0167687000066508,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.529439E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00045479999971576035,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.081904199993005,
- "run_index": 12,
- "setup": {
- "name": "setup",
- "duration": 0.0007116000051610172,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0799415999790654,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.683637E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005394000036176294,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.08764670000528,
- "run_index": 13,
- "setup": {
- "name": "setup",
- "duration": 0.0004262000147718936,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0864591999852564,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.721067E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003350999904796481,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0274353000277188,
- "run_index": 14,
- "setup": {
- "name": "setup",
- "duration": 0.00048160000005736947,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0261150000151247,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.196872E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035710001247934997,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.024892799992813,
- "run_index": 15,
- "setup": {
- "name": "setup",
- "duration": 0.00048019998939707875,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.023594199999934,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.501656E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033820001408457756,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0342018000374082,
- "run_index": 16,
- "setup": {
- "name": "setup",
- "duration": 0.0005330000130925328,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0328102000057697,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.768188E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032560000545345247,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0742179999651853,
- "run_index": 17,
- "setup": {
- "name": "setup",
- "duration": 0.0004264999879524112,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0728451999893878,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.913830E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005197999998927116,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.020534399955068,
- "run_index": 18,
- "setup": {
- "name": "setup",
- "duration": 0.0005139999848324805,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.019029799994314,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.892950E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004765999910887331,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.022318399976939,
- "run_index": 19,
- "setup": {
- "name": "setup",
- "duration": 0.0004670000053010881,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021054099983303,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.163880E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003302999830339104,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 14.442593100015074,
- "run_index": 20,
- "setup": {
- "name": "setup",
- "duration": 0.0005082999996375293,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 14.44124070001999,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 2 input and connect spectrum analyzer into channel 2 output. Press Enter when complete \n\nPower level (dBm): -2.661754E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033579999580979347,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.017765500000678,
- "run_index": 21,
- "setup": {
- "name": "setup",
- "duration": 0.0005434000049717724,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0163185999845155,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.482011E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003601000062189996,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.017580999963684,
- "run_index": 22,
- "setup": {
- "name": "setup",
- "duration": 0.0004332999815233052,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0159586000081617,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.598088E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007557999924756587,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.017938899982255,
- "run_index": 23,
- "setup": {
- "name": "setup",
- "duration": 0.0004245000018272549,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016764699976193,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.722182E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003252000024076551,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.03314110005158,
- "run_index": 24,
- "setup": {
- "name": "setup",
- "duration": 0.0004870000120718032,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0318183000199497,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.291178E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003488000074867159,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0330489999614656,
- "run_index": 25,
- "setup": {
- "name": "setup",
- "duration": 0.00046809998457320035,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.031769199995324,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.503860E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034359999699518085,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.025897600018652,
- "run_index": 26,
- "setup": {
- "name": "setup",
- "duration": 0.0010947000118903816,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.022126500000013,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.823097E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0015816999948583543,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0366648999915924,
- "run_index": 27,
- "setup": {
- "name": "setup",
- "duration": 0.0004422999918460846,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.035436500009382,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.863151E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003437999985180795,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0177288000122644,
- "run_index": 28,
- "setup": {
- "name": "setup",
- "duration": 0.0006279000081121922,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.015979099989636,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.899025E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004939000064041466,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0190851000370458,
- "run_index": 29,
- "setup": {
- "name": "setup",
- "duration": 0.00043420001748017967,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0171288999845274,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.224553E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0010878000175580382,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 14.530033999995794,
- "run_index": 30,
- "setup": {
- "name": "setup",
- "duration": 0.001660000008996576,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 14.526364499994088,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 3 input and connect spectrum analyzer into channel 3 output. Press Enter when complete \n\nPower level (dBm): -2.342948E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003494999837130308,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0449755999434274,
- "run_index": 31,
- "setup": {
- "name": "setup",
- "duration": 0.00043299997923895717,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0423071999975946,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.918662E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0018023999873548746,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.020245400053682,
- "run_index": 32,
- "setup": {
- "name": "setup",
- "duration": 0.0010542000236455351,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017807099997299,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.774200E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003299000090919435,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.037068300007377,
- "run_index": 33,
- "setup": {
- "name": "setup",
- "duration": 0.0009061000018846244,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0336478000099305,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.650813E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0016082999936770648,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.019261200039182,
- "run_index": 34,
- "setup": {
- "name": "setup",
- "duration": 0.0005326000100467354,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0177433000062592,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.172471E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00045270001282915473,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0421332000405528,
- "run_index": 35,
- "setup": {
- "name": "setup",
- "duration": 0.000499200017657131,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.040746599988779,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.458621E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003882000164594501,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.019442299962975,
- "run_index": 36,
- "setup": {
- "name": "setup",
- "duration": 0.00044389997492544353,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.018115700018825,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.767281E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00043879999429918826,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.035095199942589,
- "run_index": 37,
- "setup": {
- "name": "setup",
- "duration": 0.0004663999716285616,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.033828600018751,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.916175E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033379998058080673,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.075030899984995,
- "run_index": 38,
- "setup": {
- "name": "setup",
- "duration": 0.000760499999159947,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0731524999719113,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.929842E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000357400014763698,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0881914000201505,
- "run_index": 39,
- "setup": {
- "name": "setup",
- "duration": 0.0004749000072479248,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0868934000027366,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.165910E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003482000029180199,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 13.53111730000819,
- "run_index": 40,
- "setup": {
- "name": "setup",
- "duration": 0.00047110000741668046,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 13.528836000012234,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 4 input and connect spectrum analyzer into channel 4 output. Press Enter when complete \n\nPower level (dBm): -2.346485E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0013390999811235815,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.020732200006023,
- "run_index": 41,
- "setup": {
- "name": "setup",
- "duration": 0.0010344000183977187,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.018337399989832,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.890784E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032599997939541936,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.017580999963684,
- "run_index": 42,
- "setup": {
- "name": "setup",
- "duration": 0.00043799998820759356,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016369599994505,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.732337E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003353999927639961,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0614640999992844,
- "run_index": 43,
- "setup": {
- "name": "setup",
- "duration": 0.00046629999997094274,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0601755999960005,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.733950E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003559000033419579,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.02892859998974,
- "run_index": 44,
- "setup": {
- "name": "setup",
- "duration": 0.0005044999998062849,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.027587399992626,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.250496E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003321999975014478,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0174719000060577,
- "run_index": 45,
- "setup": {
- "name": "setup",
- "duration": 0.0004579999949783087,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016195800009882,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.484545E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003601000062189996,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.022106500022346,
- "run_index": 46,
- "setup": {
- "name": "setup",
- "duration": 0.0005400000081863254,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0203266000025906,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.764614E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006999000033829361,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0257447000185493,
- "run_index": 47,
- "setup": {
- "name": "setup",
- "duration": 0.0016394999984186143,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0216348000103608,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.916323E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0008309000113513321,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.018900700059021,
- "run_index": 48,
- "setup": {
- "name": "setup",
- "duration": 0.0012038000277243555,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0161313000135124,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.781840E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003617999900598079,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.019706800027052,
- "run_index": 49,
- "setup": {
- "name": "setup",
- "duration": 0.0004734999965876341,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.01767720002681,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.223407E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0010826000070665032,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 13.061177900031907,
- "run_index": 50,
- "setup": {
- "name": "setup",
- "duration": 0.00045190000673756003,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 13.059838400018634,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 5 input and connect spectrum analyzer into channel 5 output. Press Enter when complete \n\nPower level (dBm): -2.313940E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00043569999979808927,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0312887000618502,
- "run_index": 51,
- "setup": {
- "name": "setup",
- "duration": 0.0005725000228267163,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0298140000086278,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.900420E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032970000756904483,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0324695000599604,
- "run_index": 52,
- "setup": {
- "name": "setup",
- "duration": 0.0005148000200279057,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0310952000145335,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.842905E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034470000537112355,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0305780999769922,
- "run_index": 53,
- "setup": {
- "name": "setup",
- "duration": 0.0004962999955751002,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.029182199999923,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.664529E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00040329998591914773,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0676422999822535,
- "run_index": 54,
- "setup": {
- "name": "setup",
- "duration": 0.00044579998939298093,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0664244999934454,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.128291E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003262000100221485,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.032872199983103,
- "run_index": 55,
- "setup": {
- "name": "setup",
- "duration": 0.0008509999897796661,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.030826900008833,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.491219E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034329999471083283,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0202114000567235,
- "run_index": 56,
- "setup": {
- "name": "setup",
- "duration": 0.0008389000140596181,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0181872000102885,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.765752E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003464000183157623,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.02805459999945,
- "run_index": 57,
- "setup": {
- "name": "setup",
- "duration": 0.0004354999982751906,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.026856799988309,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.932526E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003268000145908445,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0199505999626126,
- "run_index": 58,
- "setup": {
- "name": "setup",
- "duration": 0.0004831999831367284,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0186603000038303,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.932955E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032389999250881374,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.046733099996345,
- "run_index": 59,
- "setup": {
- "name": "setup",
- "duration": 0.0007642999989911914,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.044870699988678,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.170701E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003338000096846372,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 11.525539100024616,
- "run_index": 60,
- "setup": {
- "name": "setup",
- "duration": 0.0005203000036999583,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 11.52416590001667,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 6 input and connect spectrum analyzer into channel 6 output. Press Enter when complete \n\nPower level (dBm): -2.312365E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033260000054724514,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0189286000386346,
- "run_index": 61,
- "setup": {
- "name": "setup",
- "duration": 0.0006102000188548118,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016963100002613,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.846671E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000745099998312071,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0301497000618838,
- "run_index": 62,
- "setup": {
- "name": "setup",
- "duration": 0.000499500019941479,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.028803200024413,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.834120E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034749999758787453,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.021387299988419,
- "run_index": 63,
- "setup": {
- "name": "setup",
- "duration": 0.0004721999866887927,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.020109200006118,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.760614E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033370000892318785,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0301386999490205,
- "run_index": 64,
- "setup": {
- "name": "setup",
- "duration": 0.0008120999846141785,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0280836999882013,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.226539E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004307999915909022,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0273736000526696,
- "run_index": 65,
- "setup": {
- "name": "setup",
- "duration": 0.0005021000106353313,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.025204700010363,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.496972E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0011647000210359693,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.019815400009975,
- "run_index": 66,
- "setup": {
- "name": "setup",
- "duration": 0.0007767000060994178,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0179059999936726,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.739670E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035600000410340726,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0176601000712253,
- "run_index": 67,
- "setup": {
- "name": "setup",
- "duration": 0.000893000018550083,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0155231000098865,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.962469E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003510000242386013,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0189304000523407,
- "run_index": 68,
- "setup": {
- "name": "setup",
- "duration": 0.0004382000188343227,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017382500023814,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.898659E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006714999908581376,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0299372999579646,
- "run_index": 69,
- "setup": {
- "name": "setup",
- "duration": 0.00042299999040551484,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0287076999957208,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.226951E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003835999814327806,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 12.101038299966604,
- "run_index": 70,
- "setup": {
- "name": "setup",
- "duration": 0.00043200000072829425,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 12.099846499972045,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 7 input and connect spectrum analyzer into channel 7 output. Press Enter when complete \n\nPower level (dBm): -2.519439E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003277999931015074,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0241266000666656,
- "run_index": 71,
- "setup": {
- "name": "setup",
- "duration": 0.001115400023991242,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021471999993082,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.127526E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00042380002560094,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0233222000242677,
- "run_index": 72,
- "setup": {
- "name": "setup",
- "duration": 0.00047900000936351717,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0220059000130277,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.807360E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035829999251291156,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.03516229998786,
- "run_index": 73,
- "setup": {
- "name": "setup",
- "duration": 0.0004592000041157007,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0335370999819133,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.814937E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007067999977152795,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.030543000000762,
- "run_index": 74,
- "setup": {
- "name": "setup",
- "duration": 0.0004282000008970499,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0293584000028204,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.256808E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003281999961473048,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.059477400034666,
- "run_index": 75,
- "setup": {
- "name": "setup",
- "duration": 0.00042970001231878996,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.058273900009226,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.495648E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034410000080242753,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0222573000064585,
- "run_index": 76,
- "setup": {
- "name": "setup",
- "duration": 0.00045479999971576035,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0210184000025038,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.767289E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003293000045232475,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0186480000265874,
- "run_index": 77,
- "setup": {
- "name": "setup",
- "duration": 0.00045330001739785075,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0173960000101943,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.966882E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034539998159743845,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0227269000315573,
- "run_index": 78,
- "setup": {
- "name": "setup",
- "duration": 0.0005563000158872455,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021174900000915,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.901686E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004393999988678843,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0226025000447407,
- "run_index": 79,
- "setup": {
- "name": "setup",
- "duration": 0.0004607000155374408,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021301400003722,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.221202E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003797000099439174,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 12.749495399999432,
- "run_index": 80,
- "setup": {
- "name": "setup",
- "duration": 0.000547999981790781,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 12.748064300016267,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 8 input and connect spectrum analyzer into channel 8 output. Press Enter when complete \n\nPower level (dBm): -2.395231E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033510001958347857,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0207597999833524,
- "run_index": 81,
- "setup": {
- "name": "setup",
- "duration": 0.0017728999955579638,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0165621000051033,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.873094E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006518999871332198,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.022006799990777,
- "run_index": 82,
- "setup": {
- "name": "setup",
- "duration": 0.001418200001353398,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016624399984721,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.800642E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.002546000003349036,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.019042400032049,
- "run_index": 83,
- "setup": {
- "name": "setup",
- "duration": 0.0010077000188175589,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016675499995472,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.804201E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035149999894201756,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.028342999983579,
- "run_index": 84,
- "setup": {
- "name": "setup",
- "duration": 0.0005621000018436462,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0268533999915235,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.315011E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036539998836815357,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0191080000658985,
- "run_index": 85,
- "setup": {
- "name": "setup",
- "duration": 0.0006833000225014985,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0173593000217807,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.275085E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000382099999114871,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0215327000187244,
- "run_index": 86,
- "setup": {
- "name": "setup",
- "duration": 0.00044380000326782465,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0202901000157,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.543575E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003549999964889139,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.022336899972288,
- "run_index": 87,
- "setup": {
- "name": "setup",
- "duration": 0.0007932999869808555,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.020426300005056,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.286495E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003239999932702631,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.021168800070882,
- "run_index": 88,
- "setup": {
- "name": "setup",
- "duration": 0.0004726000188384205,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0198824000253808,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.367478E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003412000078242272,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0203374000266194,
- "run_index": 89,
- "setup": {
- "name": "setup",
- "duration": 0.0007578000077046454,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.018129600008251,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.702797E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006922000029589981,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.114015399973141,
- "run_index": 90,
- "setup": {
- "name": "setup",
- "duration": 0.0004603999841492623,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.112756799993804,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 9 input and connect spectrum analyzer into channel 9 output. Press Enter when complete \n\nPower level (dBm): -2.483236E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003378000110387802,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0192229000094812,
- "run_index": 91,
- "setup": {
- "name": "setup",
- "duration": 0.0004768000217154622,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017548399977386,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.312871E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007208999886643142,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0406361000204924,
- "run_index": 92,
- "setup": {
- "name": "setup",
- "duration": 0.00048370001604780555,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0392308999726083,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.545246E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00043780001578852534,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.023260999994818,
- "run_index": 93,
- "setup": {
- "name": "setup",
- "duration": 0.00046629999997094274,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021954800002277,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.634131E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003735999925993383,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0215744000161067,
- "run_index": 94,
- "setup": {
- "name": "setup",
- "duration": 0.0004791000101249665,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0197916999750305,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.135194E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0008245000208262354,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0326407000247855,
- "run_index": 95,
- "setup": {
- "name": "setup",
- "duration": 0.001358500012429431,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.029578199988464,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.312883E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034550001146271825,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0183104000170715,
- "run_index": 96,
- "setup": {
- "name": "setup",
- "duration": 0.0004807999939657748,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0170018000062555,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.741263E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003470000228844583,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0276937000162434,
- "run_index": 97,
- "setup": {
- "name": "setup",
- "duration": 0.00045200000749900937,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.026364299992565,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.228085E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004254000086802989,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0184487999940757,
- "run_index": 98,
- "setup": {
- "name": "setup",
- "duration": 0.0006049000076018274,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169166999985464,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.346947E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032229998032562435,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0246145999699365,
- "run_index": 99,
- "setup": {
- "name": "setup",
- "duration": 0.001133099984144792,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0219966000004206,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.679384E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035180000122636557,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 12.852610399975674,
- "run_index": 100,
- "setup": {
- "name": "setup",
- "duration": 0.0004692999937105924,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 12.851333800004795,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 10 input and connect spectrum analyzer into channel 10 output. Press Enter when complete \n\nPower level (dBm): -2.164186E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033799998345784843,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0174065999744926,
- "run_index": 101,
- "setup": {
- "name": "setup",
- "duration": 0.0005109999910928309,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0160001999756787,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.510386E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003844000166282058,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0193726000143215,
- "run_index": 102,
- "setup": {
- "name": "setup",
- "duration": 0.001363799994578585,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.01630820002174,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.549183E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033680000342428684,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.045286499982467,
- "run_index": 103,
- "setup": {
- "name": "setup",
- "duration": 0.0006102999905124307,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0436771000095177,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.743786E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003887999919243157,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.054466700035846,
- "run_index": 104,
- "setup": {
- "name": "setup",
- "duration": 0.00047080000513233244,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.052011100022355,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.350555E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0015140000032261014,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0853470000147354,
- "run_index": 105,
- "setup": {
- "name": "setup",
- "duration": 0.00047450000420212746,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0840624000120442,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.257273E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003355999942868948,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.017689699976472,
- "run_index": 106,
- "setup": {
- "name": "setup",
- "duration": 0.0009101000032387674,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0154408999951556,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.561184E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004285999748390168,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0187895000271965,
- "run_index": 107,
- "setup": {
- "name": "setup",
- "duration": 0.00042490000487305224,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0175726000161376,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.253985E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003671000013127923,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0176731999672484,
- "run_index": 108,
- "setup": {
- "name": "setup",
- "duration": 0.0004724999889731407,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0163676999800373,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.323700E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036050000926479697,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.027019900007872,
- "run_index": 109,
- "setup": {
- "name": "setup",
- "duration": 0.0004675000091083348,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0256321000051685,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.767017E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004527999844867736,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 14.864491100015584,
- "run_index": 110,
- "setup": {
- "name": "setup",
- "duration": 0.00043670000741258264,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 14.863261300022714,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 11 input and connect spectrum analyzer into channel 11 output. Press Enter when complete \n\nPower level (dBm): -2.356942E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035639997804537416,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0225723999610636,
- "run_index": 111,
- "setup": {
- "name": "setup",
- "duration": 0.0007161999819800258,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0208146999939345,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.598222E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032530000316910446,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.029283999989275,
- "run_index": 112,
- "setup": {
- "name": "setup",
- "duration": 0.0007205999863799661,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0265002000087406,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.478525E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0013426000077743083,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.030625399958808,
- "run_index": 113,
- "setup": {
- "name": "setup",
- "duration": 0.0006438999844249338,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0289790999959223,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.630241E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035849999403581023,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.016955000028247,
- "run_index": 114,
- "setup": {
- "name": "setup",
- "duration": 0.0004975000047124922,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.015620200021658,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.091098E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003397999971639365,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0211673000012524,
- "run_index": 115,
- "setup": {
- "name": "setup",
- "duration": 0.00045930000487715006,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.01901769998949,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.202808E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0012310000020079315,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.041964700038079,
- "run_index": 116,
- "setup": {
- "name": "setup",
- "duration": 0.0004526000120677054,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0407245000242256,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.525541E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003349999897181988,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0193961999902967,
- "run_index": 117,
- "setup": {
- "name": "setup",
- "duration": 0.001116400002501905,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0164529999892693,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.240377E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007103999960236251,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0660433000011835,
- "run_index": 118,
- "setup": {
- "name": "setup",
- "duration": 0.0004862000059802085,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0647374000109266,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.370574E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003334999782964587,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0342089000332635,
- "run_index": 119,
- "setup": {
- "name": "setup",
- "duration": 0.0005055000074207783,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.031724200001918,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.741838E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0014737000165041536,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 16.620774999988498,
- "run_index": 120,
- "setup": {
- "name": "setup",
- "duration": 0.0011042999976780266,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 16.61813250000705,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 12 input and connect spectrum analyzer into channel 12 output. Press Enter when complete \n\nPower level (dBm): -2.278384E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004338999860920012,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0346807000169065,
- "run_index": 121,
- "setup": {
- "name": "setup",
- "duration": 0.0011190999939572066,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.032007700006943,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.644547E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004348000220488757,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.033010299986927,
- "run_index": 122,
- "setup": {
- "name": "setup",
- "duration": 0.000450999999884516,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0316100000054576,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.697013E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004982999817002565,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.018156500009354,
- "run_index": 123,
- "setup": {
- "name": "setup",
- "duration": 0.0004400000034365803,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169261999835726,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.888481E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035030001890845597,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.024013499962166,
- "run_index": 124,
- "setup": {
- "name": "setup",
- "duration": 0.00046729997848160565,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.022721699991962,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.292100E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003572000132407993,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0449229999503586,
- "run_index": 125,
- "setup": {
- "name": "setup",
- "duration": 0.0006477999850176275,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.043291899986798,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.531174E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033549999352544546,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.019570999982534,
- "run_index": 126,
- "setup": {
- "name": "setup",
- "duration": 0.0005348999984562397,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017187699995702,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.764869E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0013134999899193645,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0205162999918684,
- "run_index": 127,
- "setup": {
- "name": "setup",
- "duration": 0.0007941999938338995,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0185815000149887,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.866454E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003463999892119318,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.021480800001882,
- "run_index": 128,
- "setup": {
- "name": "setup",
- "duration": 0.0007138999935705215,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0197287000191864,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.920344E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003242999955546111,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0318671999848448,
- "run_index": 129,
- "setup": {
- "name": "setup",
- "duration": 0.0004970000009052455,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0303469999926165,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.269677E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005261999904178083,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 11.790001399989706,
- "run_index": 130,
- "setup": {
- "name": "setup",
- "duration": 0.0004361000028438866,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 11.788772599975346,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 13 input and connect spectrum analyzer into channel 13 output. Press Enter when complete \n\nPower level (dBm): -2.253842E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003566000086721033,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0303872999793384,
- "run_index": 131,
- "setup": {
- "name": "setup",
- "duration": 0.00044059997890144587,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0291755000071134,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.614228E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033060001442208886,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.045456899970304,
- "run_index": 132,
- "setup": {
- "name": "setup",
- "duration": 0.00041849998524412513,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.04425559999072,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.647749E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003643000090960413,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0182088000001386,
- "run_index": 133,
- "setup": {
- "name": "setup",
- "duration": 0.0004845999937970191,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0158633000100963,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.771245E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0013763000024482608,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.080884100025287,
- "run_index": 134,
- "setup": {
- "name": "setup",
- "duration": 0.0005085000011604279,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0794150000147056,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.305930E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004521000082604587,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0196575000009034,
- "run_index": 135,
- "setup": {
- "name": "setup",
- "duration": 0.000454399996669963,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0183642000192776,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.525736E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00038449998828582466,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0255447999516036,
- "run_index": 136,
- "setup": {
- "name": "setup",
- "duration": 0.00047369999811053276,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0241645999776665,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.732505E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004327999777160585,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.01925710006617,
- "run_index": 137,
- "setup": {
- "name": "setup",
- "duration": 0.000663500017253682,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017412700020941,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.840231E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000517400010721758,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0285874999826774,
- "run_index": 138,
- "setup": {
- "name": "setup",
- "duration": 0.0011765999952331185,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0258695000084117,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.938793E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036479998379945755,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.018114100006642,
- "run_index": 139,
- "setup": {
- "name": "setup",
- "duration": 0.0004345000197645277,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016602799994871,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.238020E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006422999722417444,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 13.587779200053774,
- "run_index": 140,
- "setup": {
- "name": "setup",
- "duration": 0.0004534000181593001,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 13.586473200004548,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 14 input and connect spectrum analyzer into channel 14 output. Press Enter when complete \n\nPower level (dBm): -2.335880E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003992000129073858,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.024637199967401,
- "run_index": 141,
- "setup": {
- "name": "setup",
- "duration": 0.0004301999870222062,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.02324999999837,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.659169E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005267999949865043,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.037326099962229,
- "run_index": 142,
- "setup": {
- "name": "setup",
- "duration": 0.0015414999797940254,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0339074000075925,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.654425E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033569999504834414,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0195060999540146,
- "run_index": 143,
- "setup": {
- "name": "setup",
- "duration": 0.0004631999763660133,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0182378999888897,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.771632E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034180001239292324,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0258868999953847,
- "run_index": 144,
- "setup": {
- "name": "setup",
- "duration": 0.00046239999937824905,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0246136999921873,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.310846E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034840000444091856,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0363043999823276,
- "run_index": 145,
- "setup": {
- "name": "setup",
- "duration": 0.0007213999924715608,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0345257000008132,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.553709E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003358999965712428,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0471745999529958,
- "run_index": 146,
- "setup": {
- "name": "setup",
- "duration": 0.0004897999751847237,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.045874100003857,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.733204E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003208999987691641,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.017479399975855,
- "run_index": 147,
- "setup": {
- "name": "setup",
- "duration": 0.0004910999850835651,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0161585999885574,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.862777E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003386000171303749,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0522181000269484,
- "run_index": 148,
- "setup": {
- "name": "setup",
- "duration": 0.0005431000026874244,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0506755000096746,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.957783E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00045640001189894974,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0390670000051614,
- "run_index": 149,
- "setup": {
- "name": "setup",
- "duration": 0.0005010000022593886,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0375179999973625,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.287206E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005470000032801181,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.31725860000006,
- "run_index": 150,
- "setup": {
- "name": "setup",
- "duration": 0.0006882000016048551,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.314065099984873,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 15 input and connect spectrum analyzer into channel 15 output. Press Enter when complete \n\nPower level (dBm): -2.392153E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0018171000119764358,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.017656599986367,
- "run_index": 151,
- "setup": {
- "name": "setup",
- "duration": 0.0004884999943897128,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016325600008713,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.800071E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003539999888744205,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.029506900027627,
- "run_index": 152,
- "setup": {
- "name": "setup",
- "duration": 0.0005508000031113625,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0280619999975897,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.758259E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003433000238146633,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0202380000264384,
- "run_index": 153,
- "setup": {
- "name": "setup",
- "duration": 0.0004702000005636364,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.018932200007839,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.838159E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036540001747198403,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0189125999750104,
- "run_index": 154,
- "setup": {
- "name": "setup",
- "duration": 0.0006469999789260328,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017269400006626,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.427161E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034920001053251326,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0347343999892473,
- "run_index": 155,
- "setup": {
- "name": "setup",
- "duration": 0.0008634999976493418,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.032493100006832,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.544890E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005142999871168286,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.03288700003759,
- "run_index": 156,
- "setup": {
- "name": "setup",
- "duration": 0.0014464000123552978,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0287894000066444,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.794281E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0012048000062350184,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0292367999791168,
- "run_index": 157,
- "setup": {
- "name": "setup",
- "duration": 0.0007713999948464334,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0273461999895517,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.924738E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034779999987222254,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.018250899971463,
- "run_index": 158,
- "setup": {
- "name": "setup",
- "duration": 0.0004582999972626567,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169812999956775,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.977777E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035299998125992715,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.019144000048982,
- "run_index": 159,
- "setup": {
- "name": "setup",
- "duration": 0.0007316000119317323,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0173163000144996,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.307273E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036450001061894,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):8000]",
- "duration": 28.962121399934404,
- "run_index": 160,
- "setup": {
- "name": "setup",
- "duration": 0.0004550999728962779,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 28.960806099988986,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete\n\nPower level (dBm): -1.834334E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004050999996252358,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):9000]",
- "duration": 2.0178675999923144,
- "run_index": 161,
- "setup": {
- "name": "setup",
- "duration": 0.0003276999923400581,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169473999994807,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -1.987976E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0002648000081535429,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):10000]",
- "duration": 2.0708949999825563,
- "run_index": 162,
- "setup": {
- "name": "setup",
- "duration": 0.0003231999871786684,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0699912999989465,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.136182E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0002573000092525035,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):11000]",
- "duration": 2.0216005999827757,
- "run_index": 163,
- "setup": {
- "name": "setup",
- "duration": 0.00038759998278692365,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0205316000210587,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.212036E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00029379999614320695,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):12000]",
- "duration": 2.0305408999847714,
- "run_index": 164,
- "setup": {
- "name": "setup",
- "duration": 0.00129489999380894,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0276821000152268,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.349445E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0002689999819267541,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):8000]",
- "duration": 48.926655000046594,
- "run_index": 165,
- "setup": {
- "name": "setup",
- "duration": 0.00040370001806877553,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 48.92554590001237,
- "outcome": "passed",
- "stdout": "\n\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete\n\nPower level (dBm): -1.901320E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00030169999809004366,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):9000]",
- "duration": 2.05117830002564,
- "run_index": 166,
- "setup": {
- "name": "setup",
- "duration": 0.0003375000087544322,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0502012000069954,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -1.962891E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000302100001135841,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):10000]",
- "duration": 2.0179123999841977,
- "run_index": 167,
- "setup": {
- "name": "setup",
- "duration": 0.0003284999984316528,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169791000080295,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.158308E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0002762999793048948,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):11000]",
- "duration": 2.0178858999570366,
- "run_index": 168,
- "setup": {
- "name": "setup",
- "duration": 0.00034329999471083283,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169329999771435,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.251577E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0002662999904714525,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):12000]",
- "duration": 2.0415249000070617,
- "run_index": 169,
- "setup": {
- "name": "setup",
- "duration": 0.0003406000032555312,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0229203999915626,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.400306E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.017923300008988008,
- "outcome": "passed"
- },
- "outcome": "passed"
- }
- ],
- "summary": {
- "passed": 170,
- "num_tests": 170,
- "duration": 623.9100317955017
- },
- "created_at": "2024-04-12 10:14:26.474860"
- }
-}
\ No newline at end of file
+{"report": {"environment": {"Python": "3.10.12", "Platform": "Linux-6.5.0-28-generic-x86_64-with-glibc2.35"}, "tests": [{"name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):8000]", "duration": 3.4237830839847447, "run_index": 0, "setup": {"name": "setup", "duration": 0.0005149549979250878, "outcome": "passed"}, "call": {"name": "call", "duration": 3.422167612996418, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 0 input and connect spectrum analyzer into channel 0 output. Press Enter when complete \n\nPower level (dBm): -2.333594E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005855609924765304, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.035476531018503, "run_index": 1, "setup": {"name": "setup", "duration": 0.0008810730068944395, "outcome": "passed"}, "call": {"name": "call", "duration": 2.033272473010584, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.780156E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044191199413035065, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.028088621009374, "run_index": 2, "setup": {"name": "setup", "duration": 0.000895819001016207, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0259451400052058, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.476712E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003518430021358654, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.031128709000768, "run_index": 3, "setup": {"name": "setup", "duration": 0.0007767369970679283, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029083827001159, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.524421E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000491408005473204, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.039271468995139, "run_index": 4, "setup": {"name": "setup", "duration": 0.0009153540013357997, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0370494259987026, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.237093E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003913349937647581, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):8000]", "duration": 2.0297108100057812, "run_index": 5, "setup": {"name": "setup", "duration": 0.0007349070074269548, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0278452439961256, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.457435E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003957519948016852, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):9000]", "duration": 2.0354769459954696, "run_index": 6, "setup": {"name": "setup", "duration": 0.0008162529993569478, "outcome": "passed"}, "call": {"name": "call", "duration": 2.03348215999722, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.742538E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003622799995355308, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):10000]", "duration": 2.050934398008394, "run_index": 7, "setup": {"name": "setup", "duration": 0.0007754370017210022, "outcome": "passed"}, "call": {"name": "call", "duration": 2.048983305998263, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.829165E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00040021800668910146, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):11000]", "duration": 2.042677482997533, "run_index": 8, "setup": {"name": "setup", "duration": 0.0007948129932628945, "outcome": "passed"}, "call": {"name": "call", "duration": 2.040635283003212, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.904467E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004525740077951923, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):12000]", "duration": 2.0443833800090943, "run_index": 9, "setup": {"name": "setup", "duration": 0.0009132730046985671, "outcome": "passed"}, "call": {"name": "call", "duration": 2.042161560995737, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.183840E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003952730039600283, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.595618648992968, "run_index": 10, "setup": {"name": "setup", "duration": 0.0008277739980258048, "outcome": "passed"}, "call": {"name": "call", "duration": 2.5934666999964975, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 1 input and connect spectrum analyzer into channel 1 output. Press Enter when complete \n\nPower level (dBm): -2.230024E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004964010004187003, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0390381420147605, "run_index": 11, "setup": {"name": "setup", "duration": 0.0009279310033889487, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0367857509991154, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.679692E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003965290088672191, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0438845260359813, "run_index": 12, "setup": {"name": "setup", "duration": 0.000799826011643745, "outcome": "passed"}, "call": {"name": "call", "duration": 2.041783374006627, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.381808E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005015000060666353, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0370416169898817, "run_index": 13, "setup": {"name": "setup", "duration": 0.0009704429976409301, "outcome": "passed"}, "call": {"name": "call", "duration": 2.034720103998552, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.432963E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003806269960477948, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0392269080184633, "run_index": 14, "setup": {"name": "setup", "duration": 0.000764256008551456, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0373274970042985, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.176468E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003708989970618859, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):8000]", "duration": 2.0817219509917777, "run_index": 15, "setup": {"name": "setup", "duration": 0.0008536319946870208, "outcome": "passed"}, "call": {"name": "call", "duration": 2.079657128007966, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.456286E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003575589944375679, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):9000]", "duration": 2.0468090389913414, "run_index": 16, "setup": {"name": "setup", "duration": 0.0006434209935832769, "outcome": "passed"}, "call": {"name": "call", "duration": 2.04523168700689, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.722204E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0002905099972849712, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):10000]", "duration": 2.034910257003503, "run_index": 17, "setup": {"name": "setup", "duration": 0.0005985280004097149, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0333347109990427, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.833835E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037849000364076346, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):11000]", "duration": 2.0360577319952426, "run_index": 18, "setup": {"name": "setup", "duration": 0.0007946120022097602, "outcome": "passed"}, "call": {"name": "call", "duration": 2.034012158997939, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.944946E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004563489928841591, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):12000]", "duration": 2.030499544023769, "run_index": 19, "setup": {"name": "setup", "duration": 0.0011158740089740604, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0277684650063748, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.174156E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004993309994461015, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.6277638239698717, "run_index": 20, "setup": {"name": "setup", "duration": 0.0009535339922877029, "outcome": "passed"}, "call": {"name": "call", "duration": 2.625446669990197, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 2 input and connect spectrum analyzer into channel 2 output. Press Enter when complete \n\nPower level (dBm): -2.218463E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00041008599509950727, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.026995860011084, "run_index": 21, "setup": {"name": "setup", "duration": 0.0008173020032700151, "outcome": "passed"}, "call": {"name": "call", "duration": 2.024840772995958, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.670097E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005204830085858703, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0279330119956285, "run_index": 22, "setup": {"name": "setup", "duration": 0.0009457790001761168, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0256023519905284, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.412889E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004391020047478378, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0387553560140077, "run_index": 23, "setup": {"name": "setup", "duration": 0.0008965930028352886, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0365092270076275, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.487153E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000452943000709638, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0558796920086024, "run_index": 24, "setup": {"name": "setup", "duration": 0.0008359280036529526, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0538086330052465, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.180782E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039920299605000764, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):8000]", "duration": 2.0417307519819587, "run_index": 25, "setup": {"name": "setup", "duration": 0.0007972559978952631, "outcome": "passed"}, "call": {"name": "call", "duration": 2.039687578988378, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.454370E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044866099779028445, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):9000]", "duration": 2.043888601969229, "run_index": 26, "setup": {"name": "setup", "duration": 0.0009049879881786183, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0415777290036203, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.730575E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.000500896989251487, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):10000]", "duration": 2.0432073950069025, "run_index": 27, "setup": {"name": "setup", "duration": 0.0010024810035247356, "outcome": "passed"}, "call": {"name": "call", "duration": 2.040668788002222, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.833489E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005336449976311997, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):11000]", "duration": 2.050465222011553, "run_index": 28, "setup": {"name": "setup", "duration": 0.0010982170060742646, "outcome": "passed"}, "call": {"name": "call", "duration": 2.047721034992719, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.917443E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005477530066855252, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):12000]", "duration": 2.038369190006051, "run_index": 29, "setup": {"name": "setup", "duration": 0.0010419830068713054, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0358226459939033, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.150561E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00046257799840532243, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.9321403309877496, "run_index": 30, "setup": {"name": "setup", "duration": 0.0008923669956857339, "outcome": "passed"}, "call": {"name": "call", "duration": 2.9299197340005776, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 3 input and connect spectrum analyzer into channel 3 output. Press Enter when complete \n\nPower level (dBm): -2.171998E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004358629958005622, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.032365074963309, "run_index": 31, "setup": {"name": "setup", "duration": 0.0009310789901064709, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0300485999905504, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.601655E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004543169925455004, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0357997490355046, "run_index": 32, "setup": {"name": "setup", "duration": 0.0008512050117133185, "outcome": "passed"}, "call": {"name": "call", "duration": 2.033661766006844, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.347116E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004355730052338913, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.031417287988006, "run_index": 33, "setup": {"name": "setup", "duration": 0.0009004820021800697, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029183871985879, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.395868E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00043245199776720256, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.075906489000772, "run_index": 34, "setup": {"name": "setup", "duration": 0.0008746789972065017, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0737725799990585, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.151501E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003845510073006153, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):8000]", "duration": 2.0436059920029948, "run_index": 35, "setup": {"name": "setup", "duration": 0.0007113879983080551, "outcome": "passed"}, "call": {"name": "call", "duration": 2.041825100008282, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.451448E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003581159980967641, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):9000]", "duration": 2.029049734977889, "run_index": 36, "setup": {"name": "setup", "duration": 0.0007765019981889054, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0269924539898057, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.751336E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005042769917054102, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):10000]", "duration": 2.0312319439981366, "run_index": 37, "setup": {"name": "setup", "duration": 0.0009009530040202662, "outcome": "passed"}, "call": {"name": "call", "duration": 2.028981190000195, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.813161E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044884798990096897, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):11000]", "duration": 2.059288151009241, "run_index": 38, "setup": {"name": "setup", "duration": 0.000909384005353786, "outcome": "passed"}, "call": {"name": "call", "duration": 2.057073436008068, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.909009E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039594699046574533, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):12000]", "duration": 2.090973212980316, "run_index": 39, "setup": {"name": "setup", "duration": 0.0009045149927260354, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0887620050052647, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.194501E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00040217798959929496, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):8000]", "duration": 17.68417252598738, "run_index": 40, "setup": {"name": "setup", "duration": 0.0009182139910990372, "outcome": "passed"}, "call": {"name": "call", "duration": 17.68178541700763, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 4 input and connect spectrum analyzer into channel 4 output. Press Enter when complete \n\nPower level (dBm): -2.138231E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005506809975486249, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0788413740083342, "run_index": 41, "setup": {"name": "setup", "duration": 0.0010679810075089335, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0761381899937987, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.586224E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000567221999517642, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.035882121010218, "run_index": 42, "setup": {"name": "setup", "duration": 0.001128596006310545, "outcome": "passed"}, "call": {"name": "call", "duration": 2.033210601002793, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.319999E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00041432799480389804, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.048480887970072, "run_index": 43, "setup": {"name": "setup", "duration": 0.0008712439885130152, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0463619229994947, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.410837E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003764769935514778, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0297993649874115, "run_index": 44, "setup": {"name": "setup", "duration": 0.0007830190006643534, "outcome": "passed"}, "call": {"name": "call", "duration": 2.027865029987879, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.081164E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003682969982037321, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):8000]", "duration": 2.0434262369963108, "run_index": 45, "setup": {"name": "setup", "duration": 0.0007363339973380789, "outcome": "passed"}, "call": {"name": "call", "duration": 2.041555160001735, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.448893E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039840899989940226, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):9000]", "duration": 2.0496248730050866, "run_index": 46, "setup": {"name": "setup", "duration": 0.0008716960001038387, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0474495840026066, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.749330E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00043189700227230787, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):10000]", "duration": 2.054875328001799, "run_index": 47, "setup": {"name": "setup", "duration": 0.0008912199991755188, "outcome": "passed"}, "call": {"name": "call", "duration": 2.052721542000654, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.819561E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037134600279387087, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):11000]", "duration": 2.038730571002816, "run_index": 48, "setup": {"name": "setup", "duration": 0.000754316002712585, "outcome": "passed"}, "call": {"name": "call", "duration": 2.03686325099261, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.903098E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00035868800478056073, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):12000]", "duration": 2.047250421019271, "run_index": 49, "setup": {"name": "setup", "duration": 0.0008040520042413846, "outcome": "passed"}, "call": {"name": "call", "duration": 2.045259934006026, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.190147E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003823830047622323, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.6454365979880095, "run_index": 50, "setup": {"name": "setup", "duration": 0.0008391960000153631, "outcome": "passed"}, "call": {"name": "call", "duration": 2.6432307959912578, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 5 input and connect spectrum analyzer into channel 5 output. Press Enter when complete \n\nPower level (dBm): -2.134590E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005274099967209622, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0338732299715048, "run_index": 51, "setup": {"name": "setup", "duration": 0.0010435899894218892, "outcome": "passed"}, "call": {"name": "call", "duration": 2.03133089999028, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.585574E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00045515000238083303, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.083566440982395, "run_index": 52, "setup": {"name": "setup", "duration": 0.0009243649983545765, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0811438109958544, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.289994E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005738999898312613, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.088176922974526, "run_index": 53, "setup": {"name": "setup", "duration": 0.001118485990446061, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0853919479995966, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.346200E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005480029940372333, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.059839314009878, "run_index": 54, "setup": {"name": "setup", "duration": 0.0009432240040041506, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0575495420052903, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.065976E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00040332399657927454, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):8000]", "duration": 2.0394388960121432, "run_index": 55, "setup": {"name": "setup", "duration": 0.0008570180070819333, "outcome": "passed"}, "call": {"name": "call", "duration": 2.037260728000547, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.448481E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00046413199743255973, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):9000]", "duration": 2.0458541930129286, "run_index": 56, "setup": {"name": "setup", "duration": 0.0009758020023582503, "outcome": "passed"}, "call": {"name": "call", "duration": 2.043521793006221, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.728931E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00038079600199125707, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):10000]", "duration": 2.0275173490081215, "run_index": 57, "setup": {"name": "setup", "duration": 0.0007531400042353198, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0254948920046445, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.808509E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005161769950063899, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):11000]", "duration": 2.0403383640077664, "run_index": 58, "setup": {"name": "setup", "duration": 0.0009728750010253862, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0378208909969544, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.893351E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005717230087611824, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):12000]", "duration": 2.025403695006389, "run_index": 59, "setup": {"name": "setup", "duration": 0.0010517850023461506, "outcome": "passed"}, "call": {"name": "call", "duration": 2.022943686999497, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.169255E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003564380021998659, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):8000]", "duration": 7.9345105459942715, "run_index": 60, "setup": {"name": "setup", "duration": 0.0007723769958829507, "outcome": "passed"}, "call": {"name": "call", "duration": 7.932531429003575, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 6 input and connect spectrum analyzer into channel 6 output. Press Enter when complete \n\nPower level (dBm): -2.166410E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004343629989307374, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.03620172997762, "run_index": 61, "setup": {"name": "setup", "duration": 0.0008597409905632958, "outcome": "passed"}, "call": {"name": "call", "duration": 2.034098087999155, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.564763E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003841599973384291, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.043914455003687, "run_index": 62, "setup": {"name": "setup", "duration": 0.0008221129974117503, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0418042410019552, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.296181E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00046598800690844655, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.046430756978225, "run_index": 63, "setup": {"name": "setup", "duration": 0.0008405559929087758, "outcome": "passed"}, "call": {"name": "call", "duration": 2.044246221994399, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.339686E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005034229980083182, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.043364665005356, "run_index": 64, "setup": {"name": "setup", "duration": 0.0008891990000847727, "outcome": "passed"}, "call": {"name": "call", "duration": 2.041216480996809, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.039794E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003697860083775595, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):8000]", "duration": 2.0363473259931197, "run_index": 65, "setup": {"name": "setup", "duration": 0.0007700080022914335, "outcome": "passed"}, "call": {"name": "call", "duration": 2.034432458996889, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.432702E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037485099164769053, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):9000]", "duration": 2.0388009779999265, "run_index": 66, "setup": {"name": "setup", "duration": 0.0007919530034996569, "outcome": "passed"}, "call": {"name": "call", "duration": 2.036760572998901, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.736061E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004564989940263331, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):10000]", "duration": 2.0318424699798925, "run_index": 67, "setup": {"name": "setup", "duration": 0.0008549999911338091, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029765908999252, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.812300E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003665609983727336, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):11000]", "duration": 2.030527520022588, "run_index": 68, "setup": {"name": "setup", "duration": 0.0007468360126949847, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0285842409939505, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.898027E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044960700324736536, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):12000]", "duration": 2.0416530879883794, "run_index": 69, "setup": {"name": "setup", "duration": 0.0008907099982025102, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0395012730004964, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.139090E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003703949914779514, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):8000]", "duration": 9.234801810001954, "run_index": 70, "setup": {"name": "setup", "duration": 0.00073350100137759, "outcome": "passed"}, "call": {"name": "call", "duration": 9.232965083996532, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 7 input and connect spectrum analyzer into channel 7 output. Press Enter when complete \n\nPower level (dBm): -2.130852E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003697240026667714, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.084169726993423, "run_index": 71, "setup": {"name": "setup", "duration": 0.0008331949939019978, "outcome": "passed"}, "call": {"name": "call", "duration": 2.082135112999822, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.558909E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003682240057969466, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.044606023002416, "run_index": 72, "setup": {"name": "setup", "duration": 0.0008168530039256439, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0425996580015635, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.246423E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037265899300109595, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0444810000044527, "run_index": 73, "setup": {"name": "setup", "duration": 0.0007908560073701665, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0425603069888894, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.358928E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003389810008229688, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.047432892024517, "run_index": 74, "setup": {"name": "setup", "duration": 0.0007365900091826916, "outcome": "passed"}, "call": {"name": "call", "duration": 2.04556199000217, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.066342E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039772200398147106, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):8000]", "duration": 2.083107930026017, "run_index": 75, "setup": {"name": "setup", "duration": 0.0007995860069058836, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0810935920017073, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.432290E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004151660104980692, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):9000]", "duration": 2.038606937014265, "run_index": 76, "setup": {"name": "setup", "duration": 0.0008479700045427307, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0363465010013897, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.740152E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005644960037898272, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):10000]", "duration": 2.0455326060182415, "run_index": 77, "setup": {"name": "setup", "duration": 0.0009843300067586824, "outcome": "passed"}, "call": {"name": "call", "duration": 2.043131917002029, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.803357E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004320290026953444, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):11000]", "duration": 2.027963907981757, "run_index": 78, "setup": {"name": "setup", "duration": 0.0008533499931218103, "outcome": "passed"}, "call": {"name": "call", "duration": 2.025858029999654, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.909830E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003991779958596453, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):12000]", "duration": 2.0495096530066803, "run_index": 79, "setup": {"name": "setup", "duration": 0.0008115800010273233, "outcome": "passed"}, "call": {"name": "call", "duration": 2.047403372998815, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.165433E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004831200058106333, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):8000]", "duration": 3.08751140597451, "run_index": 80, "setup": {"name": "setup", "duration": 0.00082388699229341, "outcome": "passed"}, "call": {"name": "call", "duration": 3.085375883994857, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 8 input and connect spectrum analyzer into channel 8 output. Press Enter when complete \n\nPower level (dBm): -2.089874E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004877479950664565, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0629628469905583, "run_index": 81, "setup": {"name": "setup", "duration": 0.0009370979969389737, "outcome": "passed"}, "call": {"name": "call", "duration": 2.060724675990059, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.541243E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000363975006621331, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0485594799829414, "run_index": 82, "setup": {"name": "setup", "duration": 0.001230720998137258, "outcome": "passed"}, "call": {"name": "call", "duration": 2.04565856399131, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.239611E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004394739953568205, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.029384929992375, "run_index": 83, "setup": {"name": "setup", "duration": 0.0008531739877071232, "outcome": "passed"}, "call": {"name": "call", "duration": 2.027285315009067, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.300282E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003932670078938827, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.107860622010776, "run_index": 84, "setup": {"name": "setup", "duration": 0.0008147019980242476, "outcome": "passed"}, "call": {"name": "call", "duration": 2.1056896430091, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.034652E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005415750056272373, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):8000]", "duration": 2.0703805049852235, "run_index": 85, "setup": {"name": "setup", "duration": 0.0009319550008513033, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0680033799872035, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.448103E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005132149963174015, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):9000]", "duration": 2.045440838992363, "run_index": 86, "setup": {"name": "setup", "duration": 0.0009127049997914582, "outcome": "passed"}, "call": {"name": "call", "duration": 2.043218397986493, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.713148E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039703100628685206, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):10000]", "duration": 2.034533181998995, "run_index": 87, "setup": {"name": "setup", "duration": 0.0008157150004990399, "outcome": "passed"}, "call": {"name": "call", "duration": 2.032539858002565, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.811480E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00036189399543218315, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):11000]", "duration": 2.0630178909923416, "run_index": 88, "setup": {"name": "setup", "duration": 0.0007644239958608523, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0610266139992746, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.916929E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004624290013452992, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):12000]", "duration": 2.037849278000067, "run_index": 89, "setup": {"name": "setup", "duration": 0.000841676999698393, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0357237970019924, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.174973E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044212699867784977, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):8000]", "duration": 8.95846889000677, "run_index": 90, "setup": {"name": "setup", "duration": 0.0008805480028968304, "outcome": "passed"}, "call": {"name": "call", "duration": 8.956328107000445, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 9 input and connect spectrum analyzer into channel 9 output. Press Enter when complete \n\nPower level (dBm): -2.132819E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037968700053170323, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.026768315001391, "run_index": 91, "setup": {"name": "setup", "duration": 0.000756838999222964, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0248802620044444, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.499283E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037437499850057065, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0333644450001884, "run_index": 92, "setup": {"name": "setup", "duration": 0.0007400839967885986, "outcome": "passed"}, "call": {"name": "call", "duration": 2.031472369999392, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.223572E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00041190700721926987, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0420880029996624, "run_index": 93, "setup": {"name": "setup", "duration": 0.0008328370022354648, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0400548369943863, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.339079E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00036749200080521405, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0270997249754146, "run_index": 94, "setup": {"name": "setup", "duration": 0.0008644329936942086, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0249075049941894, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.024876E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004633539938367903, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):8000]", "duration": 2.035332404979272, "run_index": 95, "setup": {"name": "setup", "duration": 0.0009161509951809421, "outcome": "passed"}, "call": {"name": "call", "duration": 2.032990975989378, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.442798E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005091269995318726, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):9000]", "duration": 2.0363927369908197, "run_index": 96, "setup": {"name": "setup", "duration": 0.0009124179923674092, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0341615229990566, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.733546E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004063780070282519, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):10000]", "duration": 2.050076312982128, "run_index": 97, "setup": {"name": "setup", "duration": 0.0008383849926758558, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0479841339983977, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.819061E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004154089983785525, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):11000]", "duration": 2.0418431700236397, "run_index": 98, "setup": {"name": "setup", "duration": 0.0008300440094899386, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0397746180096874, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.904827E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004084639949724078, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):12000]", "duration": 2.0337457860150607, "run_index": 99, "setup": {"name": "setup", "duration": 0.0008616980048827827, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0315728849964216, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.155685E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00044950500887352973, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.6482743129890878, "run_index": 100, "setup": {"name": "setup", "duration": 0.000865702997543849, "outcome": "passed"}, "call": {"name": "call", "duration": 2.6461278539936757, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 10 input and connect spectrum analyzer into channel 10 output. Press Enter when complete \n\nPower level (dBm): -2.112556E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00041505300032440573, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0273147900006734, "run_index": 101, "setup": {"name": "setup", "duration": 0.0009142409980995581, "outcome": "passed"}, "call": {"name": "call", "duration": 2.025118064993876, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.513917E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00036824301059823483, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.036515618994599, "run_index": 102, "setup": {"name": "setup", "duration": 0.0007809329981682822, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0345917609956814, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.199453E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003619920025812462, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.040178162016673, "run_index": 103, "setup": {"name": "setup", "duration": 0.0008051390032051131, "outcome": "passed"}, "call": {"name": "call", "duration": 2.038146360006067, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.357694E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004215240041958168, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0378287569910754, "run_index": 104, "setup": {"name": "setup", "duration": 0.0008311720011988655, "outcome": "passed"}, "call": {"name": "call", "duration": 2.035793642993667, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.008343E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00037276999501045793, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):8000]", "duration": 2.03956505098904, "run_index": 105, "setup": {"name": "setup", "duration": 0.0008111939969239756, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0374869109946303, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.442154E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00045575200056191534, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):9000]", "duration": 2.043152480997378, "run_index": 106, "setup": {"name": "setup", "duration": 0.0009074469999177381, "outcome": "passed"}, "call": {"name": "call", "duration": 2.04077830100141, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.727101E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005592859961325303, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):10000]", "duration": 2.0317914210172603, "run_index": 107, "setup": {"name": "setup", "duration": 0.0008607240015408024, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029663370005437, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.812026E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004066030087415129, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):11000]", "duration": 2.030757344997255, "run_index": 108, "setup": {"name": "setup", "duration": 0.000931104994378984, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0284472560015274, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.906392E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004478790069697425, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):12000]", "duration": 2.040303118992597, "run_index": 109, "setup": {"name": "setup", "duration": 0.0009627489926060662, "outcome": "passed"}, "call": {"name": "call", "duration": 2.037871623004321, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.154108E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005059980030637234, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):8000]", "duration": 2.7789927620178787, "run_index": 110, "setup": {"name": "setup", "duration": 0.0009325520077254623, "outcome": "passed"}, "call": {"name": "call", "duration": 2.7766395560029196, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 11 input and connect spectrum analyzer into channel 11 output. Press Enter when complete \n\nPower level (dBm): -2.081146E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000488101999508217, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0457786450133426, "run_index": 111, "setup": {"name": "setup", "duration": 0.0009482210007263348, "outcome": "passed"}, "call": {"name": "call", "duration": 2.043487229006132, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.481223E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039497400575783104, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0384854230069323, "run_index": 112, "setup": {"name": "setup", "duration": 0.0008000060042832047, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0364819200040074, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.238755E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004034909943584353, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0505669940030202, "run_index": 113, "setup": {"name": "setup", "duration": 0.0008282269991468638, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0484831979993032, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.316890E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00042734200542327017, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.029968999006087, "run_index": 114, "setup": {"name": "setup", "duration": 0.0008904349961085245, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0277450310095446, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.939113E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.000443098004325293, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):8000]", "duration": 2.0373710400162963, "run_index": 115, "setup": {"name": "setup", "duration": 0.0008077220118138939, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0353612619946944, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.441435E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039433399797417223, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):9000]", "duration": 2.03593585199269, "run_index": 116, "setup": {"name": "setup", "duration": 0.0008720420009922236, "outcome": "passed"}, "call": {"name": "call", "duration": 2.033753618990886, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.748139E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00043814899981953204, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):10000]", "duration": 2.0384847550012637, "run_index": 117, "setup": {"name": "setup", "duration": 0.0008605509938206524, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0362491230043815, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.823505E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005145300092408434, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):11000]", "duration": 2.065440271006082, "run_index": 118, "setup": {"name": "setup", "duration": 0.0009060140000656247, "outcome": "passed"}, "call": {"name": "call", "duration": 2.063240950999898, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.904517E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003872920060530305, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):12000]", "duration": 2.0274819230107823, "run_index": 119, "setup": {"name": "setup", "duration": 0.0007582260004710406, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0256103340070695, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.144627E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00035513700277078897, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):8000]", "duration": 4.0225761420006165, "run_index": 120, "setup": {"name": "setup", "duration": 0.0007205209985841066, "outcome": "passed"}, "call": {"name": "call", "duration": 4.020753771008458, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 12 input and connect spectrum analyzer into channel 12 output. Press Enter when complete \n\nPower level (dBm): -2.061196E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00038132899499032646, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.026324344013119, "run_index": 121, "setup": {"name": "setup", "duration": 0.0008301740017486736, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0242086540092714, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.493923E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004553420003503561, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0317362410278292, "run_index": 122, "setup": {"name": "setup", "duration": 0.0008997390104923397, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029568272002507, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.221745E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00036849100433755666, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0487075339915464, "run_index": 123, "setup": {"name": "setup", "duration": 0.0008074299985310063, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0466397339914693, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.299590E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00045294000301510096, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0585190909769153, "run_index": 124, "setup": {"name": "setup", "duration": 0.0009027669875649735, "outcome": "passed"}, "call": {"name": "call", "duration": 2.056267027001013, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.984290E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004465300007723272, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):8000]", "duration": 2.0426973029971123, "run_index": 125, "setup": {"name": "setup", "duration": 0.0008878329972503707, "outcome": "passed"}, "call": {"name": "call", "duration": 2.040510926002753, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.436324E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00041071099985856563, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):9000]", "duration": 2.0589559640066, "run_index": 126, "setup": {"name": "setup", "duration": 0.000834289996419102, "outcome": "passed"}, "call": {"name": "call", "duration": 2.056796139004291, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.721407E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.000491245009470731, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):10000]", "duration": 2.0383624719979707, "run_index": 127, "setup": {"name": "setup", "duration": 0.0009797859966056421, "outcome": "passed"}, "call": {"name": "call", "duration": 2.03600662300596, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.823908E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039627699879929423, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):11000]", "duration": 2.040129130007699, "run_index": 128, "setup": {"name": "setup", "duration": 0.0008277500019175932, "outcome": "passed"}, "call": {"name": "call", "duration": 2.038027932998375, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.903264E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004456970054889098, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):12000]", "duration": 2.0500316510006087, "run_index": 129, "setup": {"name": "setup", "duration": 0.0008561949944123626, "outcome": "passed"}, "call": {"name": "call", "duration": 2.047881940001389, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.149238E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004373210103949532, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):8000]", "duration": 3.6905512980010826, "run_index": 130, "setup": {"name": "setup", "duration": 0.0008734669972909614, "outcome": "passed"}, "call": {"name": "call", "duration": 3.688354223006172, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 13 input and connect spectrum analyzer into channel 13 output. Press Enter when complete \n\nPower level (dBm): -2.030713E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004501410003285855, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0432997809984954, "run_index": 131, "setup": {"name": "setup", "duration": 0.000861120002809912, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0410749509901507, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.493927E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005025900027249008, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0287649130041245, "run_index": 132, "setup": {"name": "setup", "duration": 0.0009094800043385476, "outcome": "passed"}, "call": {"name": "call", "duration": 2.02654722299485, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.178021E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003987300005974248, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.036331887997221, "run_index": 133, "setup": {"name": "setup", "duration": 0.0007831349939806387, "outcome": "passed"}, "call": {"name": "call", "duration": 2.034302229003515, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.265499E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004633890057448298, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0530212669982575, "run_index": 134, "setup": {"name": "setup", "duration": 0.0009032579982886091, "outcome": "passed"}, "call": {"name": "call", "duration": 2.050759771009325, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.975998E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00045497999235522, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):8000]", "duration": 2.039712709010928, "run_index": 135, "setup": {"name": "setup", "duration": 0.0009253140015061945, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0373694650043035, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.439052E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004926160036120564, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):9000]", "duration": 2.026850308990106, "run_index": 136, "setup": {"name": "setup", "duration": 0.0009090719977393746, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0245020639995346, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.716907E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005301009950926527, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):10000]", "duration": 2.0580250559869455, "run_index": 137, "setup": {"name": "setup", "duration": 0.0009984939970308915, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0556046209967462, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.805051E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004234469961374998, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):11000]", "duration": 2.0321813360060332, "run_index": 138, "setup": {"name": "setup", "duration": 0.0008964080043369904, "outcome": "passed"}, "call": {"name": "call", "duration": 2.029977536003571, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.883886E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004109839937882498, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):12000]", "duration": 2.042611060998752, "run_index": 139, "setup": {"name": "setup", "duration": 0.0008622669993201271, "outcome": "passed"}, "call": {"name": "call", "duration": 2.040481739997631, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.142610E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00040478700248058885, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):8000]", "duration": 3.769758690003073, "run_index": 140, "setup": {"name": "setup", "duration": 0.000988630999927409, "outcome": "passed"}, "call": {"name": "call", "duration": 3.7673729060043115, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 14 input and connect spectrum analyzer into channel 14 output. Press Enter when complete \n\nPower level (dBm): -2.073842E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004085219989065081, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.0473800350300735, "run_index": 141, "setup": {"name": "setup", "duration": 0.0008542490104446188, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0451589970034547, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.460837E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0005125400057295337, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.0930000950029353, "run_index": 142, "setup": {"name": "setup", "duration": 0.0009297710057580844, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0907159380003577, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.178026E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.00042461499106138945, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.0450205109955277, "run_index": 143, "setup": {"name": "setup", "duration": 0.0008702589984750375, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0429147120012203, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.249483E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003652809973573312, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.027370427007554, "run_index": 144, "setup": {"name": "setup", "duration": 0.0007610460015712306, "outcome": "passed"}, "call": {"name": "call", "duration": 2.025487813996733, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.007717E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003605210076784715, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):8000]", "duration": 2.029808432998834, "run_index": 145, "setup": {"name": "setup", "duration": 0.0007914809975773096, "outcome": "passed"}, "call": {"name": "call", "duration": 2.027861643000506, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.441287E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.000363828003173694, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):9000]", "duration": 2.0454005579813384, "run_index": 146, "setup": {"name": "setup", "duration": 0.0007423389906762168, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0434970689966576, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.714533E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.000418811003328301, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):10000]", "duration": 2.0296606170159066, "run_index": 147, "setup": {"name": "setup", "duration": 0.0007546300039393827, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0277496030030306, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.828233E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00040175400499720126, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):11000]", "duration": 2.029656200989848, "run_index": 148, "setup": {"name": "setup", "duration": 0.0008077999955276027, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0275443010032177, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.890904E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004962999955751002, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):12000]", "duration": 2.043586382002104, "run_index": 149, "setup": {"name": "setup", "duration": 0.0009145619987975806, "outcome": "passed"}, "call": {"name": "call", "duration": 2.041319552998175, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.169797E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00043770500633399934, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):8000]", "duration": 3.108400736018666, "run_index": 150, "setup": {"name": "setup", "duration": 0.0008317190076922998, "outcome": "passed"}, "call": {"name": "call", "duration": 3.1063749020104297, "outcome": "passed", "stdout": "\n\nConnect signal generator into channel 15 input and connect spectrum analyzer into channel 15 output. Press Enter when complete \n\nPower level (dBm): -2.025265E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003623959928518161, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):9000]", "duration": 2.075078621011926, "run_index": 151, "setup": {"name": "setup", "duration": 0.0008397170022362843, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0729598960024305, "outcome": "passed", "stdout": "\n\nPower level (dBm): -2.458950E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004392910050228238, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):10000]", "duration": 2.1301583319873316, "run_index": 152, "setup": {"name": "setup", "duration": 0.0008615149999968708, "outcome": "passed"}, "call": {"name": "call", "duration": 2.1279783549980493, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.169952E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004569469892885536, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):11000]", "duration": 2.030954613990616, "run_index": 153, "setup": {"name": "setup", "duration": 0.0008939859981182963, "outcome": "passed"}, "call": {"name": "call", "duration": 2.028724578995025, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.302641E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004420629993546754, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):12000]", "duration": 2.0292795359855518, "run_index": 154, "setup": {"name": "setup", "duration": 0.0008851019956637174, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0270674799976405, "outcome": "passed", "stdout": "\n\nPower level (dBm): -3.913373E+00\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004418519965838641, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):8000]", "duration": 2.038808949000668, "run_index": 155, "setup": {"name": "setup", "duration": 0.0009371320047648624, "outcome": "passed"}, "call": {"name": "call", "duration": 2.036458105998463, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.435290E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00047657899267505854, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):9000]", "duration": 2.0323631500214105, "run_index": 156, "setup": {"name": "setup", "duration": 0.0009159330074908212, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0301749130012468, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.737288E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003563710051821545, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):10000]", "duration": 2.0916276650241343, "run_index": 157, "setup": {"name": "setup", "duration": 0.0007561530073871836, "outcome": "passed"}, "call": {"name": "call", "duration": 2.089724377001403, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.807356E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0003909820079570636, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):11000]", "duration": 2.0856251980003435, "run_index": 158, "setup": {"name": "setup", "duration": 0.0007936430047266185, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0835964629950467, "outcome": "passed", "stdout": "\n\nPower level (dBm): -4.881397E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0004414489958435297, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):12000]", "duration": 2.0307278010004666, "run_index": 159, "setup": {"name": "setup", "duration": 0.0009181100031128153, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0284938830009196, "outcome": "passed", "stdout": "\n\nPower level (dBm): -5.157153E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00039769799332134426, "outcome": "passed"}, "outcome": "passed"}, {"name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):8000]", "duration": 3.4665469129686244, "run_index": 160, "setup": {"name": "setup", "duration": 0.0006285869894782081, "outcome": "passed"}, "call": {"name": "call", "duration": 3.4651575600000797, "outcome": "failed", "longrepr": "frequency = 8000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_tx_combined_out(frequency):\n \n # Combined Tx Out test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete')\n _set_SMA_inout()\n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.57162)\nE + where -66.57162 = float('-6.657162E+01\\n')\n\ntest/test_triton_cal.py:170: AssertionError", "stdout": "\n\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete\n\nPower level (dBm): -6.657162E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.000132178989588283, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):9000]", "duration": 2.0238845530257095, "run_index": 161, "setup": {"name": "setup", "duration": 0.00017327400564681739, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0233300180116203, "outcome": "failed", "longrepr": "frequency = 9000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_tx_combined_out(frequency):\n \n # Combined Tx Out test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete')\n _set_SMA_inout()\n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.87953)\nE + where -66.87953 = float('-6.687953E+01\\n')\n\ntest/test_triton_cal.py:170: AssertionError", "stdout": "\n\nPower level (dBm): -6.687953E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00020798700279556215, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):10000]", "duration": 2.1022440740198363, "run_index": 162, "setup": {"name": "setup", "duration": 0.00037721901026088744, "outcome": "passed"}, "call": {"name": "call", "duration": 2.101385450005182, "outcome": "failed", "longrepr": "frequency = 10000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_tx_combined_out(frequency):\n \n # Combined Tx Out test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete')\n _set_SMA_inout()\n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.91444)\nE + where -66.91444 = float('-6.691444E+01\\n')\n\ntest/test_triton_cal.py:170: AssertionError", "stdout": "\n\nPower level (dBm): -6.691444E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00010418599413242191, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):11000]", "duration": 2.0492590089997975, "run_index": 163, "setup": {"name": "setup", "duration": 0.00017487599689047784, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0487972359987907, "outcome": "failed", "longrepr": "frequency = 11000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_tx_combined_out(frequency):\n \n # Combined Tx Out test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete')\n _set_SMA_inout()\n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.07944)\nE + where -66.07944 = float('-6.607944E+01\\n')\n\ntest/test_triton_cal.py:170: AssertionError", "stdout": "\n\nPower level (dBm): -6.607944E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00011202100722584873, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):12000]", "duration": 2.0506505509692943, "run_index": 164, "setup": {"name": "setup", "duration": 0.00018243798695039004, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0501771149865817, "outcome": "failed", "longrepr": "frequency = 12000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_tx_combined_out(frequency):\n \n # Combined Tx Out test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete')\n _set_SMA_inout()\n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -65 > -40\nE + where -65 = int(-65.81541)\nE + where -65.81541 = float('-6.581541E+01\\n')\n\ntest/test_triton_cal.py:170: AssertionError", "stdout": "\n\nPower level (dBm): -6.581541E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00010856000881176442, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):8000]", "duration": 5.881846339980257, "run_index": 165, "setup": {"name": "setup", "duration": 0.0001779509912012145, "outcome": "passed"}, "call": {"name": "call", "duration": 5.881272055994486, "outcome": "failed", "longrepr": "frequency = 8000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_rx_combined_in(frequency):\n \n # Combined Rx In test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete')\n _set_SMA_inout()\n \n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.63196)\nE + where -66.63196 = float('-6.663196E+01\\n')\n\ntest/test_triton_cal.py:203: AssertionError", "stdout": "\n\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete\n\nPower level (dBm): -6.663196E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.0002183820033678785, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):9000]", "duration": 2.029691258998355, "run_index": 166, "setup": {"name": "setup", "duration": 0.00035358300374355167, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0287605109915603, "outcome": "failed", "longrepr": "frequency = 9000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_rx_combined_in(frequency):\n \n # Combined Rx In test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete')\n _set_SMA_inout()\n \n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -66 > -40\nE + where -66 = int(-66.46659)\nE + where -66.46659 = float('-6.646659E+01\\n')\n\ntest/test_triton_cal.py:203: AssertionError", "stdout": "\n\nPower level (dBm): -6.646659E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00022358199930749834, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):10000]", "duration": 2.0411025069915922, "run_index": 167, "setup": {"name": "setup", "duration": 0.0003759789979085326, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0402402600011555, "outcome": "failed", "longrepr": "frequency = 10000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_rx_combined_in(frequency):\n \n # Combined Rx In test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete')\n _set_SMA_inout()\n \n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -65 > -40\nE + where -65 = int(-65.18957)\nE + where -65.18957 = float('-6.518957E+01\\n')\n\ntest/test_triton_cal.py:203: AssertionError", "stdout": "\n\nPower level (dBm): -6.518957E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.00011028899461962283, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):11000]", "duration": 2.044696981974994, "run_index": 168, "setup": {"name": "setup", "duration": 0.0001732729870127514, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0442535689944634, "outcome": "failed", "longrepr": "frequency = 11000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_rx_combined_in(frequency):\n \n # Combined Rx In test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete')\n _set_SMA_inout()\n \n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -64 > -40\nE + where -64 = int(-64.92614)\nE + where -64.92614 = float('-6.492614E+01\\n')\n\ntest/test_triton_cal.py:203: AssertionError", "stdout": "\n\nPower level (dBm): -6.492614E+01\n\n"}, "teardown": {"name": "teardown", "duration": 9.68670065049082e-05, "outcome": "passed"}, "outcome": "failed"}, {"name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):12000]", "duration": 2.0371998330083443, "run_index": 169, "setup": {"name": "setup", "duration": 0.0001757200079737231, "outcome": "passed"}, "call": {"name": "call", "duration": 2.0310152059973916, "outcome": "failed", "longrepr": "frequency = 12000\n\n @pytest.mark.parametrize(\"frequency\", [8000, 9000, 10000, 11000, 12000], ids=lambda x: f\"Frequency (MHz):{x}\")\n def test_rx_combined_in(frequency):\n \n # Combined Rx In test\n if (frequency == 8000):\n input('\\n\\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete')\n _set_SMA_inout()\n \n \n # Set up signal generator\n _set_frequency_MHz(frequency, HMCT2220) # Set frequency of sig gen\n _set_power_level_dBm(15, HMCT2220) # Set sig gen power level to 10 dBm\n _set_output('ON', HMCT2220) # Set sig gen output on\n time.sleep(1) # Buffer time of 1 second\n \n # Set up spectrum analyzer\n _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox\n _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB\n _set_center_freq_MHz(10000, FieldFox) # Set center frequency to 10 GHz\n _set_span_MHz(20000, FieldFox) # Set span to 20 GHz\n _set_res_bandwidth(1, FieldFox) # Sets resolution bandwidth to 1 MHz\n time.sleep(1) # Buffer time of 1 second\n _set_marker_to_peak(1, FieldFox) # Sets marker 1 to peak\n peak_power = _get_peak_power_level(1, FieldFox) # Gets the power at marker 1\n print(\"\\n\\nPower level (dBm): {}\".format(peak_power))\n \n> assert int(float(peak_power)) > -40\nE AssertionError: assert -65 > -40\nE + where -65 = int(-65.52882)\nE + where -65.52882 = float('-6.552882E+01\\n')\n\ntest/test_triton_cal.py:203: AssertionError", "stdout": "\n\nPower level (dBm): -6.552882E+01\n\n"}, "teardown": {"name": "teardown", "duration": 0.005833186995005235, "outcome": "passed"}, "outcome": "failed"}], "summary": {"passed": 160, "failed": 10, "num_tests": 170, "duration": 409.0013370513916}, "created_at": "2024-04-23 15:45:50.321681"}}
\ No newline at end of file
diff --git a/triton_cal_plots.py b/triton_cal_plots.py
index f04f89df9..53afa0f08 100644
--- a/triton_cal_plots.py
+++ b/triton_cal_plots.py
@@ -201,8 +201,9 @@
plt.ylabel('Magnitude (dBm)')
plt.title('Calibration Board Output Magnitude vs Frequency for Adjacent Loopback State (+15 dBm Input)')
-# Add legend
-plt.legend()
+# # Add legend
+# plt.legend()
+plt.savefig('adjacent_loopback_by_channel.png')
# Create a new plot with adjacent loopback data
plt.figure()
@@ -231,9 +232,10 @@
plt.ylabel('Magnitude (dBm)')
plt.title('Calibration Board Output Magnitude vs Frequency for Combined Loopback State (+15 dBm Input)')
-# Add legend
-plt.legend()
+# # Add legend
+# plt.legend()
+plt.savefig('combined_loopback_by_channel.png')
# Show the plots
plt.show()