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