Add more serial speed settings

Use direct store serial speed
Add usart_cfg command
Removed_REF_marker
DiSlord 5 years ago committed by erikkaashoek
parent 5f07a2a355
commit 9faa54c36e

@ -866,7 +866,7 @@ config_t config = {
.touch_cal = { 278, 513, 115, 154 }, // 4 inch panel .touch_cal = { 278, 513, 115, 154 }, // 4 inch panel
#endif #endif
._mode = _MODE_USB, ._mode = _MODE_USB,
._serial_speed = USART_SPEED_SETTING(SERIAL_DEFAULT_BITRATE), ._serial_speed = SERIAL_DEFAULT_BITRATE,
.lcd_palette = LCD_DEFAULT_PALETTE, .lcd_palette = LCD_DEFAULT_PALETTE,
#ifdef TINYSA4 #ifdef TINYSA4
#endif #endif
@ -1617,6 +1617,17 @@ VNA_SHELL_FUNCTION(cmd_threads)
#endif #endif
#ifdef ENABLE_USART_COMMAND #ifdef ENABLE_USART_COMMAND
VNA_SHELL_FUNCTION(cmd_usart_cfg)
{
if (argc != 1) goto result;
uint32_t speed = my_atoui(argv[0]);
if (speed < 300) speed = 300;
config._serial_speed = speed;
shell_update_speed();
result:
shell_printf("Serial: %u baud\r\n", config._serial_speed);
}
VNA_SHELL_FUNCTION(cmd_usart) VNA_SHELL_FUNCTION(cmd_usart)
{ {
uint32_t time = 2000; // 200ms wait answer by default uint32_t time = 2000; // 200ms wait answer by default
@ -1680,6 +1691,7 @@ static const VNAShellCommand commands[] =
{"marker" , cmd_marker , 0}, {"marker" , cmd_marker , 0},
#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},
#endif #endif
{"capture" , cmd_capture , CMD_WAIT_MUTEX}, {"capture" , cmd_capture , CMD_WAIT_MUTEX},
#ifdef __REMOTE_DESKTOP__ #ifdef __REMOTE_DESKTOP__
@ -1817,7 +1829,7 @@ static bool shell_check_connect(void){
// Update Serial connection speed and settings // Update Serial connection speed and settings
void shell_update_speed(void){ void shell_update_speed(void){
// Update Serial speed settings // Update Serial speed settings
SerialConfig s_config = {USART_GET_SPEED(config._serial_speed), 0, USART_CR2_STOP1_BITS, 0 }; SerialConfig s_config = {config._serial_speed, 0, USART_CR2_STOP1_BITS, 0 };
sdStop(&SD1); sdStop(&SD1);
sdStart(&SD1, &s_config); // USART config sdStart(&SD1, &s_config); // USART config
} }

@ -722,22 +722,10 @@ extern int display_test(void);
// //
// Shell config functions and macros // Shell config functions and macros
// Serial connect definitions not used if Serial mode disabled // Serial connect definitions not used if Serial mode disabled
// Minimum speed - USART_SPEED_MULTIPLIER
// Maximum speed - USART_SPEED_MULTIPLIER * 256
// Can be: 19200, 38400, 57600, 76800, 115200, 230400, 460800, 921600, 1843200, 3686400
#define USART_SPEED_MULTIPLIER 19200
#define USART_SPEED_SETTING(speed) ((speed)/USART_SPEED_MULTIPLIER - 1)
#define USART_GET_SPEED(idx) (((idx) + 1) * USART_SPEED_MULTIPLIER)
void shell_update_speed(void); void shell_update_speed(void);
void shell_reset_console(void); void shell_reset_console(void);
int shell_serial_printf(const char *fmt, ...); int shell_serial_printf(const char *fmt, ...);
#ifdef __VNA
void set_electrical_delay(float picoseconds);
float get_electrical_delay(void);
float groupdelay_from_array(int i, float array[POINTS_COUNT][2]);
#endif
// marker // marker
enum { enum {
M_NORMAL=0,M_REFERENCE=1, M_DELTA=2, M_NOISE=4, M_STORED=8, M_TRACKING=16, M_DELETE=32 // Tracking must be last. M_NORMAL=0,M_REFERENCE=1, M_DELTA=2, M_NOISE=4, M_STORED=8, M_TRACKING=16, M_DELETE=32 // Tracking must be last.
@ -1192,7 +1180,7 @@ typedef struct properties {
//sizeof(properties_t) == 0x1200 //sizeof(properties_t) == 0x1200
#define CONFIG_MAGIC 0x434f4e50 /* 'CONF' */ #define CONFIG_MAGIC 0x434f4e51 /* 'CONF' */
extern int16_t lastsaveid; extern int16_t lastsaveid;
//extern properties_t *active_props; //extern properties_t *active_props;

@ -1919,13 +1919,15 @@ static UI_FUNCTION_ADV_CALLBACK(menu_points_acb){
#ifdef __USE_SERIAL_CONSOLE__ #ifdef __USE_SERIAL_CONSOLE__
static UI_FUNCTION_ADV_CALLBACK(menu_serial_speed_acb) static UI_FUNCTION_ADV_CALLBACK(menu_serial_speed_acb)
{ {
static const uint32_t usart_speed[] = {19200, 38400, 57600, 115200, 230400, 460800, 921600, 1843200, 2000000, 3000000};
(void)item; (void)item;
uint32_t speed = usart_speed[data];
if (b){ if (b){
b->icon = config._serial_speed == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP; b->icon = config._serial_speed == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP;
b->param_1.u = USART_GET_SPEED(data); b->param_1.u = speed;
return; return;
} }
config._serial_speed = data; config._serial_speed = speed;
shell_update_speed(); shell_update_speed();
} }
@ -2554,28 +2556,17 @@ static const menuitem_t menu_calibrate[] =
#endif #endif
#ifdef __USE_SERIAL_CONSOLE__ #ifdef __USE_SERIAL_CONSOLE__
//19200, 38400, 57600, 74800, 115200, 230400, 460800, 921600, 1843200, 3686400
#if 0
const menuitem_t menu_serial_speed2[] = {
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 460800), "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 921600), "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING(1843200), "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING(3686400), "%u", menu_serial_speed_acb },
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
#endif
const menuitem_t menu_serial_speed[] = { const menuitem_t menu_serial_speed[] = {
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 19200), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 0, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 38400), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 1, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 57600), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 2, "%u", menu_serial_speed_acb },
// { MT_ADV_CALLBACK, USART_SPEED_SETTING( 76800), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 3, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING(115200), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 4, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING(230400), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 5, "%u", menu_serial_speed_acb },
// { MT_SUBMENU, 0, S_RARROW" MORE", menu_serial_speed2 }, { MT_ADV_CALLBACK, 6, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 460800), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 7, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, USART_SPEED_SETTING( 921600), "%u", menu_serial_speed_acb }, { MT_ADV_CALLBACK, 8, "%u", menu_serial_speed_acb },
{ MT_ADV_CALLBACK, 9, "%u", menu_serial_speed_acb },
{ MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel { MT_NONE, 0, NULL, NULL } // sentinel
}; };

Loading…
Cancel
Save

Powered by TurnKey Linux.