multi_trace
erikkaashoek 5 years ago
parent 1ae158c7da
commit 90f472c96e

@ -1472,7 +1472,7 @@ VNA_SHELL_FUNCTION(cmd_marker)
if (argc == 0) { if (argc == 0) {
for (t = 0; t < MARKERS_MAX; t++) { for (t = 0; t < MARKERS_MAX; t++) {
if (markers[t].enabled) { if (markers[t].enabled) {
shell_printf("%d %d %D %f\r\n", t+1, markers[t].index, markers[t].frequency, marker_to_value(t)); shell_printf("%d %d %D %.2f\r\n", t+1, markers[t].index, markers[t].frequency, marker_to_value(t));
} }
} }
return; return;
@ -1495,7 +1495,13 @@ VNA_SHELL_FUNCTION(cmd_marker)
markers[t].enabled = TRUE; markers[t].enabled = TRUE;
return; return;
} }
#ifdef TINYSA4
static const char cmd_marker_list[] = "on|off|peak|delta|noise|tracking|stored|trace_aver";
#else
static const char cmd_marker_list[] = "on|off|peak"; static const char cmd_marker_list[] = "on|off|peak";
#endif
static const char cmd_marker_on_off[] = "off|on";
int marker_mask = 0;
switch (get_str_index(argv[1], cmd_marker_list)) { switch (get_str_index(argv[1], cmd_marker_list)) {
case 0: markers[t].enabled = TRUE; active_marker = t; return; case 0: markers[t].enabled = TRUE; active_marker = t; return;
case 1: markers[t].enabled =FALSE; if (active_marker == t) active_marker = MARKER_INVALID; return; case 1: markers[t].enabled =FALSE; if (active_marker == t) active_marker = MARKER_INVALID; return;
@ -1515,9 +1521,35 @@ VNA_SHELL_FUNCTION(cmd_marker)
else else
set_marker_index(t, value); set_marker_index(t, value);
return; return;
#ifdef TINYSA4
// M_NORMAL=0,M_REFERENCE=1, M_DELTA=2, M_NOISE=4, M_STORED=8, M_AVER=16, M_TRACKING=32, M_DELETE=64 // Tracking must be last.
case 3:
marker_mask = M_DELTA;
goto set_mask;
case 4:
marker_mask = M_NOISE;
goto set_mask;
case 5:
marker_mask = M_STORED;
goto set_mask;
case 6:
marker_mask = M_AVER;
set_mask:
if (argc == 3) {
switch (get_str_index(argv[2],cmd_marker_on_off)) {
default: goto usage;
case 0: markers[t].mtype &= ~marker_mask; return;
case 1: markers[t].mtype |= marker_mask; return;
}
}
#endif
} }
usage: usage:
#ifdef TINYSA4
shell_printf("marker [n] [%s|{freq}|{index}] [on|off]\r\n", cmd_marker_list);
#else
shell_printf("marker [n] [%s|{freq}|{index}]\r\n", cmd_marker_list); shell_printf("marker [n] [%s|{freq}|{index}]\r\n", cmd_marker_list);
#endif
} }
VNA_SHELL_FUNCTION(cmd_touchcal) VNA_SHELL_FUNCTION(cmd_touchcal)
@ -1797,7 +1829,7 @@ static const VNAShellCommand commands[] =
{"recall" , cmd_recall , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD}, {"recall" , cmd_recall , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
{"trace" , cmd_trace , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD}, {"trace" , cmd_trace , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
{"trigger" , cmd_trigger , CMD_RUN_IN_LOAD}, {"trigger" , cmd_trigger , CMD_RUN_IN_LOAD},
{"marker" , cmd_marker , CMD_RUN_IN_LOAD}, {"marker" , cmd_marker , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
#ifdef ENABLE_USART_COMMAND #ifdef ENABLE_USART_COMMAND
{"usart" , cmd_usart , CMD_WAIT_MUTEX}, {"usart" , cmd_usart , CMD_WAIT_MUTEX},
{"usart_cfg" , cmd_usart_cfg , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD}, {"usart_cfg" , cmd_usart_cfg , CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
@ -1819,27 +1851,27 @@ static const VNAShellCommand commands[] =
#ifdef ENABLE_COLOR_COMMAND #ifdef ENABLE_COLOR_COMMAND
{"color" , cmd_color , CMD_RUN_IN_LOAD}, {"color" , cmd_color , CMD_RUN_IN_LOAD},
#endif #endif
{ "if", cmd_if, CMD_RUN_IN_LOAD }, { "if", cmd_if, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
#ifdef TINYSA4 #ifdef TINYSA4
{ "if1", cmd_if1, CMD_RUN_IN_LOAD }, { "if1", cmd_if1, CMD_RUN_IN_LOAD },
{ "lna2", cmd_lna2, CMD_RUN_IN_LOAD }, { "lna2", cmd_lna2, CMD_RUN_IN_LOAD },
{ "agc", cmd_agc, CMD_RUN_IN_LOAD }, { "agc", cmd_agc, CMD_RUN_IN_LOAD },
#endif #endif
{ "actual_freq", cmd_actual_freq, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD }, { "actual_freq", cmd_actual_freq, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "attenuate", cmd_attenuate, CMD_RUN_IN_LOAD }, { "attenuate", cmd_attenuate, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "level", cmd_level, CMD_RUN_IN_LOAD }, { "level", cmd_level, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "sweeptime", cmd_sweeptime, CMD_RUN_IN_LOAD }, { "sweeptime", cmd_sweeptime, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "leveloffset", cmd_leveloffset, CMD_RUN_IN_LOAD }, { "leveloffset", cmd_leveloffset, CMD_RUN_IN_LOAD },
{ "levelchange", cmd_levelchange, CMD_RUN_IN_LOAD }, { "levelchange", cmd_levelchange, CMD_RUN_IN_LOAD },
{ "modulation", cmd_modulation, CMD_RUN_IN_LOAD }, { "modulation", cmd_modulation, CMD_RUN_IN_LOAD },
{ "rbw", cmd_rbw, CMD_RUN_IN_LOAD }, { "rbw", cmd_rbw, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "mode", cmd_mode, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD}, { "mode", cmd_mode, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
#ifdef __SPUR__ #ifdef __SPUR__
{ "spur", cmd_spur, CMD_RUN_IN_LOAD }, { "spur", cmd_spur, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
#endif #endif
#ifdef TINYSA4 #ifdef TINYSA4
{ "lna", cmd_lna, CMD_RUN_IN_LOAD }, { "lna", cmd_lna, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "ultra", cmd_ultra, CMD_RUN_IN_LOAD }, { "ultra", cmd_ultra, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
{ "ultra_start", cmd_ultra_start, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD }, { "ultra_start", cmd_ultra_start, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD },
#endif #endif
{ "load", cmd_load, CMD_RUN_IN_LOAD }, { "load", cmd_load, CMD_RUN_IN_LOAD },
@ -1848,7 +1880,7 @@ static const VNAShellCommand commands[] =
{ "deviceid", cmd_deviceid, CMD_RUN_IN_LOAD }, { "deviceid", cmd_deviceid, CMD_RUN_IN_LOAD },
{ "selftest", cmd_selftest, 0 }, { "selftest", cmd_selftest, 0 },
{ "correction", cmd_correction, CMD_RUN_IN_LOAD }, { "correction", cmd_correction, CMD_RUN_IN_LOAD },
{ "calc", cmd_calc, CMD_RUN_IN_LOAD}, { "calc", cmd_calc, CMD_WAIT_MUTEX | CMD_RUN_IN_LOAD},
#ifdef ENABLE_SD_CARD_CMD #ifdef ENABLE_SD_CARD_CMD
{ "sd_list", cmd_sd_list, CMD_WAIT_MUTEX }, { "sd_list", cmd_sd_list, CMD_WAIT_MUTEX },
{ "sd_read", cmd_sd_read, CMD_WAIT_MUTEX }, { "sd_read", cmd_sd_read, CMD_WAIT_MUTEX },

@ -397,7 +397,7 @@ VNA_SHELL_FUNCTION(cmd_rbw)
if (argc != 1) { if (argc != 1) {
usage: usage:
#ifdef TINYSA4 #ifdef TINYSA4
shell_printf("usage: rbw 0.3..600|auto\r\n"); shell_printf("usage: rbw 0.3..850|auto\r\n");
#else #else
shell_printf("usage: rbw 2..600|auto\r\n"); shell_printf("usage: rbw 2..600|auto\r\n");
#endif #endif
@ -408,7 +408,13 @@ VNA_SHELL_FUNCTION(cmd_rbw)
set_RBW(0); set_RBW(0);
} else { } else {
float a = my_atof(argv[0]); float a = my_atof(argv[0]);
if (a < 0.2 || a>600) if (a < 0.2 ||
#ifdef TINYSA4
a>850
#else
a>600
#endif
)
goto usage; goto usage;
if (setting.rbw_x10 != a*10) if (setting.rbw_x10 != a*10)
set_RBW((int) ( a*10)); set_RBW((int) ( a*10));

@ -72,7 +72,7 @@ uint32_t old_CFGR;
uint32_t orig_CFGR; uint32_t orig_CFGR;
int debug_frequencies = false; int debug_frequencies = false;
int linear_averaging = false; int linear_averaging = true;
static freq_t old_freq[5] = { 0, 0, 0, 0,0}; static freq_t old_freq[5] = { 0, 0, 0, 0,0};
static freq_t real_old_freq[5] = { 0, 0, 0, 0,0}; static freq_t real_old_freq[5] = { 0, 0, 0, 0,0};
@ -5823,7 +5823,7 @@ abort:
setting.R = 0; setting.R = 0;
switch_SI4463_RSSI_correction(true); switch_SI4463_RSSI_correction(true);
reset_settings(M_LOW); reset_settings(M_LOW);
} if (test == 8) { // RBW level test } else if (test == 8) { // RBW level test
in_selftest = true; in_selftest = true;
ui_mode_normal(); ui_mode_normal();
// set_scale(2); // set_scale(2);
@ -5841,19 +5841,17 @@ abort:
setting.extra_lna = true; setting.extra_lna = true;
osalThreadSleepMilliseconds(200); osalThreadSleepMilliseconds(200);
set_average(AV_100); set_average(AV_100);
for (int w=0; w<50; w++) {
test_acquire(TC_LEVEL); // Acquire test test_acquire(TC_LEVEL); // Acquire test
test_acquire(TC_LEVEL); // Acquire test }
test_acquire(TC_LEVEL); // Acquire test
test_acquire(TC_LEVEL); // Acquire test
test_acquire(TC_LEVEL); // Acquire test
test_validate(TEST_NOISE); // Validate test test_validate(TEST_NOISE); // Validate test
peakLevel += - logf(actual_rbw_x10*100.0) * (10.0/logf(10.0)) peakLevel += - logf(actual_rbw_x10*100.0) * (10.0/logf(10.0))
#ifdef TINYSA4 #ifdef TINYSA4
+ SI4463_noise_correction_x10/10.0 + SI4463_noise_correction_x10/10.0
#endif #endif
; ;
// if (j == SI4432_RBW_count-1) if (j == SI4432_RBW_count-1)
// first_level = peakLevel; first_level = peakLevel;
shell_printf("RBW = %7.1fk, level = %6.2f, corr = %6.2f\n\r",actual_rbw_x10/10.0 , peakLevel, (first_level - peakLevel)*10.0 ); shell_printf("RBW = %7.1fk, level = %6.2f, corr = %6.2f\n\r",actual_rbw_x10/10.0 , peakLevel, (first_level - peakLevel)*10.0 );
if (setting.test_argument != 0) if (setting.test_argument != 0)
break; break;
@ -5893,6 +5891,7 @@ abort:
break; break;
if (operation_requested) goto abort; if (operation_requested) goto abort;
} }
if (operation_requested) break;
} }
#endif #endif
shell_printf("\n\r"); shell_printf("\n\r");
@ -5911,8 +5910,9 @@ abort:
test_acquire(TEST_LEVEL); // Acquire test test_acquire(TEST_LEVEL); // Acquire test
test_validate(TEST_LEVEL); // Validate test test_validate(TEST_LEVEL); // Validate test
shell_printf("Temp = %4.1f, level = %6.2f, delta = %6.2f\n\r",Si446x_get_temp() , peakLevel, (first_level - peakLevel)*10.0 ); shell_printf("Temp = %4.1f, level = %6.2f, delta = %6.2f\n\r",Si446x_get_temp() , peakLevel, (first_level - peakLevel)*10.0 );
if (operation_requested) break;
} }
} else if (test == 10) { } else if (test == 10) { // Test 30MHz spurs
// reset_settings(M_LOW); // reset_settings(M_LOW);
set_refer_output(-1); set_refer_output(-1);
if (setting.test_argument > 0) if (setting.test_argument > 0)
@ -5929,6 +5929,7 @@ abort:
test_acquire(test_case); // Acquire test test_acquire(test_case); // Acquire test
test_validate(test_case); test_validate(test_case);
shell_printf("Freq = %8.3fMHz, level = %6.2f\n\r", ((float)peakFreq) / 1000000.0, peakLevel); shell_printf("Freq = %8.3fMHz, level = %6.2f\n\r", ((float)peakFreq) / 1000000.0, peakLevel);
if (operation_requested) break;
} }
set_sweep_points(450); set_sweep_points(450);
reset_settings(M_LOW); reset_settings(M_LOW);

Loading…
Cancel
Save

Powered by TurnKey Linux.