diff --git a/.gitignore b/.gitignore
index dee43f70b..9cc9c2668 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,3 +105,146 @@ 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
+testResults/SN10/testResultsSN10.html
+testResults/SN10/SFDR_Test_SN10.png
+testResults/SN10/Loopback_Sweep_SN10.png
+testResults/SN10/Filter_Test_2_SN10.png
+testResults/SN10/Filter_Test_1_SN10.png
+testResults/SN10/DSA_Test_SN10.png
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/dummy_test.html b/dummy_test.html
deleted file mode 100644
index 025727616..000000000
--- a/dummy_test.html
+++ /dev/null
@@ -1,292 +0,0 @@
-
-
-
-
- pyadi-iio Test Report
-
-
-
- pyadi-iio Test Report
- Report generated on 10-May-2024 at 11:56:32 by pytest-html v3.2.0
- Summary
- This is a custom report summary
- 2 tests ran in 0.05 seconds.
- (Un)check the boxes to filter the results.
2 passed, 0 skipped, 0 failed, 0 errors, 0 expected failures, 0 unexpected passes<div>random_test</div>
- <img src='C:/ADI/Triton/pyadi-iio/adjacent.png'>
- <img src='C:/ADI/Triton/pyadi-iio/combined.png'>
- Results
-
-
-
- Result |
- Test |
- Duration |
- Links |
-
- No results found. Try to check the filters |
-
-
- Passed |
- test/test_dummy.py::test_history |
- 0.00 |
- |
-
-
-
-
- Passed |
- test/test_dummy.py::test_history2 |
- 0.00 |
- |
-
-
\ No newline at end of file
diff --git a/here.html b/here.html
deleted file mode 100644
index 90c7f74f5..000000000
--- a/here.html
+++ /dev/null
@@ -1,506 +0,0 @@
-
-
-
-
- pyadi-iio Test Report
-
-
-
- pyadi-iio Test Report
- Report generated on 27-Feb-2024 at 14:49:16 by pytest-html v3.2.0
- Summary
- 17 tests ran in 175.48 seconds.
- (Un)check the boxes to filter the results.
15 passed, 0 skipped, 2 failed, 0 errors, 0 expected failures, 0 unexpected passes
- Results
-
-
-
- Result |
- Test |
- Duration |
- Links |
-
- No results found. Try to check the filters |
-
-
- Failed |
- test/test_triton.py::test_current_postboot |
- 13.20 |
- |
-
-
-
-
- Failed |
- test/test_triton.py::test_voltage_postboot |
- 12.02 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_iio_attr |
- 0.14 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set0-50000000-0.9--25-5-15-channel:0-adi.Triton] |
- 10.64 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set0-50000000-0.9--25-5-15-channel:1-adi.Triton] |
- 9.67 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set1-50000000-0.9--25-5-15-channel:0-adi.Triton] |
- 9.70 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set1-50000000-0.9--25-5-15-channel:1-adi.Triton] |
- 9.77 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set2-50000000-0.9--25-5-15-channel:0-adi.Triton] |
- 9.59 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set2-50000000-0.9--25-5-15-channel:1-adi.Triton] |
- 9.72 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set3-50000000-0.9--20-5-15-channel:0-adi.Triton] |
- 9.59 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set3-50000000-0.9--20-5-15-channel:1-adi.Triton] |
- 9.68 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set4-50000000-0.9--30-11-9-channel:0-adi.Triton] |
- 9.63 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set4-50000000-0.9--30-11-9-channel:1-adi.Triton] |
- 9.63 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set5-50000000-0.9--50-5-15-channel:0-adi.Triton] |
- 9.75 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_dds_loopback[param_set5-50000000-0.9--50-5-15-channel:1-adi.Triton] |
- 9.68 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_sfdr[60-param_set0-5-15-channel:0-adi.Triton] |
- 15.97 |
- |
-
-
-
-
- Passed |
- test/test_triton.py::test_Triton_sfdr[60-param_set0-5-15-channel:1-adi.Triton] |
- 16.04 |
- |
-
-
\ No newline at end of file
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/report.html b/report.html
deleted file mode 100644
index 267582e19..000000000
--- a/report.html
+++ /dev/null
@@ -1,770 +0,0 @@
-
-
-
-
- pyadi-iio Test Report
-
-
-
- pyadi-iio Test Report
- Report generated on 01-Feb-2024 at 13:36:31 by pytest-html
- v4.1.1
-
-
-
-
-
- |
- |
-
-
-
-
-
- No results found. Check the filters.
- |
-
-
-
-
-
-
-
-
-
-
-
-
Summary
-
-
-
7 tests took 00:00:60.
-
(Un)check the boxes to filter the results.
-
-
-
-
-
-
-
-
-
-
-
-
- Result |
- Test |
- Duration |
- Links |
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test/conftest.py b/test/conftest.py
index caf160fd9..9e57bf92e 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -13,8 +13,8 @@
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, pytest_html_results_table_header, generate_header_with_image, image_to_base64
-from test.html import pytest_runtest_makereport, pytest_html_results_summary, pytest_html_report_title
+from test.html import pytest_html_report_title, pytest_html_results_summary, pytest_runtest_makereport
+
import adi
import numpy as np
import pytest
diff --git a/test/dma_tests.py b/test/dma_tests.py
index 501655f08..0ae57d500 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 a0bcfb690..f6fec76c3 100644
--- a/test/html.py
+++ b/test/html.py
@@ -1,35 +1,65 @@
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, SN:{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")])
-
+ # 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 = "adjacent.png"
- image2_loc = "combined.png"
- image = html.img(src=image_loc, style="width: 300px;")
- image2 = html.img(src=image2_loc, style="width: 300px;")
- prefix.extend([image])
- prefix.extend([image2])
+ image_loc = f'Loopback_Sweep_SN{serial_number}.png'
+ image2_loc = f'Filter_Test_1_SN{serial_number}.png'
+ image3_loc = f'Filter_Test_2_SN{serial_number}.png'
+ image4_loc = f'DSA_Test_SN{serial_number}.png'
+ image5_loc = f'SFDR_Test_SN{serial_number}.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)
+ # 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))
+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()])
+
print(summary)
- print('test123')
- summary.extend([r'random_test
'])
- summary.append(html.html(""))
- summary.append(html.html(""))
for item in summary:
print(type(item))
@@ -47,7 +77,5 @@ def pytest_runtest_makereport(item, call):
extra.append(pytest_html.extras.html(pytest.data_log["html"]))
report.extra = extra
if hasattr(pytest, "data"):
- # extra.append(pytest_html.extras.html(pytest.data["html"]))
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..1ef6b8354 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,24 @@
import pyvisa
import time
import test.instruments as instruments
-# from scpi import signal
+from scipy import signal
+import logging
+import os
+
+
+logging.getLogger('PIL.PngImagePlugin').setLevel(logging.WARNING)
+logging.getLogger('matplotlib.font_manager').setLevel(logging.WARNING)
+logging.getLogger('matplotlib').setLevel(logging.INFO)
+
hardware = ["Triton"]
classname = "adi.Triton"
+iio_uri = "ip:192.168.2.1"
+
+
##########################################
# Dictionaries for Tests
@@ -104,46 +116,62 @@
##########################################
# 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')
+# @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')
- 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?"))
+# def test_current_preboot():
+# rm = pyvisa.ResourceManager()
+# x = rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
- current_value = float(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?"))
- assert current_value > 2
- assert current_value < 4.5
+# # error_message = inst.query('SYSTem:ERRor?')
+# # print("Error Message:", error_message)
-def test_voltage_preboot():
- rm = pyvisa.ResourceManager()
- rm.list_resources()
- inst = rm.open_resource('TCPIP::192.168.10.1::inst0::INSTR')
+# current_value = float(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
- print(inst.query("MEASure:VOLT?"))
+# assert current_value > 2
+# assert current_value < 4.5
- voltage_value = float(inst.query("MEASure:VOLT?"))
+# def test_voltage_preboot():
+# rm = pyvisa.ResourceManager()
+# rm.list_resources()
+# inst = rm.open_resource('TCPIP::192.168.3.6::INSTR')
- 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')
+# print(inst.query("MEASure:VOLT?"))
+# voltage_value = float(inst.query("MEASure:VOLT?"))
-# ##########################################
-# # Automated bootup
-# ##########################################
+# assert voltage_value > 11.8
+# assert voltage_value < 12.2
-@pytest.fixture(scope="module")
+
+# # ##########################################
+# # # Automated bootup
+# # ##########################################
+
+# @pytest.fixture(scope="module", autouse=True)
+# # @pytest.fixture(scope="module")
def test_bootup():
import os
import subprocess
@@ -151,11 +179,10 @@ def test_bootup():
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"
+ vivado_lab_executable = r"/tools/Xilinx/Vivado_Lab/2023.2/bin/xsdb"
# Open Xilinx xsdb tool and
# source run.tcl
@@ -179,7 +206,7 @@ def test_bootup():
print(command)
# Run the command
- # subprocess.run(command)
+ subprocess.run(command)
results = subprocess.run(command)
time.sleep(140) ## Wait for bootup
@@ -188,41 +215,49 @@ def test_bootup():
-# #########################################
-# # 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.3.6::INSTR')
-def test_current_postboot():
- 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
+# # inst.write('OUTPut ON')
+# 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
- 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.3.6::INSTR')
-def test_voltage_postboot():
- 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
+# # inst.write('OUTPut ON')
+# 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
- 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 +269,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
+
+directory = f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}'
+os.makedirs(directory)
+
+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 +298,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 +313,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(f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}/Loopback_Sweep_SN{serial_number}.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(f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}/Filter_Test_1_SN{serial_number}.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(f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}/Filter_Test_2_SN{serial_number}.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(f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}/DSA_Test_SN{serial_number}.png')
+
+
+ assert 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(f'C:/ADI/Triton/pyadi-iio/testResults/SN{serial_number}/SFDR_Test_SN{serial_number}.png')
diff --git a/test/test_triton_cal.py b/test/test_triton_cal.py
index 97f775f90..5d51bd947 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/testResults/SN10/assets/style.css b/testResults/SN10/assets/style.css
new file mode 100644
index 000000000..3edac88ee
--- /dev/null
+++ b/testResults/SN10/assets/style.css
@@ -0,0 +1,186 @@
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 12px;
+ /* do not increase min-width as some may use split screens */
+ min-width: 800px;
+ color: #999;
+}
+
+h1 {
+ font-size: 24px;
+ color: black;
+}
+
+h2 {
+ font-size: 16px;
+ color: black;
+}
+
+p {
+ color: black;
+}
+
+a {
+ color: #999;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+/******************************
+ * SUMMARY INFORMATION
+ ******************************/
+#environment td {
+ padding: 5px;
+ border: 1px solid #E6E6E6;
+}
+#environment tr:nth-child(odd) {
+ background-color: #f6f6f6;
+}
+
+/******************************
+ * TEST RESULT COLORS
+ ******************************/
+span.passed,
+.passed .col-result {
+ color: green;
+}
+
+span.skipped,
+span.xfailed,
+span.rerun,
+.skipped .col-result,
+.xfailed .col-result,
+.rerun .col-result {
+ color: orange;
+}
+
+span.error,
+span.failed,
+span.xpassed,
+.error .col-result,
+.failed .col-result,
+.xpassed .col-result {
+ color: red;
+}
+
+/******************************
+ * RESULTS TABLE
+ *
+ * 1. Table Layout
+ * 2. Extra
+ * 3. Sorting items
+ *
+ ******************************/
+/*------------------
+ * 1. Table Layout
+ *------------------*/
+#results-table {
+ border: 1px solid #e6e6e6;
+ color: #999;
+ font-size: 12px;
+ width: 100%;
+}
+#results-table th,
+#results-table td {
+ padding: 5px;
+ border: 1px solid #E6E6E6;
+ text-align: left;
+}
+#results-table th {
+ font-weight: bold;
+}
+
+/*------------------
+ * 2. Extra
+ *------------------*/
+.log {
+ background-color: #e6e6e6;
+ border: 1px solid #e6e6e6;
+ color: black;
+ display: block;
+ font-family: "Courier New", Courier, monospace;
+ height: 230px;
+ overflow-y: scroll;
+ padding: 5px;
+ white-space: pre-wrap;
+}
+.log:only-child {
+ height: inherit;
+}
+
+div.image {
+ border: 1px solid #e6e6e6;
+ float: right;
+ height: 240px;
+ margin-left: 5px;
+ overflow: hidden;
+ width: 320px;
+}
+div.image img {
+ width: 320px;
+}
+
+div.video {
+ border: 1px solid #e6e6e6;
+ float: right;
+ height: 240px;
+ margin-left: 5px;
+ overflow: hidden;
+ width: 320px;
+}
+div.video video {
+ overflow: hidden;
+ width: 320px;
+ height: 240px;
+}
+
+.collapsed {
+ display: none;
+}
+
+.expander::after {
+ content: " (show details)";
+ color: #BBB;
+ font-style: italic;
+ cursor: pointer;
+}
+
+.collapser::after {
+ content: " (hide details)";
+ color: #BBB;
+ font-style: italic;
+ cursor: pointer;
+}
+
+/*------------------
+ * 3. Sorting items
+ *------------------*/
+.sortable {
+ cursor: pointer;
+}
+
+.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;
+}
diff --git a/testResults/SN10/testResultsSN10.json b/testResults/SN10/testResultsSN10.json
new file mode 100644
index 000000000..9eb2ed332
--- /dev/null
+++ b/testResults/SN10/testResultsSN10.json
@@ -0,0 +1 @@
+{"report": {"environment": {"Python": "3.11.5", "Platform": "Windows-10-10.0.22631-SP0"}, "tests": [{"name": "test/test_triton.py::test_bootup", "duration": 0.007089800012181513, "run_index": 0, "setup": {"name": "setup", "duration": 0.0018676000036066398, "outcome": "passed"}, "call": {"name": "call", "duration": 0.002860400010831654, "outcome": "failed", "longrepr": "def test_bootup():\n import os\n import subprocess\n \n dir_path = os.path.dirname(os.path.realpath(__file__))\n print(dir_path)\n boot_path = os.path.join(dir_path, 'vcu118_quad_ad9084_2023-09-28')\n tcl_script_path = os.path.join(boot_path, 'run_me.tcl')\n \n # Path to Vivado Lab executable\n vivado_lab_executable = r\"/tools/Xilinx/Vivado_Lab/2023.2/bin/xsdb\"\n \n # Open Xilinx xsdb tool and\n # source run.tcl\n bitstream = os.path.join(boot_path, \"system_top_26p4.bit\")\n strip = os.path.join(boot_path, \"simpleImage_26p4.strip\" )\n script = f\"\"\"\n connect\n fpga -f \"{bitstream.replace(os.sep, '/')}\"\n after 1000\n target 3\n dow \"{strip.replace(os.sep, '/')}\"\n after 1000\n con\n disconnect\n \"\"\"\n with open(tcl_script_path, 'w') as f:\n f.write(script)\n \n # Command to run Vivado Lab with the Tcl script\n command = [vivado_lab_executable, '-eval', 'source', tcl_script_path]\n print(command)\n \n # Run the command\n> subprocess.run(command)\n\ntest\\test_triton.py:209: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nC:\\Users\\JChambli\\.pyenv\\pyenv-win\\versions\\3.11.5\\Lib\\subprocess.py:548: in run\n with Popen(*popenargs, **kwargs) as process:\nC:\\Users\\JChambli\\.pyenv\\pyenv-win\\versions\\3.11.5\\Lib\\subprocess.py:1026: in __init__\n self._execute_child(args, executable, preexec_fn, close_fds,\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = '/tools/Xilinx/Vivado_Lab/2023.2/bin/xsdb -eval source C:\\\\ADI\\\\Triton\\\\pyadi-iio\\\\test\\\\vcu118_quad_ad9084_2023-09-28\\\\run_me.tcl', executable = None, preexec_fn = None, close_fds = True, pass_fds = ()\ncwd = None, env = None, startupinfo = , creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1\nerrwrite = -1, unused_restore_signals = True, unused_gid = None, unused_gids = None, unused_uid = None, unused_umask = -1, unused_start_new_session = False, unused_process_group = -1\n\n def _execute_child(self, args, executable, preexec_fn, close_fds,\n pass_fds, cwd, env,\n startupinfo, creationflags, shell,\n p2cread, p2cwrite,\n c2pread, c2pwrite,\n errread, errwrite,\n unused_restore_signals,\n unused_gid, unused_gids, unused_uid,\n unused_umask,\n unused_start_new_session, unused_process_group):\n \"\"\"Execute program (MS Windows version)\"\"\"\n \n assert not pass_fds, \"pass_fds not supported on Windows.\"\n \n if isinstance(args, str):\n pass\n elif isinstance(args, bytes):\n if shell:\n raise TypeError('bytes args is not allowed on Windows')\n args = list2cmdline([args])\n elif isinstance(args, os.PathLike):\n if shell:\n raise TypeError('path-like args is not allowed when '\n 'shell is true')\n args = list2cmdline([args])\n else:\n args = list2cmdline(args)\n \n if executable is not None:\n executable = os.fsdecode(executable)\n \n # Process startup details\n if startupinfo is None:\n startupinfo = STARTUPINFO()\n else:\n # bpo-34044: Copy STARTUPINFO since it is modified above,\n # so the caller can reuse it multiple times.\n startupinfo = startupinfo.copy()\n \n use_std_handles = -1 not in (p2cread, c2pwrite, errwrite)\n if use_std_handles:\n startupinfo.dwFlags |= _winapi.STARTF_USESTDHANDLES\n startupinfo.hStdInput = p2cread\n startupinfo.hStdOutput = c2pwrite\n startupinfo.hStdError = errwrite\n \n attribute_list = startupinfo.lpAttributeList\n have_handle_list = bool(attribute_list and\n \"handle_list\" in attribute_list and\n attribute_list[\"handle_list\"])\n \n # If we were given an handle_list or need to create one\n if have_handle_list or (use_std_handles and close_fds):\n if attribute_list is None:\n attribute_list = startupinfo.lpAttributeList = {}\n handle_list = attribute_list[\"handle_list\"] = \\\n list(attribute_list.get(\"handle_list\", []))\n \n if use_std_handles:\n handle_list += [int(p2cread), int(c2pwrite), int(errwrite)]\n \n handle_list[:] = self._filter_handle_list(handle_list)\n \n if handle_list:\n if not close_fds:\n warnings.warn(\"startupinfo.lpAttributeList['handle_list'] \"\n \"overriding close_fds\", RuntimeWarning)\n \n # When using the handle_list we always request to inherit\n # handles but the only handles that will be inherited are\n # the ones in the handle_list\n close_fds = False\n \n if shell:\n startupinfo.dwFlags |= _winapi.STARTF_USESHOWWINDOW\n startupinfo.wShowWindow = _winapi.SW_HIDE\n if not executable:\n # gh-101283: without a fully-qualified path, before Windows\n # checks the system directories, it first looks in the\n # application directory, and also the current directory if\n # NeedCurrentDirectoryForExePathW(ExeName) is true, so try\n # to avoid executing unqualified \"cmd.exe\".\n comspec = os.environ.get('ComSpec')\n if not comspec:\n system_root = os.environ.get('SystemRoot', '')\n comspec = os.path.join(system_root, 'System32', 'cmd.exe')\n if not os.path.isabs(comspec):\n raise FileNotFoundError('shell not found: neither %ComSpec% nor %SystemRoot% is set')\n if os.path.isabs(comspec):\n executable = comspec\n else:\n comspec = executable\n \n args = '{} /c \"{}\"'.format (comspec, args)\n \n if cwd is not None:\n cwd = os.fsdecode(cwd)\n \n sys.audit(\"subprocess.Popen\", executable, args, cwd, env)\n \n # Start the process\n try:\n> hp, ht, pid, tid = _winapi.CreateProcess(executable, args,\n # no special security\n None, None,\n int(not close_fds),\n creationflags,\n env,\n cwd,\n startupinfo)\nE FileNotFoundError: [WinError 2] The system cannot find the file specified\n\nC:\\Users\\JChambli\\.pyenv\\pyenv-win\\versions\\3.11.5\\Lib\\subprocess.py:1538: FileNotFoundError"}, "teardown": {"name": "teardown", "duration": 0.0004941999941365793, "outcome": "passed"}, "outcome": "failed"}], "summary": {"failed": 1, "num_tests": 1, "duration": 0.3990015983581543}, "created_at": "2024-07-23 10:06:52.262488"}}
\ No newline at end of file
diff --git a/test_triton_cal.json b/test_triton_cal.json
index 382743721..b8937e5a1 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": 27.5693725000001,
- "run_index": 0,
- "setup": {
- "name": "setup",
- "duration": 0.0013952999997854931,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 27.56615950000014,
- "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.382866E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00042240000038873404,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0284425000008923,
- "run_index": 1,
- "setup": {
- "name": "setup",
- "duration": 0.0005172000001039123,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0270393999999214,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.662026E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036870000076305587,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.019431099997746,
- "run_index": 2,
- "setup": {
- "name": "setup",
- "duration": 0.0005514999993465608,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.01796800000011,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.536682E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000360099998943042,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.041431300000113,
- "run_index": 3,
- "setup": {
- "name": "setup",
- "duration": 0.00045700000009674113,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.040135100000043,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.419151E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00038219999987632036,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0368254000004526,
- "run_index": 4,
- "setup": {
- "name": "setup",
- "duration": 0.0007628000003023772,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0349375999994663,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.877325E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036220000038156286,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0256485999998404,
- "run_index": 5,
- "setup": {
- "name": "setup",
- "duration": 0.0004515000000537839,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0243845000004512,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.947359E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036109999928157777,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.019422500003202,
- "run_index": 6,
- "setup": {
- "name": "setup",
- "duration": 0.0004971000016666949,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.018092500000421,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -6.108541E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003357999994477723,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.017935799996849,
- "run_index": 7,
- "setup": {
- "name": "setup",
- "duration": 0.0004890999989584088,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0166052999993553,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.890023E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035229999957664404,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0256578999978956,
- "run_index": 8,
- "setup": {
- "name": "setup",
- "duration": 0.0006780999992770376,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0239340999996784,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.993606E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003675999996630708,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0312381999992795,
- "run_index": 9,
- "setup": {
- "name": "setup",
- "duration": 0.0004487999995035352,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.030011099999683,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.966877E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032950000058917794,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 11.754367500001536,
- "run_index": 10,
- "setup": {
- "name": "setup",
- "duration": 0.0004776999994646758,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 11.75305500000104,
- "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.165264E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035710000156541355,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0471488000002864,
- "run_index": 11,
- "setup": {
- "name": "setup",
- "duration": 0.0004492999996728031,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0457378000010067,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.426431E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005123999999341322,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0184143999995285,
- "run_index": 12,
- "setup": {
- "name": "setup",
- "duration": 0.00047649999942223076,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0171293999992486,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.246375E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033200000143551733,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0333687999973336,
- "run_index": 13,
- "setup": {
- "name": "setup",
- "duration": 0.0004768999988300493,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.032086999999592,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.487059E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003280000000813743,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0337129999988974,
- "run_index": 14,
- "setup": {
- "name": "setup",
- "duration": 0.00047110000014072284,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0324217999987013,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.120660E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034899999991466757,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.035396799999944,
- "run_index": 15,
- "setup": {
- "name": "setup",
- "duration": 0.0004982999998901505,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.033733399999619,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.406171E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006668000005447539,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0427099999997154,
- "run_index": 16,
- "setup": {
- "name": "setup",
- "duration": 0.0004720999986602692,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.041222400001061,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.772047E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005434000013337936,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.026191300001301,
- "run_index": 17,
- "setup": {
- "name": "setup",
- "duration": 0.0004516000008152332,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0249585999990813,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.759569E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032950000058917794,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0393550999979198,
- "run_index": 18,
- "setup": {
- "name": "setup",
- "duration": 0.00043509999886737205,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.038145299999087,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.014235E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033960000109800603,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0269105000006675,
- "run_index": 19,
- "setup": {
- "name": "setup",
- "duration": 0.00047730000005685724,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0256171000000904,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.198330E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033880000046337955,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 9.261315200001263,
- "run_index": 20,
- "setup": {
- "name": "setup",
- "duration": 0.0005318000003171619,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 9.259907999999996,
- "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.158925E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034360000063315965,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.034061299998939,
- "run_index": 21,
- "setup": {
- "name": "setup",
- "duration": 0.0005153999991307501,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0322890000006737,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.337748E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007415000000037253,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0224847000008594,
- "run_index": 22,
- "setup": {
- "name": "setup",
- "duration": 0.0005839999994350364,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0208317000015086,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.237141E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004850000004807953,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0222072999986267,
- "run_index": 23,
- "setup": {
- "name": "setup",
- "duration": 0.0004988999990018783,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.020890200001304,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.320259E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003192999993189005,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0174108000010165,
- "run_index": 24,
- "setup": {
- "name": "setup",
- "duration": 0.0004415000003064051,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016191599999729,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.806279E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003362000006745802,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.018010300002061,
- "run_index": 25,
- "setup": {
- "name": "setup",
- "duration": 0.0005438000007416122,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016595499999312,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.519575E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032720000126573723,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.01735689999623,
- "run_index": 26,
- "setup": {
- "name": "setup",
- "duration": 0.00044129999878350645,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0161123999987467,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.660887E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036189999991620425,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.025028200001543,
- "run_index": 27,
- "setup": {
- "name": "setup",
- "duration": 0.0004960000005667098,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0236941000002844,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.870622E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000342100000125356,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0280501000015647,
- "run_index": 28,
- "setup": {
- "name": "setup",
- "duration": 0.00044239999988349155,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0268179000013333,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.948697E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000347400000464404,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0492822999985947,
- "run_index": 29,
- "setup": {
- "name": "setup",
- "duration": 0.00044799999886890873,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0480079999997542,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.156590E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003783000011026161,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 18.156763899998623,
- "run_index": 30,
- "setup": {
- "name": "setup",
- "duration": 0.00043000000005122274,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 18.15555569999924,
- "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): -1.900280E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003481999992800411,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0778590999998414,
- "run_index": 31,
- "setup": {
- "name": "setup",
- "duration": 0.000920300000871066,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0756586999996216,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.049615E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003597999984776834,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.05859319999945,
- "run_index": 32,
- "setup": {
- "name": "setup",
- "duration": 0.0004714999995485414,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0573079000005237,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.978225E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003422999998292653,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0284250999993674,
- "run_index": 33,
- "setup": {
- "name": "setup",
- "duration": 0.0005244000003585825,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0270452000004298,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.213542E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003310999982204521,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0311822000003303,
- "run_index": 34,
- "setup": {
- "name": "setup",
- "duration": 0.0006345000001601875,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.029561299999841,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.674493E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003519000001688255,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0210093000005145,
- "run_index": 35,
- "setup": {
- "name": "setup",
- "duration": 0.0004576999999699183,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.019553800000722,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.485643E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005400999998528278,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0300639999986743,
- "run_index": 36,
- "setup": {
- "name": "setup",
- "duration": 0.0004386000000522472,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0284658999989915,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.641379E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007208999995782506,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0657274999994115,
- "run_index": 37,
- "setup": {
- "name": "setup",
- "duration": 0.0015193999988696305,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0623474000003625,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.851912E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034130000130971894,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0225537000005716,
- "run_index": 38,
- "setup": {
- "name": "setup",
- "duration": 0.0004828000000998145,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0212522000001627,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.935519E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003359000002092216,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0357880999981717,
- "run_index": 39,
- "setup": {
- "name": "setup",
- "duration": 0.0006482999997388106,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.034128100000089,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.147760E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003633999986050185,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 9.584094800000457,
- "run_index": 40,
- "setup": {
- "name": "setup",
- "duration": 0.0007040000000415603,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 9.581972899999528,
- "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.018319E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007139000008464791,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.041410099996938,
- "run_index": 41,
- "setup": {
- "name": "setup",
- "duration": 0.00047309999899880495,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.040143700000044,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.224654E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032019999889598694,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0251108999964345,
- "run_index": 42,
- "setup": {
- "name": "setup",
- "duration": 0.00048379999861936085,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0238133999991987,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.173595E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003298999999969965,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0263544999979786,
- "run_index": 43,
- "setup": {
- "name": "setup",
- "duration": 0.0004745999995066086,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0248402999986865,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.373484E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005650000002788147,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0275535000000673,
- "run_index": 44,
- "setup": {
- "name": "setup",
- "duration": 0.0005062000000179978,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0261959999988903,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.813734E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003451000011409633,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0230056999989756,
- "run_index": 45,
- "setup": {
- "name": "setup",
- "duration": 0.00048319999950763304,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0216925000004267,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.431443E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003467999995336868,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.022476199999801,
- "run_index": 46,
- "setup": {
- "name": "setup",
- "duration": 0.0005220999992161524,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.020986500001527,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.712474E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00044549999984155875,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.032922399999734,
- "run_index": 47,
- "setup": {
- "name": "setup",
- "duration": 0.0005087999998067971,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0315578000008827,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.846744E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034699999923759606,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0794759999989765,
- "run_index": 48,
- "setup": {
- "name": "setup",
- "duration": 0.00046689999908267055,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.078204999999798,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.915854E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000337200001013116,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0738197000009677,
- "run_index": 49,
- "setup": {
- "name": "setup",
- "duration": 0.0006360000006679911,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0718725999995513,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.158439E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006751000000804197,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 8.556738000001133,
- "run_index": 50,
- "setup": {
- "name": "setup",
- "duration": 0.0005398000012064585,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 8.555321199999526,
- "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): -1.923913E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003371999991941266,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.020006300002933,
- "run_index": 51,
- "setup": {
- "name": "setup",
- "duration": 0.00047840000115684234,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0186850000009144,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.103073E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003644999997050036,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.031331800000771,
- "run_index": 52,
- "setup": {
- "name": "setup",
- "duration": 0.0017182000010507181,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0275510999999824,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.058268E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003442999986873474,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0571131000015157,
- "run_index": 53,
- "setup": {
- "name": "setup",
- "duration": 0.0006011000004946254,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0555674000006547,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.297559E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003434999998717103,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.071070600002713,
- "run_index": 54,
- "setup": {
- "name": "setup",
- "duration": 0.0005439000015030615,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0696446000001743,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.711453E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033819999953266233,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.046693899999809,
- "run_index": 55,
- "setup": {
- "name": "setup",
- "duration": 0.0005667999994329875,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0452212000000145,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.455524E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033910000092873815,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0178319000006013,
- "run_index": 56,
- "setup": {
- "name": "setup",
- "duration": 0.0004924000004393747,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016484199999468,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.671149E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036290000025474,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0404074999987643,
- "run_index": 57,
- "setup": {
- "name": "setup",
- "duration": 0.0004565999988699332,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0391362000009394,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.830944E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003581000000849599,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0220827000011923,
- "run_index": 58,
- "setup": {
- "name": "setup",
- "duration": 0.0004910000006930204,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.02042849999998,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.879952E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006721999998262618,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0277313999977196,
- "run_index": 59,
- "setup": {
- "name": "setup",
- "duration": 0.0004709999993792735,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0264169000001857,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.115681E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003724999987753108,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 11.0697667000004,
- "run_index": 60,
- "setup": {
- "name": "setup",
- "duration": 0.0019231000005675014,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 11.065565699998842,
- "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): -1.941558E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035480000042298343,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0279613000002428,
- "run_index": 61,
- "setup": {
- "name": "setup",
- "duration": 0.0009358999996038619,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.025686900000437,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.157139E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004026000005978858,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.017959900000278,
- "run_index": 62,
- "setup": {
- "name": "setup",
- "duration": 0.0004840000001422595,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0166528999998263,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.032162E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003390000001672888,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.025068300001294,
- "run_index": 63,
- "setup": {
- "name": "setup",
- "duration": 0.0004797000001417473,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0234096000003774,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.354725E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006993000006332295,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0176986000005854,
- "run_index": 64,
- "setup": {
- "name": "setup",
- "duration": 0.0004912000003969297,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016135399999257,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.856872E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005808000005345093,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0264212999991287,
- "run_index": 65,
- "setup": {
- "name": "setup",
- "duration": 0.0007949999999254942,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.024460499998895,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.446358E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003708000003825873,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0201574999991863,
- "run_index": 66,
- "setup": {
- "name": "setup",
- "duration": 0.0006118000001151813,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0185954999997193,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.652696E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003383999992365716,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.030628300000899,
- "run_index": 67,
- "setup": {
- "name": "setup",
- "duration": 0.0007820999999239575,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.028722500001095,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.845677E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034159999995608814,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.037244000002829,
- "run_index": 68,
- "setup": {
- "name": "setup",
- "duration": 0.0005037000009906478,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.035897499999919,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.899574E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033910000092873815,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.1450617000027705,
- "run_index": 69,
- "setup": {
- "name": "setup",
- "duration": 0.0004605000012816163,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.143790000000081,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.144669E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003507000001263805,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 9.545419300000503,
- "run_index": 70,
- "setup": {
- "name": "setup",
- "duration": 0.0007974000000103842,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 9.543473300000187,
- "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): -1.945059E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035120000029564835,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.023984199997358,
- "run_index": 71,
- "setup": {
- "name": "setup",
- "duration": 0.0005377999987103976,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0225657999999385,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.214692E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034279999999853317,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.118193499998597,
- "run_index": 72,
- "setup": {
- "name": "setup",
- "duration": 0.00043559999903663993,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.11698559999968,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.130521E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003367000008438481,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.03069069999583,
- "run_index": 73,
- "setup": {
- "name": "setup",
- "duration": 0.000756899999032612,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0288601999982347,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.438068E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003166999995301012,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.024442399999316,
- "run_index": 74,
- "setup": {
- "name": "setup",
- "duration": 0.0004345999986981042,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.021971800000756,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.810322E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0016014000011637108,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0573285999980726,
- "run_index": 75,
- "setup": {
- "name": "setup",
- "duration": 0.0004793999996763887,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0560093999993114,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.449106E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003603999994084006,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0524347000009584,
- "run_index": 76,
- "setup": {
- "name": "setup",
- "duration": 0.0013347000003705034,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.049421199999415,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.685756E+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):10000]",
- "duration": 2.0219268999971973,
- "run_index": 77,
- "setup": {
- "name": "setup",
- "duration": 0.000818799999251496,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0199593999986973,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.863996E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003298999999969965,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0359057000005123,
- "run_index": 78,
- "setup": {
- "name": "setup",
- "duration": 0.00044770000022253953,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.034661199999391,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.892315E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003491000006761169,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.076303599998937,
- "run_index": 79,
- "setup": {
- "name": "setup",
- "duration": 0.0004888999992544996,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.074982199999795,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.198967E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034360000063315965,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.482392300000356,
- "run_index": 80,
- "setup": {
- "name": "setup",
- "duration": 0.0004523999996308703,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.481149300001562,
- "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): -1.984880E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033819999953266233,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.032035899999755,
- "run_index": 81,
- "setup": {
- "name": "setup",
- "duration": 0.0005959000009170268,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.030491899999106,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.277297E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003521999988151947,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.0358886000012717,
- "run_index": 82,
- "setup": {
- "name": "setup",
- "duration": 0.000487299999804236,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0345553000006475,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.215463E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003587000010156771,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.030223899999328,
- "run_index": 83,
- "setup": {
- "name": "setup",
- "duration": 0.00046610000026703347,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.028868399998828,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.355400E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00042329999996582046,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.084106199998132,
- "run_index": 84,
- "setup": {
- "name": "setup",
- "duration": 0.00044809999963035807,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.082826899999418,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.717851E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003830999994534068,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0373215999970853,
- "run_index": 85,
- "setup": {
- "name": "setup",
- "duration": 0.0005674999993061647,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.035856899999999,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.449504E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003296999984740978,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0266880999988643,
- "run_index": 86,
- "setup": {
- "name": "setup",
- "duration": 0.0005559999990509823,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0252467000009347,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.721465E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003293999998277286,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.03090069999962,
- "run_index": 87,
- "setup": {
- "name": "setup",
- "duration": 0.0004447999999683816,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0295927000006486,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.870928E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000418399999034591,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.032765300000392,
- "run_index": 88,
- "setup": {
- "name": "setup",
- "duration": 0.00042940000093949493,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.031537099999696,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.884847E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003693999988172436,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0221988999983296,
- "run_index": 89,
- "setup": {
- "name": "setup",
- "duration": 0.00047839999933785293,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0209083999998256,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.161604E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033369999982824083,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.23174580000159,
- "run_index": 90,
- "setup": {
- "name": "setup",
- "duration": 0.00044830000115325674,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.230305699999008,
- "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): -1.976288E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005435000002762536,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.06749260000106,
- "run_index": 91,
- "setup": {
- "name": "setup",
- "duration": 0.0005968000004941132,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.065940700000283,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.247581E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035829999978886917,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.105132099999537,
- "run_index": 92,
- "setup": {
- "name": "setup",
- "duration": 0.0005006999999750406,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.1037766999997984,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.111230E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035399999978835694,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.03346170000259,
- "run_index": 93,
- "setup": {
- "name": "setup",
- "duration": 0.0007218000009743264,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0316868999998405,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.363839E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033120000080089085,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.033457300000009,
- "run_index": 94,
- "setup": {
- "name": "setup",
- "duration": 0.0005144000006112037,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0320724999983213,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.781742E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035600000046542846,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0266546000002563,
- "run_index": 95,
- "setup": {
- "name": "setup",
- "duration": 0.0011493000001792097,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0239923000008275,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.451257E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003636999990703771,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0261093999997684,
- "run_index": 96,
- "setup": {
- "name": "setup",
- "duration": 0.0007982999995874707,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0241805000005115,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.689417E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033230000008188654,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.037820899999133,
- "run_index": 97,
- "setup": {
- "name": "setup",
- "duration": 0.0006632999993598787,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.036102399999436,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.851461E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003919000009773299,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0414782999996532,
- "run_index": 98,
- "setup": {
- "name": "setup",
- "duration": 0.00043139999979757704,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.04027700000006,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.903589E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033849999999802094,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0198719999989407,
- "run_index": 99,
- "setup": {
- "name": "setup",
- "duration": 0.0004642999992938712,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0186068000002706,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.138336E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033660000008239876,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 16.185600499995417,
- "run_index": 100,
- "setup": {
- "name": "setup",
- "duration": 0.0005773999982920941,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 16.184084199998324,
- "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.022574E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003615000005083857,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0246377999992546,
- "run_index": 101,
- "setup": {
- "name": "setup",
- "duration": 0.0004439000003912952,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.023304600001211,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.278409E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00044539999726112,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.028040499993949,
- "run_index": 102,
- "setup": {
- "name": "setup",
- "duration": 0.0014998999977251515,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0246881999992183,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.115813E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003524999992805533,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.02651970000079,
- "run_index": 103,
- "setup": {
- "name": "setup",
- "duration": 0.0005258000019239262,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0251265999977477,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.334831E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003414999991946388,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0292815000066184,
- "run_index": 104,
- "setup": {
- "name": "setup",
- "duration": 0.0004715000031865202,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0279570999991847,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.884731E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003814000010606833,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0334686000060174,
- "run_index": 105,
- "setup": {
- "name": "setup",
- "duration": 0.0004904000015812926,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.031944000002113,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.458133E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005438000007416122,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.020509599995421,
- "run_index": 106,
- "setup": {
- "name": "setup",
- "duration": 0.0006562999988091178,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0188271000006353,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.677707E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003698999971675221,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0317063000074995,
- "run_index": 107,
- "setup": {
- "name": "setup",
- "duration": 0.0007619000025442801,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0295580999991216,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.870263E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006244000032893382,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0527346999988367,
- "run_index": 108,
- "setup": {
- "name": "setup",
- "duration": 0.0006905000009282958,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0509888999986288,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.920901E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003647999983513728,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0445010000003094,
- "run_index": 109,
- "setup": {
- "name": "setup",
- "duration": 0.0004393999988678843,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0420749000004434,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.171465E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0015473000021302141,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 9.4208411000036,
- "run_index": 110,
- "setup": {
- "name": "setup",
- "duration": 0.000496600001497427,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 9.419509899998957,
- "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): -1.972390E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033800000164774247,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.019560899992939,
- "run_index": 111,
- "setup": {
- "name": "setup",
- "duration": 0.0004656999990402255,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0182809999969322,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.177869E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003484999979264103,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.026848700006667,
- "run_index": 112,
- "setup": {
- "name": "setup",
- "duration": 0.0005301000019244384,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0254012000004877,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.077784E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003873000023304485,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0307040000006964,
- "run_index": 113,
- "setup": {
- "name": "setup",
- "duration": 0.0004721000004792586,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.029406600002403,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.340207E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035319999733474106,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0267886000001454,
- "run_index": 114,
- "setup": {
- "name": "setup",
- "duration": 0.00046640000073239207,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0254979000019375,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.959832E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003578999967430718,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0258250999941083,
- "run_index": 115,
- "setup": {
- "name": "setup",
- "duration": 0.000521999998454703,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0244277999991027,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.439508E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003532999980961904,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0249253000001772,
- "run_index": 116,
- "setup": {
- "name": "setup",
- "duration": 0.0006552999984705821,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0232531000001472,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.703568E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036160000308882445,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.03758359999847,
- "run_index": 117,
- "setup": {
- "name": "setup",
- "duration": 0.0015692999986640643,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0336999999999534,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.860241E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0007450000011886004,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0773391999937303,
- "run_index": 118,
- "setup": {
- "name": "setup",
- "duration": 0.0004993999973521568,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0759958000016923,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.919012E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003445999973337166,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.042669399994338,
- "run_index": 119,
- "setup": {
- "name": "setup",
- "duration": 0.0005755999991379213,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0411755999994057,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.163225E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003425999966566451,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 9.128201499999705,
- "run_index": 120,
- "setup": {
- "name": "setup",
- "duration": 0.0004788000005646609,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 9.126904299999296,
- "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.014783E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033959999927901663,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.085030400005053,
- "run_index": 121,
- "setup": {
- "name": "setup",
- "duration": 0.0004882000030193012,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.08370179999838,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.310140E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003522000006341841,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.028650399988692,
- "run_index": 122,
- "setup": {
- "name": "setup",
- "duration": 0.0004768999970110599,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0273452999972505,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.155472E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003512999974191189,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.036192099996697,
- "run_index": 123,
- "setup": {
- "name": "setup",
- "duration": 0.00046269999802461825,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.034616900000401,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.410947E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006498000002466142,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.026592999998684,
- "run_index": 124,
- "setup": {
- "name": "setup",
- "duration": 0.0007613999987370335,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0246886999993876,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.958745E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003815000018221326,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0272747999988496,
- "run_index": 125,
- "setup": {
- "name": "setup",
- "duration": 0.0008447000000160187,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0252430999971693,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.433162E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003423000016482547,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.031013299994811,
- "run_index": 126,
- "setup": {
- "name": "setup",
- "duration": 0.0005033999987062998,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0295659999974305,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.707146E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00044049999996786937,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0189372999957413,
- "run_index": 127,
- "setup": {
- "name": "setup",
- "duration": 0.0004607999981089961,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0175767000000633,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.867657E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00043899999946006574,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.018265100006829,
- "run_index": 128,
- "setup": {
- "name": "setup",
- "duration": 0.0005058000024291687,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0169209000014234,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.910048E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033260000054724514,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.034958900003403,
- "run_index": 129,
- "setup": {
- "name": "setup",
- "duration": 0.0005052000014984515,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0335965000012948,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.178027E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035199999911128543,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 11.02199240000482,
- "run_index": 130,
- "setup": {
- "name": "setup",
- "duration": 0.0009933000001183245,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 11.01967070000319,
- "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.183205E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033510000139358453,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.0402009999961592,
- "run_index": 131,
- "setup": {
- "name": "setup",
- "duration": 0.0011641999990388285,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.037532899998041,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.471416E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00033970000004046597,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.059398900004453,
- "run_index": 132,
- "setup": {
- "name": "setup",
- "duration": 0.0005166000009921845,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0580248000005668,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.260308E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003409000019019004,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.031918399999995,
- "run_index": 133,
- "setup": {
- "name": "setup",
- "duration": 0.0007939999995869584,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0292277000007743,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.379913E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0011027000000467524,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0210598000085156,
- "run_index": 134,
- "setup": {
- "name": "setup",
- "duration": 0.0005513000032806303,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0196002000011504,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.046019E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003570000008039642,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.0224880000023404,
- "run_index": 135,
- "setup": {
- "name": "setup",
- "duration": 0.0005715000006603077,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0208701999981713,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.452149E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00047480000284849666,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0206720999958634,
- "run_index": 136,
- "setup": {
- "name": "setup",
- "duration": 0.0005411999991338234,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0185798999991675,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.703831E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0010097999984282069,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.0347778999966977,
- "run_index": 137,
- "setup": {
- "name": "setup",
- "duration": 0.0004822999981115572,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0334728000016185,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.849106E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034049999885610305,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0643788000052155,
- "run_index": 138,
- "setup": {
- "name": "setup",
- "duration": 0.00046270000166259706,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0631063000000722,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.904001E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003471000018180348,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.032577099995251,
- "run_index": 139,
- "setup": {
- "name": "setup",
- "duration": 0.0008101999992504716,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.030492999998387,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.154198E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000463699998363154,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.780710699997144,
- "run_index": 140,
- "setup": {
- "name": "setup",
- "duration": 0.00047339999946416356,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.779406599998765,
- "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.141396E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003572999994503334,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.018499799996789,
- "run_index": 141,
- "setup": {
- "name": "setup",
- "duration": 0.00048179999794228934,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.017213700000866,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.391362E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032250000003841706,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.033005500004947,
- "run_index": 142,
- "setup": {
- "name": "setup",
- "duration": 0.0004837000014958903,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.031386900001962,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.244143E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0006511999999929685,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0181149000018195,
- "run_index": 143,
- "setup": {
- "name": "setup",
- "duration": 0.0004937000012432691,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016801599998871,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.533673E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00032590000046184286,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.0176618000004964,
- "run_index": 144,
- "setup": {
- "name": "setup",
- "duration": 0.0005486000009113923,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0162196999990556,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.042763E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003448999996180646,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.068249399999331,
- "run_index": 145,
- "setup": {
- "name": "setup",
- "duration": 0.0006893999998283107,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.065850099999807,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.456880E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0010204999998677522,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0182754999987083,
- "run_index": 146,
- "setup": {
- "name": "setup",
- "duration": 0.00047389999963343143,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.016984900001262,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.679732E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00034279999817954376,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.080555699994875,
- "run_index": 147,
- "setup": {
- "name": "setup",
- "duration": 0.000468999998702202,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0792535999971733,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.898911E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00036410000029718503,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.029328100001294,
- "run_index": 148,
- "setup": {
- "name": "setup",
- "duration": 0.0008818999995128252,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.027213000001211,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.950690E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003513000010570977,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.026992100003554,
- "run_index": 149,
- "setup": {
- "name": "setup",
- "duration": 0.00044180000259075314,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0257700999973167,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.168207E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000338400001055561,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):8000]",
- "duration": 10.090105599996605,
- "run_index": 150,
- "setup": {
- "name": "setup",
- "duration": 0.0005161999979463872,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 10.08874360000118,
- "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.231021E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003295999995316379,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):9000]",
- "duration": 2.055302800006757,
- "run_index": 151,
- "setup": {
- "name": "setup",
- "duration": 0.0008186000013665762,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0533208000015293,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.430204E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003448000024945941,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):10000]",
- "duration": 2.023060700001224,
- "run_index": 152,
- "setup": {
- "name": "setup",
- "duration": 0.0012954000012541655,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.020099699999264,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.259252E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003701999994518701,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):11000]",
- "duration": 2.0302005000048666,
- "run_index": 153,
- "setup": {
- "name": "setup",
- "duration": 0.00045590000081574544,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0289618000024348,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.610565E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003269000008003786,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):12000]",
- "duration": 2.046934299993154,
- "run_index": 154,
- "setup": {
- "name": "setup",
- "duration": 0.00044919999709236436,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.045683199998166,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.114966E+00\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.000352700000803452,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):8000]",
- "duration": 2.028437599998142,
- "run_index": 155,
- "setup": {
- "name": "setup",
- "duration": 0.00045559999853139743,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0271685000006983,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.439728E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00035790000038105063,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):9000]",
- "duration": 2.0305951999980607,
- "run_index": 156,
- "setup": {
- "name": "setup",
- "duration": 0.00045229999886942096,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0293617000024824,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.731952E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003288999978394713,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):10000]",
- "duration": 2.027909099997487,
- "run_index": 157,
- "setup": {
- "name": "setup",
- "duration": 0.0004670999987865798,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.026418500001455,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.901336E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0005563999984588008,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):11000]",
- "duration": 2.0347906000024523,
- "run_index": 158,
- "setup": {
- "name": "setup",
- "duration": 0.00047249999988707714,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0319688000017777,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -4.952678E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0018768000009004027,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):12000]",
- "duration": 2.0347915000020294,
- "run_index": 159,
- "setup": {
- "name": "setup",
- "duration": 0.0005115000021760352,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.033414099998481,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -5.163340E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003543999991961755,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):8000]",
- "duration": 28.78311229999599,
- "run_index": 160,
- "setup": {
- "name": "setup",
- "duration": 0.0003935999993700534,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 28.78203829999984,
- "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): -3.174071E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00028679999741143547,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):9000]",
- "duration": 2.031966000002285,
- "run_index": 161,
- "setup": {
- "name": "setup",
- "duration": 0.0004374000018287916,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.030790699998761,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.407167E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00030049999986658804,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):10000]",
- "duration": 2.036195599997882,
- "run_index": 162,
- "setup": {
- "name": "setup",
- "duration": 0.0004895999991276767,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0349575000000186,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.492603E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00025889999960782006,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):11000]",
- "duration": 2.0184485999998287,
- "run_index": 163,
- "setup": {
- "name": "setup",
- "duration": 0.0003440000000409782,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0175023000010697,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.632546E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00025829999867710285,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):12000]",
- "duration": 2.089373800004978,
- "run_index": 164,
- "setup": {
- "name": "setup",
- "duration": 0.0003432000012253411,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.087579700000788,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -3.544490E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0011077000017394312,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):8000]",
- "duration": 58.27733509999962,
- "run_index": 165,
- "setup": {
- "name": "setup",
- "duration": 0.00034840000080293976,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 58.27634559999933,
- "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.851318E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00029269999868120067,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):9000]",
- "duration": 2.034290100000362,
- "run_index": 166,
- "setup": {
- "name": "setup",
- "duration": 0.000369400000636233,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.033233800000744,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -1.921726E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0003174999983457383,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):10000]",
- "duration": 2.018717499999184,
- "run_index": 167,
- "setup": {
- "name": "setup",
- "duration": 0.0003198000013071578,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0176758999987214,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.056622E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.0004019999978481792,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):11000]",
- "duration": 2.0237873999976728,
- "run_index": 168,
- "setup": {
- "name": "setup",
- "duration": 0.0003311000000394415,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.022870899996633,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.154653E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.00025430000096093863,
- "outcome": "passed"
- },
- "outcome": "passed"
- },
- {
- "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):12000]",
- "duration": 2.0515951000015775,
- "run_index": 169,
- "setup": {
- "name": "setup",
- "duration": 0.00032890000147745013,
- "outcome": "passed"
- },
- "call": {
- "name": "call",
- "duration": 2.0335521000015433,
- "outcome": "passed",
- "stdout": "\n\nPower level (dBm): -2.317224E+01\n\n"
- },
- "teardown": {
- "name": "teardown",
- "duration": 0.017385199997079326,
- "outcome": "passed"
- },
- "outcome": "passed"
- }
- ],
- "summary": {
- "passed": 170,
- "num_tests": 170,
- "duration": 595.9680950641632
- },
- "created_at": "2024-04-15 13:29:36.129262"
- }
-}
\ 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"}}
diff --git a/triton_cal_plots.py b/triton_cal_plots.py
index baac78f9c..963f56b2e 100644
--- a/triton_cal_plots.py
+++ b/triton_cal_plots.py
@@ -263,5 +263,86 @@ def graph_fixture():
# # Add legend
# plt.legend()
- plt.savefig('combined.png')
+## 1x5 channel results array for each channel in combined loopback state
+ch0_combresults_y = [comb_8GHz_array[0], comb_9GHz_array[0], comb_10GHz_array[0], comb_11GHz_array[0], comb_12GHz_array[0]]
+ch1_combresults_y = [comb_8GHz_array[1], comb_9GHz_array[1], comb_10GHz_array[1], comb_11GHz_array[1], comb_12GHz_array[1]]
+ch2_combresults_y = [comb_8GHz_array[2], comb_9GHz_array[2], comb_10GHz_array[2], comb_11GHz_array[2], comb_12GHz_array[2]]
+ch3_combresults_y = [comb_8GHz_array[3], comb_9GHz_array[3], comb_10GHz_array[3], comb_11GHz_array[3], comb_12GHz_array[3]]
+ch4_combresults_y = [comb_8GHz_array[4], comb_9GHz_array[4], comb_10GHz_array[4], comb_11GHz_array[4], comb_12GHz_array[4]]
+ch5_combresults_y = [comb_8GHz_array[5], comb_9GHz_array[5], comb_10GHz_array[5], comb_11GHz_array[5], comb_12GHz_array[5]]
+ch6_combresults_y = [comb_8GHz_array[6], comb_9GHz_array[6], comb_10GHz_array[6], comb_11GHz_array[6], comb_12GHz_array[6]]
+ch7_combresults_y = [comb_8GHz_array[7], comb_9GHz_array[7], comb_10GHz_array[7], comb_11GHz_array[7], comb_12GHz_array[7]]
+ch8_combresults_y = [comb_8GHz_array[8], comb_9GHz_array[8], comb_10GHz_array[8], comb_11GHz_array[8], comb_12GHz_array[8]]
+ch9_combresults_y = [comb_8GHz_array[9], comb_9GHz_array[9], comb_10GHz_array[9], comb_11GHz_array[9], comb_12GHz_array[9]]
+ch10_combresults_y = [comb_8GHz_array[10], comb_9GHz_array[10], comb_10GHz_array[10], comb_11GHz_array[10], comb_12GHz_array[10]]
+ch11_combresults_y = [comb_8GHz_array[11], comb_9GHz_array[11], comb_10GHz_array[11], comb_11GHz_array[11], comb_12GHz_array[11]]
+ch12_combresults_y = [comb_8GHz_array[12], comb_9GHz_array[12], comb_10GHz_array[12], comb_11GHz_array[12], comb_12GHz_array[12]]
+ch13_combresults_y = [comb_8GHz_array[13], comb_9GHz_array[13], comb_10GHz_array[13], comb_11GHz_array[13], comb_12GHz_array[13]]
+ch14_combresults_y = [comb_8GHz_array[14], comb_9GHz_array[14], comb_10GHz_array[14], comb_11GHz_array[14], comb_12GHz_array[14]]
+ch15_combresults_y = [comb_8GHz_array[15], comb_9GHz_array[15], comb_10GHz_array[15], comb_11GHz_array[15], comb_12GHz_array[15]]
+
+# Create a new plot with adjacent loopback data
+plt.figure()
+plt.plot(frequency_array, ch0_adjresults_y, label='Channel 0')
+plt.plot(frequency_array, ch1_adjresults_y, label='Channel 1')
+plt.plot(frequency_array, ch2_adjresults_y, label='Channel 2')
+plt.plot(frequency_array, ch3_adjresults_y, label='Channel 3')
+plt.plot(frequency_array, ch4_adjresults_y, label='Channel 4')
+plt.plot(frequency_array, ch5_adjresults_y, label='Channel 5')
+plt.plot(frequency_array, ch6_adjresults_y, label='Channel 6')
+plt.plot(frequency_array, ch7_adjresults_y, label='Channel 7')
+plt.plot(frequency_array, ch8_adjresults_y, label='Channel 8')
+plt.plot(frequency_array, ch9_adjresults_y, label='Channel 9')
+plt.plot(frequency_array, ch10_adjresults_y, label='Channel 10')
+plt.plot(frequency_array, ch11_adjresults_y, label='Channel 11')
+plt.plot(frequency_array, ch12_adjresults_y, label='Channel 12')
+plt.plot(frequency_array, ch13_adjresults_y, label='Channel 13')
+plt.plot(frequency_array, ch14_adjresults_y, label='Channel 14')
+plt.plot(frequency_array, ch15_adjresults_y, label='Channel 15')
+
+# Limits for y axis
+plt.ylim(-80, 0)
+
+# Add labels and title
+plt.xlabel('Frequency (MHz)')
+plt.ylabel('Magnitude (dBm)')
+plt.title('Calibration Board Output Magnitude vs Frequency for Adjacent Loopback State (+15 dBm Input)')
+
+# # Add legend
+# plt.legend()
+plt.savefig('adjacent_loopback_by_channel.png')
+
+# Create a new plot with adjacent loopback data
+plt.figure()
+plt.plot(frequency_array, ch0_combresults_y, label='Channel 0')
+plt.plot(frequency_array, ch1_combresults_y, label='Channel 1')
+plt.plot(frequency_array, ch2_combresults_y, label='Channel 2')
+plt.plot(frequency_array, ch3_combresults_y, label='Channel 3')
+plt.plot(frequency_array, ch4_combresults_y, label='Channel 4')
+plt.plot(frequency_array, ch5_combresults_y, label='Channel 5')
+plt.plot(frequency_array, ch6_combresults_y, label='Channel 6')
+plt.plot(frequency_array, ch7_combresults_y, label='Channel 7')
+plt.plot(frequency_array, ch8_combresults_y, label='Channel 8')
+plt.plot(frequency_array, ch9_combresults_y, label='Channel 9')
+plt.plot(frequency_array, ch10_combresults_y, label='Channel 10')
+plt.plot(frequency_array, ch11_combresults_y, label='Channel 11')
+plt.plot(frequency_array, ch12_combresults_y, label='Channel 12')
+plt.plot(frequency_array, ch13_combresults_y, label='Channel 13')
+plt.plot(frequency_array, ch14_combresults_y, label='Channel 14')
+plt.plot(frequency_array, ch15_combresults_y, label='Channel 15')
+
+# Limits for y axis
+plt.ylim(-80, 0)
+
+# Add labels and title
+plt.xlabel('Frequency (MHz)')
+plt.ylabel('Magnitude (dBm)')
+plt.title('Calibration Board Output Magnitude vs Frequency for Combined Loopback State (+15 dBm Input)')
+
+# # Add legend
+# plt.legend()
+
+plt.savefig('combined_loopback_by_channel.png')
+# Show the plots
+plt.show()