diff --git a/flash.c b/flash.c index 46251e1..ae1c86e 100644 --- a/flash.c +++ b/flash.c @@ -197,8 +197,8 @@ caldata_recall(int id) /* duplicated saved data onto sram to be able to modify marker/trace */ memcpy(dst, src, sizeof(setting_t)); update_frequencies(); - SetScale(setting.scale); - SetReflevel(setting.reflevel); + set_scale(setting.scale); + set_reflevel(setting.reflevel); return 0; load_default: load_default_properties(); diff --git a/main.c b/main.c index 8025ecb..0624c68 100644 --- a/main.c +++ b/main.c @@ -2282,8 +2282,8 @@ return; // Don't use!!!! shell_printf("SI4432 init done\r\n"); if (argc == 1) { rvalue = xtoi(argv[0]); - SetRX(rvalue); - SetMode(rvalue); + set_switches(rvalue); + set_mode(rvalue); shell_printf("SI4432 mode %d set\r\n", rvalue); } } @@ -2349,11 +2349,11 @@ VNA_SHELL_FUNCTION(cmd_m) (void)argc; (void)argv; - SetMode(0); + set_mode(0); setting.tracking = false; //Default test setup setting.step_atten = false; - SetAttenuation(0); - SetReflevel(-10); + set_attenuation(0); + set_reflevel(-10); set_sweep_frequency(ST_START,frequencyStart - setting.frequency_IF ); set_sweep_frequency(ST_STOP, frequencyStop - setting.frequency_IF); draw_cal_status(); @@ -2389,9 +2389,9 @@ return; int p = my_atoi(argv[0]); int a = my_atoi(argv[1]); if (p==5) - SetAttenuation(-a); + set_attenuation(-a); if (p==6) - SetMode(a); + set_mode(a); if (p==1) if (get_refer_output() != a) set_refer_output(a); @@ -2402,7 +2402,7 @@ VNA_SHELL_FUNCTION(cmd_w) (void)argc; int p = my_atoi(argv[0]); return; - SetRBW(p); + set_RBW(p); } //============================================================================= VNA_SHELL_FUNCTION(cmd_help); diff --git a/nanovna.h b/nanovna.h index 3a96a58..7820c43 100644 --- a/nanovna.h +++ b/nanovna.h @@ -32,7 +32,7 @@ #define __CALIBRATE__ //#define __ULTRA__ // Add harmonics mode on low input. //#define __ULTRA_SA__ // Adds ADF4351 control for extra high 1st IF stage - +#define __SPUR__ // Does spur reduction by shifting IF /* * main.c @@ -314,7 +314,7 @@ typedef struct config { extern config_t config; //#define settingLevelOffset config.level_offset -int settingLevelOffset(void); +int get_level_offset(void); void set_trace_type(int t, int type); void set_trace_channel(int t, int channel); @@ -494,6 +494,7 @@ typedef struct setting int freq_mode; int measurement; int refer; + int spur; trace_t _trace[TRACES_MAX]; marker_t _markers[MARKERS_MAX]; int8_t _active_marker; @@ -690,7 +691,7 @@ int plot_printf(char *str, int, const char *fmt, ...); //extern int actualStepDelay; //extern int setting_mode; void update_rbw(void); -int GetActualRBW(void); +int get_actual_RBW(void); #define byte uint8_t extern volatile int SI4432_Sel; // currently selected SI4432 @@ -718,10 +719,10 @@ int get_waterfall(void); void toggle_tracking(void); void calibrate(void); void reset_calibration(void); -void SetReflevel(int); -void SetScale(int); -void SetRBW(int); -void SetRX(int); +void set_reflevel(int); +void set_scale(int); +void set_RBW(int); +void set_switches(int); //extern int setting_measurement; void self_test(int); //extern int setting_test; diff --git a/plot.c b/plot.c index 3ee76d3..2e5e9ac 100644 --- a/plot.c +++ b/plot.c @@ -804,9 +804,9 @@ static void trace_get_value_string( } else { dfreq = frequencies[i]; } - if (GetActualRBW() < 10) + if (get_actual_RBW() < 10) plot_printf(&buf2[1], sizeof(buf2) -1, "%3.3f" , (dfreq + 500) / 1000000.0); - else if (GetActualRBW() < 100) + else if (get_actual_RBW() < 100) plot_printf(&buf2[1], sizeof(buf2) -1, "%3.2f" , (dfreq + 5000) / 1000000.0); else plot_printf(&buf2[1], sizeof(buf2) -1, "%3.1f" , (dfreq + 50000) / 1000000.0); @@ -814,7 +814,7 @@ static void trace_get_value_string( // frequency_string(&buf2[1], sizeof(buf2) -1, dfreq); v = logmag(&coeff[i]); if (mtype & M_NOISE) - v = v - 10*log10(GetActualRBW()*1000.0); + v = v - 10*log10(get_actual_RBW()*1000.0); if (v == -INFINITY) plot_printf(buf, len, "-INF"); else diff --git a/sa_core.c b/sa_core.c index d2ec817..80a4f5f 100644 --- a/sa_core.c +++ b/sa_core.c @@ -2,38 +2,6 @@ int dirty = true; int scandirty = true; -#if 0 -int setting.mode = -1; // To force initialzation -int setting.attenuate = 0; -int setting.auto_attenuation; -int setting.step_atten; -int setting.rbw = 0; -int setting.below_IF; -int setting.average = 0; -int setting.show_stored = 0; -int setting.subtract_stored = 0; -int setting.drive; // 0-7 , 7=+20dBm, 3dB steps -int setting.agc = true; -int setting.lna = false; -int setting.auto_reflevel; -int setting.reflevel; -int setting.scale; -int setting.tracking = false; -int setting.modulation = MO_NONE; -int setting.step_delay = 0; -int setting.frequency_step; -int setting.test; -int setting.harmonic; -int setting.decay; -int setting.noise; -float setting.vbw = 0; -int setting.tracking_output; -int setting.repeat; -uint32_t setting.frequency0; -uint32_t setting.frequency1; -uint32_t setting.setting.frequency_IF; -int setting.measurement; -#endif extern int actualStepDelay; @@ -41,12 +9,7 @@ setting_t setting; uint32_t frequencies[POINTS_COUNT]; float actual_rbw = 0; - - int vbwSteps = 1; -#ifdef __ULTRA__ -int setting.spur = 0; -#endif float minFreq = 0; float maxFreq = 520000000; @@ -58,8 +21,8 @@ int in_selftest = false; void reset_settings(int m) { setting.mode = m; - SetScale(10); - SetReflevel(-10); + set_scale(10); + set_reflevel(-10); setting.attenuate = 0; setting.rbw = 0; setting.average = 0; @@ -85,7 +48,7 @@ void reset_settings(int m) setting.frequency_IF = 433800000; trace[TRACE_STORED].enabled = false; trace[TRACE_TEMP].enabled = false; - #ifdef __ULTRA__ +#ifdef __SPUR__ setting.spur = 0; #endif switch(m) { @@ -181,7 +144,7 @@ void set_measurement(int m) setting.measurement = m; dirty = true; } -void SetDrive(int d) +void set_drive(int d) { setting.drive = d; dirty = true; @@ -204,7 +167,7 @@ void toggle_below_IF(void) dirty = true; } -void SetModulation(int m) +void set_modulation(int m) { setting.modulation = m; dirty = true; @@ -218,7 +181,7 @@ void set_repeat(int r) } } -void SetIF(int f) +void set_IF(int f) { setting.frequency_IF = f; dirty = true; @@ -235,7 +198,7 @@ int GetMode(void) #define POWER_OFFSET 20 #define SWITCH_ATTENUATION 29 -int GetAttenuation(void) +int get_attenuation(void) { if (setting.mode == M_GENLOW) { if (setting.step_atten) @@ -257,7 +220,7 @@ void set_auto_reflevel(void) setting.auto_reflevel = true; } -void SetAttenuation(int a) +void set_attenuation(int a) { if (setting.mode == M_GENLOW) { setting.drive = 8; // Start at lowest drive level; @@ -296,7 +259,7 @@ void SetAttenuation(int a) dirty = true; } -void SetStorage(void) +void set_storage(void) { for (int i=0; i 360) - SetRBW(300); + set_RBW(300); dirty = true; } #endif @@ -420,13 +383,13 @@ void set_harmonic(int h) set_sweep_frequency(ST_STOP, (uint32_t) maxFreq); } -void SetStepDelay(int d) +void set_step_delay(int d) { setting.step_delay = d; dirty = true; } -void SetAverage(int v) +void set_average(int v) { setting.average = v; trace[TRACE_TEMP].enabled = (v != 0); @@ -438,7 +401,7 @@ int GetAverage(void) return(setting.average); } -void ToggleLNA(void) +void toggle_LNA(void) { setting.lna = !setting.lna; dirty = true; @@ -460,7 +423,7 @@ int GetLNA(void) return(setting.lna); } -void ToggleAGC(void) +void toggle_AGC(void) { setting.agc = !setting.agc; dirty = true; @@ -471,7 +434,7 @@ int GetAGC(void) return(setting.agc); } -void SetReflevel(int level) +void set_reflevel(int level) { setting.reflevel = (level / setting.scale) * setting.scale; set_trace_refpos(0, NGRIDY - level / get_trace_scale(0)); @@ -484,7 +447,7 @@ void SetReflevel(int level) // return (NGRIDY - get_trace_refpos(2)) * get_trace_scale(2); //} -void SetScale(int s) { +void set_scale(int s) { setting.scale = s; set_trace_scale(0, s); set_trace_scale(1, s); @@ -494,7 +457,7 @@ void SetScale(int s) { //int GetScale(void) { // return get_trace_refpos(2); //} -void SetMode(int m) +void set_mode(int m) { #ifdef __ULTRA__ if (m == 6) @@ -523,7 +486,7 @@ void apply_settings(void) SI4432_Write_Byte(0x79, 0); // IF no FM back to channel 0 } #endif - SetRX(setting.mode); + set_switches(setting.mode); SI4432_SetReference(setting.refer); update_rbw(); if (setting.step_delay == 0){ @@ -573,29 +536,29 @@ void setFreq(int V, unsigned long freq) } } -void SetSwitchTransmit(void) { +void set_switch_transmit(void) { SI4432_Write_Byte(0x0b, 0x1f);// Set switch to transmit SI4432_Write_Byte(0x0c, 0x1d); } -void SetSwitchReceive(void) { +void set_switch_receive(void) { SI4432_Write_Byte(0x0b, 0x1d);// Set switch to receive SI4432_Write_Byte(0x0c, 0x1f); } -void SetSwitchOff(void) { +void set_switch_off(void) { SI4432_Write_Byte(0x0b, 0x1d);// Set both switch off SI4432_Write_Byte(0x0c, 0x1f); } -void SetAGCLNA(void) { +void set_AGC_LNA(void) { unsigned char v = 0x40; if (setting.agc) v |= 0x20; if (setting.lna) v |= 0x10; SI4432_Write_Byte(0x69, v); } -void SetRX(int m) +void set_switches(int m) { switch(m) { case M_LOW: // Mixed into 0 @@ -605,17 +568,17 @@ case M_ULTRA: SI4432_Sel = 0; SI4432_Receive(); if (setting.step_atten) { - SetSwitchTransmit(); + set_switch_transmit(); } else { - SetSwitchReceive(); + set_switch_receive(); } - SetAGCLNA(); + set_AGC_LNA(); SI4432_Sel = 1; if (setting.tracking_output) - SetSwitchTransmit(); + set_switch_transmit(); else - SetSwitchOff(); + set_switch_off(); // SI4432_Receive(); For noise testing only SI4432_Transmit(setting.drive); // SI4432_SetReference(setting.refer); @@ -623,43 +586,43 @@ case M_ULTRA: case M_HIGH: // Direct into 1 // SI4432_SetReference(-1); // Stop reference output SI4432_Sel = 0; // both as receiver to avoid spurs - SetSwitchReceive(); + set_switch_receive(); SI4432_Receive(); SI4432_Sel = 1; SI4432_Receive(); - SetSwitchReceive(); - SetAGCLNA(); + set_switch_receive(); + set_AGC_LNA(); break; case M_GENLOW: // Mixed output from 0 SI4432_Sel = 0; if (setting.step_atten) { - SetSwitchOff(); + set_switch_off(); } else { - SetSwitchTransmit(); + set_switch_transmit(); } SI4432_Transmit(setting.drive); SI4432_Sel = 1; if (setting.modulation == MO_EXTERNAL) { - SetSwitchTransmit(); // High input for external LO scuh as tracking output of other tinySA + set_switch_transmit(); // High input for external LO scuh as tracking output of other tinySA SI4432_Receive(); } else { - SetSwitchOff(); + set_switch_off(); SI4432_Transmit(12); // Fix LO drive a 10dBm } break; case M_GENHIGH: // Direct output from 1 SI4432_Sel = 0; SI4432_Receive(); - SetSwitchReceive(); + set_switch_receive(); SI4432_Sel = 1; if (setting.drive < 8) { - SetSwitchOff(); + set_switch_off(); } else { - SetSwitchTransmit(); + set_switch_transmit(); } SI4432_Transmit(setting.drive); @@ -802,7 +765,8 @@ static const int spur_table[] = 16960000, 22960000, 28960000, - + 29800000, + 49500000, /* 0.52 6.96 @@ -959,7 +923,7 @@ float perform(bool break_on_operation, int i, uint32_t f, int tracking) // if (-offs > (uint32_t)f) // Ensure lf >0 0 // offs = -(uint32_t)(f + offs); uint32_t lf = (uint32_t)(f + offs); -#ifdef __ULTRA__ +#ifdef __SPUR__ float spur_RSSI = 0; again: #endif @@ -969,6 +933,10 @@ again: } else if (MODE_LOW(setting.mode)) { if (setting.mode == M_LOW && !in_selftest && avoid_spur(f)) { local_IF = spur_alternate_IF; +#ifdef __SPUR__ + } else if (setting.mode== M_LOW && setting.spur){ + local_IF = setting.frequency_IF + (int)(actual_rbw < 350.0 ? setting.spur*300000 : 0 ); +#endif } else { // local_IF = setting.frequency_IF ; } @@ -1030,8 +998,8 @@ again: signal_path_loss = -5.5; // Loss in dB, -9.5 for v0.1, -12.5 for v0.2 else signal_path_loss = +7; // Loss in dB (+ is gain) - float subRSSI = SI4432_RSSI(lf, MODE_SELECT(setting.mode))+settingLevelOffset()+ setting.attenuate - signal_path_loss; -#ifdef __ULTRA__ + float subRSSI = SI4432_RSSI(lf, MODE_SELECT(setting.mode))+get_level_offset()+ setting.attenuate - signal_path_loss; +#ifdef __SPUR__ if (setting.spur == 1) { // First pass spur_RSSI = subRSSI; setting.spur = -1; @@ -1180,15 +1148,15 @@ static bool sweep(bool break_on_operation) } if (!in_selftest && MODE_INPUT(setting.mode) && setting.auto_reflevel && max_index[0] > 0) { if (actual_t[max_index[0]] > setting.reflevel - setting.scale/2) { - SetReflevel(setting.reflevel + setting.scale); + set_reflevel(setting.reflevel + setting.scale); redraw_request |= REDRAW_CAL_STATUS; dirty = true; // Must be above if(scandirty!!!!!) } else if (temp_min_level < setting.reflevel - 9 * setting.scale - 2 && actual_t[max_index[0]] < setting.reflevel - setting.scale * 3 / 2) { - SetReflevel(setting.reflevel - setting.scale); + set_reflevel(setting.reflevel - setting.scale); redraw_request |= REDRAW_CAL_STATUS; dirty = true; // Must be above if(scandirty!!!!!) } else if (temp_min_level > setting.reflevel - 9 * setting.scale + setting.scale + 2) { - SetReflevel(setting.reflevel + setting.scale); + set_reflevel(setting.reflevel + setting.scale); redraw_request |= REDRAW_CAL_STATUS; dirty = true; // Must be above if(scandirty!!!!!) } @@ -1269,12 +1237,12 @@ static bool sweep(bool break_on_operation) int scale = setting.scale; int rp = GetRepos(); if (scale > 0 && peakLevel > rp && peakLevel - min_level < 8 * scale ) { - SetReflevel((((int)(peakLevel/scale)) + 1) * scale); + set_reflevel((((int)(peakLevel/scale)) + 1) * scale); } if (scale > 0 && min_level < rp - 9*scale && peakLevel - min_level < 8 * scale ) { int new_rp = (((int)((min_level + 9*scale)/scale)) - 1) * scale; if (new_rp < rp) - SetReflevel(new_rp); + set_reflevel(new_rp); } #endif @@ -1475,7 +1443,7 @@ void draw_cal_status(void) buf[5]=0; ili9341_drawstring(buf, x, y); } -#ifdef __ULTRA__ +#ifdef __SPUR__ if (setting.spur) { ili9341_set_foreground(BRIGHT_COLOR_BLUE); y += YSTEP*2; @@ -1524,7 +1492,7 @@ void draw_cal_status(void) y += YSTEP; int32_t t = (int)((2* vbwSteps * sweep_points * ( actualStepDelay / 100) )) /10 -#ifdef __ULTRA__ +#ifdef __SPUR__ * (setting.spur ? 2 : 1) #endif ; // in mS @@ -1765,9 +1733,9 @@ int test_validate(int i) case TC_SET: if (test_case[i].pass == 0) { if (test_value != 0) - SetPowerLevel(test_value); + set_power_level(test_value); } else - SetPowerLevel(test_case[i].pass); + set_power_level(test_case[i].pass); goto common; case TC_MEASURE: case TC_SIGNAL: // Validate signal @@ -1813,31 +1781,31 @@ void test_prepare(int i) { setting.tracking = false; //Default test setup setting.step_atten = false; - SetAttenuation(0); + set_attenuation(0); switch(test_case[i].setup) { // Prepare test conditions case TPH_SILENT: // No input signal - SetMode(M_HIGH); + set_mode(M_HIGH); goto common_silent; case TP_SILENT: // No input signal - SetMode(M_LOW); + set_mode(M_LOW); common_silent: set_refer_output(-1); for (int j = 0; j < POINTS_COUNT; j++) stored_t[j] = test_case[i].pass; break; case TP_10MHZ_SWITCH: - SetMode(M_LOW); + set_mode(M_LOW); set_refer_output(2); setting.step_atten = true; goto common; case TP_10MHZEXTRA: // Swept receiver - SetMode(M_LOW); + set_mode(M_LOW); setting.tracking = true; //Sweep BPF setting.frequency_IF = 434000000; // Center on SAW filters set_refer_output(2); goto common; case TP_10MHZ: // 10MHz input - SetMode(M_LOW); + set_mode(M_LOW); set_refer_output(2); common: @@ -1849,18 +1817,18 @@ common_silent: stored_t[j] = test_case[i].pass; break; case TP_30MHZ: - SetMode(M_LOW); + set_mode(M_LOW); set_refer_output(0); goto common; case TPH_30MHZ: - SetMode(M_HIGH); + set_mode(M_HIGH); set_refer_output(0); goto common; } setting.auto_attenuation = false; setting.attenuate = 0; trace[TRACE_STORED].enabled = true; - SetReflevel(test_case[i].pass+10); + set_reflevel(test_case[i].pass+10); set_sweep_frequency(ST_CENTER, (int32_t)(test_case[i].center * 1000000)); set_sweep_frequency(ST_SPAN, (int32_t)(test_case[i].span * 1000000)); draw_cal_status(); @@ -1898,7 +1866,7 @@ void self_test(int test) #define FREQ_STEP 3000 - SetRBW(FREQ_STEP/1000); + set_RBW(FREQ_STEP/1000); last_spur = 0; for (int j = 0; j < 10; j++) { @@ -1938,7 +1906,7 @@ void self_test(int test) test_prepare(i); for (int j= 0; j < 32; j++ ) { test_prepare(i); - SetAttenuation(j); + set_attenuation(j); float summed_peak_level = 0; for (int k=0; k<10; k++) { test_acquire(i); // Acquire test @@ -2021,7 +1989,7 @@ void self_test(int test) void reset_calibration(void) { - SetPowerLevel(100); + set_power_level(100); } #define CALIBRATE_RBWS 1 @@ -2033,11 +2001,11 @@ void calibrate(void) int local_test_status; float last_peak_level; in_selftest = true; - SetPowerLevel(100); + set_power_level(100); reset_settings(M_LOW); int i = 11; // calibrate low mode power on 30 MHz; for (int j= 0; j < CALIBRATE_RBWS; j++ ) { - SetRBW(power_rbw[j]); + set_RBW(power_rbw[j]); test_prepare(i); test_acquire(i); // Acquire test local_test_status = test_validate(i); // Validate test @@ -2047,12 +2015,12 @@ void calibrate(void) ili9341_drawstring_7x13("Calibration failed", 30, 120); goto quit; } else { - SetPowerLevel(-22); // Should be -22.5dBm + set_power_level(-22); // Should be -22.5dBm chThdSleepMilliseconds(1000); } } i = 12; // Measure 270MHz in low mode - SetRBW(100); + set_RBW(100); test_prepare(i); test_acquire(i); // Acquire test last_peak_level = peakLevel; @@ -2063,7 +2031,7 @@ void calibrate(void) i = 13; // Calibrate 270MHz in high mode for (int j = 0; j < CALIBRATE_RBWS; j++) { - SetRBW(power_rbw[j]); + set_RBW(power_rbw[j]); test_prepare(i); test_acquire(i); // Acquire test local_test_status = test_validate(i); // Validate test @@ -2072,7 +2040,7 @@ void calibrate(void) // ili9341_drawstring_7x13("Calibration failed", 30, 120); // goto quit; // } else - SetPowerLevel(last_peak_level); + set_power_level(last_peak_level); chThdSleepMilliseconds(1000); } ili9341_set_foreground(BRIGHT_COLOR_GREEN); @@ -2085,7 +2053,7 @@ quit: in_selftest = false; sweep_mode = SWEEP_ENABLE; set_refer_output(0); - SetMode(M_LOW); + set_mode(M_LOW); #endif } diff --git a/ui_sa.c b/ui_sa.c index 773e147..7412193 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -11,42 +11,42 @@ void SetRefLevel(int); void set_refer_output(int); void toggle_below_IF(void); int get_refer_output(void); -void SetAttenuation(int); -int GetAttenuation(void); +void set_attenuation(int); +int get_attenuation(void); void set_harmonic(int); //extern int setting.harmonic; int search_is_greater(void); void set_auto_attenuation(void); void set_auto_reflevel(void); int is_paused(void); -void SetPowerLevel(int); +void set_power_level(int); void SetGenerate(int); -void SetRBW(int); -void SetDrive(int d); -void SetIF(int f); -void SetStepDelay(int t); +void set_RBW(int); +void set_drive(int d); +void set_IF(int f); +void set_step_delay(int t); void set_repeat(int); //extern int setting.repeat; //extern int setting.rbw; -#ifdef __ULTRA__ +#ifdef __SPUR__ //extern int setting.spur; void SetSpur(int v); #endif -void SetAverage(int); +void set_average(int); int GetAverage(void); //extern int setting.average; -void SetStorage(void); -void SetClearStorage(void); -void SetSubtractStorage(void); +void set_storage(void); +void set_clear_storage(void); +void set_subtract_storage(void); void toggle_waterfall(void); -void SetMode(int); +void set_mode(int); int GetMode(void); -void SetReflevel(int); -void SetScale(int); +void set_reflevel(int); +void set_scale(int); void AllDirty(void); void MenuDirty(void); -void ToggleLNA(void); -void ToggleAGC(void); +void toggle_LNA(void); +void toggle_AGC(void); void redrawHisto(void); void self_test(int); void set_decay(int); @@ -68,7 +68,7 @@ extern int setting.scale; extern int setting.10mhz; #endif void set_10mhz(int); -void SetModulation(int); +void set_modulation(int); //extern int setting.modulation; void set_measurement(int); // extern int settingSpeed; @@ -488,7 +488,7 @@ extern const menuitem_t menu_topultra[]; void menu_mode_cb(int item, uint8_t data) { (void)data; - SetMode(item-1); + set_mode(item-1); // draw_cal_status(); switch (item) { case 1: @@ -550,7 +550,7 @@ void menu_autosettings_cb(int item, uint8_t data) // set_refer_output(1); // SetPowerLevel(100); // Reset - SetClearStorage(); + set_clear_storage(); dirty = true; // menu_move_back(); // stay in input menu ui_mode_normal(); @@ -621,7 +621,7 @@ static void menu_modulation_cb(int item, uint8_t data) { (void)item; //Serial.println(item); - SetModulation(menu_modulation_value[data]); + set_modulation(menu_modulation_value[data]); menu_move_back(); // ui_mode_normal(); // Stay in menu mode // draw_cal_status(); @@ -644,7 +644,7 @@ static void menu_drive_cb(int item, uint8_t data) { (void)item; //Serial.println(item); - SetDrive(data); + set_drive(data); menu_move_back(); // ui_mode_normal(); // draw_cal_status(); @@ -652,7 +652,7 @@ static void menu_drive_cb(int item, uint8_t data) -#ifdef __ULTRA__ +#ifdef __SPUR__ static void menu_spur_cb(int item, uint8_t data) { (void)data; @@ -729,7 +729,7 @@ static void menu_measure_cb(int item, uint8_t data) ui_process_keypad(); set_sweep_frequency(ST_SPAN, uistat.value*4); set_measurement(M_PHASE_NOISE); - SetAverage(4); + set_average(4); break; case M_STOP_BAND: // STop band measurement @@ -797,13 +797,13 @@ static void menu_storage_cb(int item, uint8_t data) (void)item; switch(data) { case 0: - SetStorage(); + set_storage(); break; case 1: - SetClearStorage(); + set_clear_storage(); break; case 2: - SetSubtractStorage(); + set_subtract_storage(); break; case 3: toggle_waterfall(); @@ -817,7 +817,7 @@ static void menu_storage_cb(int item, uint8_t data) static void menu_average_cb(int item, uint8_t data) { (void)data; - SetAverage(item); + set_average(item); menu_move_back(); ui_mode_normal(); draw_cal_status(); @@ -877,7 +877,7 @@ const int rbwsel[]={0,3,10,30,100,300,600}; static void menu_rbw_cb(int item, uint8_t data) { (void)item; - SetRBW(rbwsel[data]); + set_RBW(rbwsel[data]); menu_move_back(); ui_mode_normal(); // draw_cal_status(); @@ -888,7 +888,7 @@ int menu_dBper_value[]={1,2,5,10,20}; static void menu_dBper_cb(int item, uint8_t data) { (void)item; - SetScale(data); + set_scale(data); menu_move_back(); ui_mode_normal(); // draw_cal_status(); @@ -933,10 +933,10 @@ static void menu_settings2_cb(int item, uint8_t data) (void)item; switch(data) { case 0: - ToggleAGC(); + toggle_AGC(); break; case 1: - ToggleLNA();; + toggle_LNA();; break; case 2: toggle_tracking(); @@ -1361,6 +1361,21 @@ static const menuitem_t menu_acquirehigh[] = { static const menuitem_t menu_display[] = { { MT_CALLBACK,0, "\2PAUSE\0SWEEP", menu_pause_cb}, // { MT_SUBMENU, 0, "\2REF\0LEVEL", menu_reflevel}, +// { MT_SUBMENU, 0, "\2SCALE/\0DIV",menu_dBper}, + { MT_CALLBACK,0, "STORE", menu_storage_cb}, + { MT_CALLBACK,1, "CLEAR", menu_storage_cb}, + { MT_CALLBACK,2, "SUBTRACT", menu_storage_cb}, + { MT_CALLBACK,3, "WATERFALL", menu_storage_cb}, +#ifdef __SPUR__ + { MT_CALLBACK,0, "\2SPUR\0REMOVAL", menu_spur_cb}, +#endif + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, + { MT_NONE, 0, NULL, NULL } // sentinel +}; + +static const menuitem_t menu_displayhigh[] = { + { MT_CALLBACK,0, "\2PAUSE\0SWEEP", menu_pause_cb}, +// { MT_SUBMENU, 0, "\2REF\0LEVEL", menu_reflevel}, // { MT_SUBMENU, 0, "\2SCALE/\0DIV",menu_dBper}, { MT_CALLBACK,0, "STORE", menu_storage_cb}, { MT_CALLBACK,1, "CLEAR", menu_storage_cb}, @@ -1394,9 +1409,6 @@ static const menuitem_t menu_stimulus[] = { { MT_KEYPAD, KM_SPAN, "SPAN", NULL}, { MT_KEYPAD, KM_CW, "\2ZERO\0SPAN", NULL}, { MT_SUBMENU,0, "RBW", menu_rbw}, -#ifdef __ULTRA__ - { MT_CALLBACK,0, "\2SPUR\0REMOVAL", menu_spur_cb}, -#endif { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1451,7 +1463,7 @@ const menuitem_t menu_tophigh[] = { { MT_SUBMENU, 0, "PRESET", menu_load_preset_high}, { MT_SUBMENU, 0, "FREQ", menu_stimulus}, { MT_SUBMENU, 0, "LEVEL", menu_levelhigh}, - { MT_SUBMENU, 0, "DISPLAY", menu_display}, + { MT_SUBMENU, 0, "DISPLAY", menu_displayhigh}, { MT_SUBMENU, 0, "MARKER", menu_marker}, { MT_SUBMENU, 0, "MEASURE", menu_measure}, { MT_SUBMENU, 0, "SETTINGS", menu_settingshigh}, @@ -1533,11 +1545,6 @@ static void menu_item_modify_attribute( if (item == 5 /* PAUSE */ && !(sweep_mode&SWEEP_ENABLE)) { mark = true; } -#ifdef __ULTRA__ - if (item == 6 && setting.spur) { - mark = true; - } -#endif } else if (menu == menu_average) { if (item == GetAverage()){ mark = true; @@ -1563,7 +1570,7 @@ static void menu_item_modify_attribute( if (data == setting.modulation){ mark = true; } - } else if (menu == menu_display) { + } else if (menu == menu_display || menu == menu_displayhigh) { if (item ==0 && is_paused()){ mark = true; } @@ -1576,6 +1583,11 @@ static void menu_item_modify_attribute( if (item == 4 && get_waterfall()){ mark = true; } +#ifdef __SPUR__ + if (item == 5 && setting.spur) { + mark = true; + } +#endif } else if (menu == menu_settings) { if (item ==0 && setting.tracking_output){ mark = true; @@ -1670,11 +1682,11 @@ static void fetch_numeric_target(void) plot_printf(uistat.text, sizeof uistat.text, "%ddB", ((int32_t)uistat.value)); break; case KM_ATTENUATION: - uistat.value = GetAttenuation(); + uistat.value = get_attenuation(); plot_printf(uistat.text, sizeof uistat.text, "%ddB", ((int32_t)uistat.value)); break; case KM_ACTUALPOWER: - uistat.value = settingLevelOffset(); + uistat.value = get_level_offset(); plot_printf(uistat.text, sizeof uistat.text, "%ddB", ((int32_t)uistat.value)); break; case KM_IF: @@ -1694,7 +1706,7 @@ static void fetch_numeric_target(void) plot_printf(uistat.text, sizeof uistat.text, "%3ddB", ((int32_t)uistat.value)); break; case KM_LOWOUTLEVEL: - uistat.value = GetAttenuation(); // compensation for dB offset during low output mode + uistat.value = get_attenuation(); // compensation for dB offset during low output mode plot_printf(uistat.text, sizeof uistat.text, "%ddB", ((int32_t)uistat.value)); break; case KM_DECAY: @@ -1748,31 +1760,31 @@ set_numeric_value(void) break; case KM_REFPOS: setting.auto_reflevel = false; - SetReflevel(uistat.value); + set_reflevel(uistat.value); break; case KM_ATTENUATION: setting.auto_attenuation = false; - SetAttenuation(uistat.value); + set_attenuation(uistat.value); break; case KM_ACTUALPOWER: - SetPowerLevel(uistat.value); + set_power_level(uistat.value); config_save(); break; case KM_IF: - SetIF(uistat.value); + set_IF(uistat.value); config_save(); break; case KM_SAMPLETIME: - SetStepDelay(uistat.value); + set_step_delay(uistat.value); break; case KM_REPEAT: set_repeat(uistat.value); break; case KM_DRIVE: - SetDrive(uistat.value); + set_drive(uistat.value); break; case KM_LOWOUTLEVEL: - SetAttenuation(uistat.value); + set_attenuation(uistat.value); break; case KM_DECAY: set_decay(uistat.value);