static void cmd_txtone(Stream *chp, int argc, char *argv[]) { if (argc < 1) { chprintf(chp, "Usage: tone high|low|off\r\n"); return; } if (strncasecmp("hi", argv[0], 2) == 0) { chprintf(chp, "***** TEST TONE HIGH *****\r\n"); tone_setHigh(true); if (!txtone_on) { radio_require(); radio_PTT(true); tone_start(); txtone_on = true; } } else if (strncasecmp("low", argv[0], 2) == 0) { chprintf(chp, "***** TEST TONE LOW *****\r\n"); tone_setHigh(false); if (!txtone_on) { radio_require(); radio_PTT(true); tone_start(); txtone_on = true; } } else if (strncasecmp("off", argv[0], 2) == 0 && txtone_on) { radio_PTT(false); tone_stop(); radio_release(); txtone_on = false; } }
static void cmd_converse(Stream *chp, int argc, char* argv[]) { (void) argc; (void) argv; static FBUF packet; chprintf(chp, "***** CONVERSE MODE. Ctrl-D to exit *****\r\n"); radio_require(); mon_activate(true); fbq_t* outframes = hdlc_get_encoder_queue(); while (!shellGetLine(chp, buf, BUFSIZE)) { addr_t from, to; GET_PARAM(MYCALL, &from); GET_PARAM(DEST, &to); addr_t digis[7]; uint8_t ndigis = GET_BYTE_PARAM(NDIGIS); GET_PARAM(DIGIS, &digis); fbuf_new(&packet); ax25_encode_header(&packet, &from, &to, digis, ndigis, FTYPE_UI, PID_NO_L3); fbuf_putstr(&packet, buf); fbq_put(outframes, packet); } mon_activate(false); radio_release(); }
static void cmd_radio(Stream *chp, int argc, char *argv[]) { if (argc < 1) { chprintf(chp, "Usage: radio on|off\r\n"); return; } if (strncmp(argv[0], "on", 2) == 0) radio_require(); else radio_release(); }
static void cmd_listen(Stream *chp, int argc, char* argv[]) { (void) argv; (void) argc; chprintf(chp, "***** LISTEN ON RECEIVER *****\r\n"); radio_require(); mon_activate(true); getch(chp); mon_activate(false); radio_release(); }
static void cmd_ptt(Stream *chp, int argc, char *argv[]) { if (argc < 1) { chprintf(chp, "Usage: ptt on|off\r\n"); return; } radio_require(); if (strncmp(argv[0], "on", 2) == 0) radio_PTT(true); else radio_PTT(false); radio_release(); }
static void finish(void) { // back to idle cc110x_strobe(RF_SIDLE); radio_state = RADIO_IDLE; restore_conf(); /* Have to put radio back to WOR/RX if old radio state * was WOR/RX, otherwise no action is necessary */ if ((old_radio_state == RADIO_WOR) || (old_radio_state == RADIO_RX)) { cc110x_switch_to_rx(); } radio_release(); // restoreIRQ(cpsr); }
static void cmd_teston(Stream *chp, int argc, char* argv[]) { int ch = 0; if (argc < 1) { chprintf(chp, "Usage: TESTON <byte>\r\n"); return; } sscanf(argv[0], "%xhh", &ch); radio_require(); hdlc_test_on((uint8_t) ch); chprintf(chp, "**** TEST SIGNAL: 0x%X ****\r\n", ch); /* And wait until some character has been typed */ getch(chp); hdlc_test_off(); radio_release(); }
static void cmd_testpacket(Stream *chp, int argc, char *argv[]) { (void)argc; (void)argv; static FBUF packet; fbq_t* outframes = hdlc_get_encoder_queue(); addr_t from, to; addr_t digis[7]; radio_require(); sleep(100); GET_PARAM(MYCALL, &from); GET_PARAM(DEST, &to); uint8_t ndigis = GET_BYTE_PARAM(NDIGIS); GET_PARAM(DIGIS, &digis); fbuf_new(&packet); ax25_encode_header(&packet, &from, &to, digis, ndigis, FTYPE_UI, PID_NO_L3); fbuf_putstr(&packet, "The lazy brown dog jumps over the quick fox 1234567890"); chprintf(chp, "Sending (AX25 UI) test packet....\r\n"); fbq_put(outframes, packet); sleep(10); radio_release(); }