diff --git a/projects/rfdsatt/rfdsatt.c b/projects/rfdsatt/rfdsatt.c index 85a9ec3..8137a09 100644 --- a/projects/rfdsatt/rfdsatt.c +++ b/projects/rfdsatt/rfdsatt.c @@ -275,6 +275,42 @@ DEFUN(interact, interact_cmd, "interact", "Enter interactive single-key mode") } } +DEFUN(test, test_cmd, "test", "Enter interactive test-ramp mode") +{ + uint8_t g_chan = 0; + uint8_t g_stage = 0; + uint8_t g_val = 0; + + printf("Entering interactive test-ramp mode. Press 'X' for exit\r\n"); + + while (1) { + int ch, rc; + if ((ch = getchar()) != EOF) { + switch (ch) { + case 'X': /* exit */ + return; + case '1': case '2': case '3': case '4': /* channel number */ + g_chan = ch - '1'; + g_val = 0; + break; + case '0': /* set to 0dB */ + g_val = 0; + break; + } + } + if (g_val < 60) + g_val += 10; + else + g_val = 0; + + rc = attenuator_chan_set(g_chan, g_val*4, false); + if (rc < 0) + printf("Error setting attenuator: %d\r\n", rc); + + msleep(500); + } +} + /*********************************************************************** * main @@ -341,6 +377,7 @@ int main(void) microvty_register(&att_show_cmd); microvty_register(&att_set_cmd); microvty_register(&interact_cmd); + microvty_register(&test_cmd); print_banner(); microvty_print_prompt();