|
|
|
@ -1541,6 +1541,11 @@ my_atof(const char *p)
|
|
|
|
return x;
|
|
|
|
return x;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
|
|
char *tracename;
|
|
|
|
|
|
|
|
uint8_t type;
|
|
|
|
|
|
|
|
} type_list;
|
|
|
|
|
|
|
|
|
|
|
|
static void cmd_trace(BaseSequentialStream *chp, int argc, char *argv[])
|
|
|
|
static void cmd_trace(BaseSequentialStream *chp, int argc, char *argv[])
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int t;
|
|
|
|
int t;
|
|
|
|
@ -1575,34 +1580,29 @@ static void cmd_trace(BaseSequentialStream *chp, int argc, char *argv[])
|
|
|
|
chprintf(chp, "%d %s %s\r\n", t, type, channel);
|
|
|
|
chprintf(chp, "%d %s %s\r\n", t, type, channel);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (argc > 1) {
|
|
|
|
if (argc > 1) {
|
|
|
|
if (strcmp(argv[1], "logmag") == 0) {
|
|
|
|
static const type_list t_list[] = {
|
|
|
|
set_trace_type(t, TRC_LOGMAG);
|
|
|
|
{"logmag", TRC_LOGMAG},
|
|
|
|
} else if (strcmp(argv[1], "phase") == 0) {
|
|
|
|
{"phase", TRC_PHASE},
|
|
|
|
set_trace_type(t, TRC_PHASE);
|
|
|
|
{"polar", TRC_POLAR},
|
|
|
|
} else if (strcmp(argv[1], "polar") == 0) {
|
|
|
|
{"smith", TRC_SMITH},
|
|
|
|
set_trace_type(t, TRC_POLAR);
|
|
|
|
{"delay", TRC_DELAY},
|
|
|
|
} else if (strcmp(argv[1], "smith") == 0) {
|
|
|
|
{"linear", TRC_LINEAR},
|
|
|
|
set_trace_type(t, TRC_SMITH);
|
|
|
|
{"swr", TRC_SWR},
|
|
|
|
} else if (strcmp(argv[1], "delay") == 0) {
|
|
|
|
{"real", TRC_REAL},
|
|
|
|
set_trace_type(t, TRC_DELAY);
|
|
|
|
{"imag", TRC_IMAG},
|
|
|
|
} else if (strcmp(argv[1], "linear") == 0) {
|
|
|
|
{"r", TRC_R},
|
|
|
|
set_trace_type(t, TRC_LINEAR);
|
|
|
|
{"x", TRC_X},
|
|
|
|
} else if (strcmp(argv[1], "swr") == 0) {
|
|
|
|
{"off", TRC_OFF},
|
|
|
|
set_trace_type(t, TRC_SWR);
|
|
|
|
};
|
|
|
|
} else if (strcmp(argv[1], "real") == 0) {
|
|
|
|
for (uint16_t i=0; i<sizeof(t_list)/sizeof(type_list); i++){
|
|
|
|
set_trace_type(t, TRC_REAL);
|
|
|
|
if (strcmp(argv[1], t_list[i].tracename) == 0) {
|
|
|
|
} else if (strcmp(argv[1], "imag") == 0) {
|
|
|
|
set_trace_type(t, t_list[i].type);
|
|
|
|
set_trace_type(t, TRC_IMAG);
|
|
|
|
goto check_ch_num;
|
|
|
|
} else if (strcmp(argv[1], "r") == 0) {
|
|
|
|
}
|
|
|
|
set_trace_type(t, TRC_R);
|
|
|
|
}
|
|
|
|
} else if (strcmp(argv[1], "x") == 0) {
|
|
|
|
if (strcmp(argv[1], "scale") == 0 && argc >= 3) {
|
|
|
|
set_trace_type(t, TRC_X);
|
|
|
|
|
|
|
|
} else if (strcmp(argv[1], "linear") == 0) {
|
|
|
|
|
|
|
|
set_trace_type(t, TRC_LINEAR);
|
|
|
|
|
|
|
|
} else if (strcmp(argv[1], "off") == 0) {
|
|
|
|
|
|
|
|
set_trace_type(t, TRC_OFF);
|
|
|
|
|
|
|
|
} else if (strcmp(argv[1], "scale") == 0 && argc >= 3) {
|
|
|
|
|
|
|
|
//trace[t].scale = my_atof(argv[2]);
|
|
|
|
//trace[t].scale = my_atof(argv[2]);
|
|
|
|
set_trace_scale(t, my_atof(argv[2]));
|
|
|
|
set_trace_scale(t, my_atof(argv[2]));
|
|
|
|
goto exit;
|
|
|
|
goto exit;
|
|
|
|
@ -1614,16 +1614,17 @@ static void cmd_trace(BaseSequentialStream *chp, int argc, char *argv[])
|
|
|
|
goto usage;
|
|
|
|
goto usage;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
check_ch_num:
|
|
|
|
if (argc > 2) {
|
|
|
|
if (argc > 2) {
|
|
|
|
int src = atoi(argv[2]);
|
|
|
|
int src = atoi(argv[2]);
|
|
|
|
if (src != 0 && src != 1)
|
|
|
|
if (src != 0 && src != 1)
|
|
|
|
goto usage;
|
|
|
|
goto usage;
|
|
|
|
trace[t].channel = src;
|
|
|
|
trace[t].channel = src;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
exit:
|
|
|
|
exit:
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
usage:
|
|
|
|
usage:
|
|
|
|
chprintf(chp, "trace {0|1|2|3|all} [logmag|phase|smith|linear|delay|swr|real|imag|r|x|off] [src]\r\n");
|
|
|
|
chprintf(chp, "trace {0|1|2|3|all} [logmag|phase|polar|smith|linear|delay|swr|real|imag|r|x|off] [src]\r\n");
|
|
|
|
chprintf(chp, "trace {0|1|2|3} {scale|refpos} {value}\r\n");
|
|
|
|
chprintf(chp, "trace {0|1|2|3} {scale|refpos} {value}\r\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|