Add zero command

Removed_REF_marker
erikkaashoek 5 years ago
parent 791d940a8d
commit 082e465a2e

@ -990,6 +990,7 @@ config_t config = {
.cor_am = -14, .cor_am = -14,
.cor_wfm = -17, .cor_wfm = -17,
.cor_nfm = -17, .cor_nfm = -17,
.ext_zero_level = 128,
#endif #endif
#ifdef TINYSA4 #ifdef TINYSA4
.vbat_offset = 220, .vbat_offset = 220,
@ -1010,6 +1011,7 @@ config_t config = {
.cor_nfm = -55, .cor_nfm = -55,
.ultra = false, .ultra = false,
.high_out_adf4350 = true, .high_out_adf4350 = true,
.ext_zero_level = 174,
#endif #endif
.sweep_voltage = 3.3, .sweep_voltage = 3.3,
.switch_offset = 0.0, .switch_offset = 0.0,
@ -2377,6 +2379,7 @@ static const VNAShellCommand commands[] =
// {"gamma" , cmd_gamma , 0}, // {"gamma" , cmd_gamma , 0},
{"scan" , cmd_scan , CMD_WAIT_MUTEX}, {"scan" , cmd_scan , CMD_WAIT_MUTEX},
{"scanraw" , cmd_scanraw , CMD_WAIT_MUTEX}, {"scanraw" , cmd_scanraw , CMD_WAIT_MUTEX},
{"zero" , cmd_zero , CMD_WAIT_MUTEX},
{"sweep" , cmd_sweep , 0}, {"sweep" , cmd_sweep , 0},
{"test" , cmd_test , 0}, {"test" , cmd_test , 0},
{"touchcal" , cmd_touchcal , CMD_WAIT_MUTEX}, {"touchcal" , cmd_touchcal , CMD_WAIT_MUTEX},

@ -616,6 +616,7 @@ typedef struct config {
uint8_t high_out_adf4350; uint8_t high_out_adf4350;
float sweep_voltage; float sweep_voltage;
float switch_offset; float switch_offset;
int16_t ext_zero_level;
uint32_t dummy; uint32_t dummy;
// uint8_t _reserved[22]; // uint8_t _reserved[22];
freq_t checksum; freq_t checksum;
@ -1240,12 +1241,7 @@ typedef uint8_t deviceRSSI_t;
typedef int16_t pureRSSI_t; typedef int16_t pureRSSI_t;
// RSSI values conversion macro // RSSI values conversion macro
// External programm zero level settings (need decrease on this value -)
#ifdef TINYSA4
#define EXT_ZERO_LEVEL (174)
#else
#define EXT_ZERO_LEVEL (128)
#endif
#define DEVICE_TO_PURE_RSSI(rssi) ((rssi)<<4) #define DEVICE_TO_PURE_RSSI(rssi) ((rssi)<<4)
#define PURE_TO_DEVICE_RSSI(rssi) ((rssi)>>4) #define PURE_TO_DEVICE_RSSI(rssi) ((rssi)>>4)
#define float_TO_PURE_RSSI(rssi) ((rssi)*32) #define float_TO_PURE_RSSI(rssi) ((rssi)*32)

@ -284,7 +284,6 @@ draw_on_strut(int v0, int d, int color)
} }
#endif #endif
/* /*
* calculate log10f(abs(gamma)) * calculate log10f(abs(gamma))
*/ */
@ -940,11 +939,12 @@ draw_cell(int m, int n)
#endif #endif
// Draw trigger line // Draw trigger line
if (setting.trigger != T_AUTO) { if (setting.trigger != T_AUTO) {
c = GET_PALTETTE_COLOR(LCD_TRIGGER_COLOR);
int tp = get_trigger_level() - y0; int tp = get_trigger_level() - y0;
if (tp>=0 && tp < h) if (tp>=0 && tp < h)
for (x = 0; x < w; x++) for (x = 0; x < w; x++)
if ((uint32_t)(x + x0 - CELLOFFSETX) <= WIDTH + CELLOFFSETX) if ((uint32_t)(x + x0 - CELLOFFSETX) <= WIDTH + CELLOFFSETX)
cell_buffer[tp * CELLWIDTH + x] = LCD_TRIGGER_COLOR; cell_buffer[tp * CELLWIDTH + x] = c;
} }
#if 1 #if 1

@ -328,6 +328,17 @@ VNA_SHELL_FUNCTION(cmd_if)
} }
} }
VNA_SHELL_FUNCTION(cmd_zero)
{
if (argc != 1) {
usage:
shell_printf("usage: zero {level}\r\n%ddBm\r\n", config.ext_zero_level);
return;
} else {
config.ext_zero_level = my_atoi(argv[0]);
}
}
#ifdef TINYSA4 #ifdef TINYSA4
VNA_SHELL_FUNCTION(cmd_ultra_start) VNA_SHELL_FUNCTION(cmd_ultra_start)
{ {
@ -676,7 +687,7 @@ void sweep_remote(void)
for (i = 0; i <= step; i++, f+=delta) { for (i = 0; i <= step; i++, f+=delta) {
if (operation_requested) if (operation_requested)
break; break;
int val = perform(false, i, f, false) + float_TO_PURE_RSSI(EXT_ZERO_LEVEL); int val = perform(false, i, f, false) + float_TO_PURE_RSSI(config.ext_zero_level);
streamPut(shell_stream, 'x'); streamPut(shell_stream, 'x');
streamPut(shell_stream, (uint8_t)(val & 0xFF)); streamPut(shell_stream, (uint8_t)(val & 0xFF));
streamPut(shell_stream, (uint8_t)((val>>8) & 0xFF)); streamPut(shell_stream, (uint8_t)((val>>8) & 0xFF));
@ -822,7 +833,7 @@ VNA_SHELL_FUNCTION(cmd_scanraw)
dirty = true; dirty = true;
for (uint32_t i = 0; i<points; i++) { for (uint32_t i = 0; i<points; i++) {
int val = perform(false, i, start +(freq_t)(f_step * i), false) + float_TO_PURE_RSSI(EXT_ZERO_LEVEL); int val = perform(false, i, start +(freq_t)(f_step * i), false) + float_TO_PURE_RSSI(config.ext_zero_level);
if (operation_requested && SDU1.config->usbp->state != USB_ACTIVE) // break on operation in perform if (operation_requested && SDU1.config->usbp->state != USB_ACTIVE) // break on operation in perform
break; break;
streamPut(shell_stream, 'x'); streamPut(shell_stream, 'x');

Loading…
Cancel
Save

Powered by TurnKey Linux.