Beispiel #1
0
static void cmd_symbol(Stream *chp, int argc, char* argv[])
{
   if (argc > 0)
     chprintf(chp, "%s\r\n", parseSymbol(argv[0], buf));
   else {
     char tab = GET_BYTE_PARAM(SYMBOL_TAB);
     char sym = GET_BYTE_PARAM(SYMBOL);
     chprintf(chp, "SYMBOL %c%c\r\n", tab,sym);
   }
}
Beispiel #2
0
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();
}
Beispiel #3
0
static void cmd_webserver(Stream *chp, int argc, char* argv[])
{
   if (argc < 1) {
      chprintf(chp, "Usage: webserver on|off|info|auth\r\n");
   }
   else if (strncasecmp("on", argv[0], 2) == 0) { 
     chprintf(chp, "***** HTTP SERVER ON *****\r\n");
     SET_BYTE_PARAM(HTTP_ON, 1);
     wifi_restart();
   }
   else if (strncasecmp("off", argv[0], 2) == 0) {
     chprintf(chp, "***** HTTP SERVER OFF *****\r\n");
     SET_BYTE_PARAM(HTTP_ON, 0);
     wifi_restart();
   }
   else if (strncasecmp("info", argv[0], 2) == 0) {
      chprintf(chp, "Webserver is %s\r\n", (GET_BYTE_PARAM(HTTP_ON) ? "on" : "off"));
   }
   else if (strncasecmp("auth", argv[0], 3) == 0) {
      chprintf(chp, "Enter username: "******"Enter password: "******"Ok\r\n");
      }
   }
}
Beispiel #4
0
void reset_params()
{
    /* If version was changed */
    if ( GET_BYTE_PARAM(VERSION_KEY) < CURRENT_VERSION_KEY )
    {
        /* Some of the EEPROM parameters may need to be reset */
        SET_BYTE_PARAM(VERSION_KEY, CURRENT_VERSION_KEY);
    }
}
Beispiel #5
0
static void cmd_digipath(Stream *chp, int argc, char *argv[])
{
    if (argc > 0) 
       chprintf(chp, "%s\r\n", parseDigipathTokens(argc, argv, buf));
    else  {
       __digilist_t digis;
       uint8_t ndigis;
       ndigis = GET_BYTE_PARAM(NDIGIS);
       GET_PARAM(DIGIS, &digis);
       digis2str(buf, ndigis, digis);
       chprintf(chp, "PATH %s\r\n", buf);
    } 
}
Beispiel #6
0
static void cmd_setvolume(Stream *chp, int argc, char *argv[]) {
  uint8_t vol=0;
  if (argc==0)
     vol= GET_BYTE_PARAM(TRX_VOLUME);
  else {
     if (argc > 0) 
        sscanf(argv[0], "%hhu", &vol);
     if (vol>8) vol=8;
  
     SET_BYTE_PARAM(TRX_VOLUME, vol);
     radio_setVolume(vol);
  }
  chprintf(chp, "VOLUME: %d\r\n", vol);
}
Beispiel #7
0
static void cmd_setsquelch(Stream *chp, int argc, char *argv[]) {
   uint8_t sq=0;
   if (argc == 0)
      sq = GET_BYTE_PARAM(TRX_SQUELCH);
   else {
      if (argc > 0) 
         sscanf(argv[0], "%hhu", &sq);
      if (sq>8) sq=8; 
      
      SET_BYTE_PARAM(TRX_SQUELCH, sq);
      radio_setSquelch(sq);
   }
   chprintf(chp, "SQUELCH: %d\r\n", sq); 
}
Beispiel #8
0
static void cmd_tracker(Stream *chp, int argc, char* argv[])
{
  if (argc < 1) 
    chprintf(chp, "TRACKER %s\r\n", (GET_BYTE_PARAM(TRACKER_ON) ? "ON" : "OFF"));
  
  else if (strncasecmp("on", argv[0], 2) == 0) {
    chprintf(chp, "***** TRACKER ON *****\r\n");
    tracker_on();
  } 
  else if (strncasecmp("off", argv[0], 2) == 0) {
    chprintf(chp, "please wait ...\r\n");
    tracker_off();
    chprintf(chp, "***** TRACKER OFF *****\r\n");
  } 
}
Beispiel #9
0
void mon_activate(bool m)
{ 
   /* Start if not on already */
   bool tstart = m && !mon_on;
   
   /* Stop if not stopped already */
   bool tstop = !m && mon_on;
   
   mon_on = m;
   FBQ* mq = (mon_on? &mon : NULL);
   hdlc_subscribe_rx(mq, 0);
   if (!mon_on || GET_BYTE_PARAM(TXMON_ON))
      hdlc_monitor_tx(mq);
   
   if (tstart) 
      THREAD_START(mon_thread, STACK_MONITOR);  
   if (tstop) {
      hdlc_monitor_tx(NULL);
      hdlc_subscribe_rx(NULL, 0);
      fbq_signal(&mon);
   }
}
Beispiel #10
0
static void cmd_igate(Stream *chp, int argc, char* argv[]) 
{
   if (argc < 1) {
      chprintf(chp, "Usage: webserver info|on|off|host|port|user|passcode|filter\r\n");
   }
   else if (strncasecmp("info", argv[0], 3) == 0) { 
      chprintf(chp, "     Igate status : %s%s\r\n", 
            (GET_BYTE_PARAM(IGATE_ON) ? "ON" : "OFF"),  igate_is_on() ? " (running)" : "");
      if (igate_is_on()) {
         chprintf(chp, "     Connected to : %s\r\n\r\n", inet_chost());
         chprintf(chp, " Packets received : %d\r\n", igate_rxcount());
         chprintf(chp, "Gated to internet : %d\r\n", igate_icount());
         chprintf(chp, "     Tracker only : %d\r\n", igate_tr_count());
      }
   }
   else if (strncasecmp("on", argv[0], 2) == 0) { 
      chprintf(chp, "***** IGATE ON *****\r\n");
      igate_on(true);
   }
   else if (strncasecmp("off", argv[0], 2) == 0) {
      chprintf(chp, "***** IGATE OFF *****\r\n");
      igate_on(false);
   }
   else if (strncasecmp("host", argv[0], 2) == 0) {
      STRING_SETTING( chp, IGATE_HOST, "IGATE_HOST", CRED_LENGTH, 1 );
   }
   else if (strncasecmp("username", argv[0], 4) == 0) {
      STRING_SETTING( chp, IGATE_USERNAME, "IGATE_USERNAME", CRED_LENGTH, 1 );
   }
   else if (strncasecmp("filter", argv[0], 4) == 0) {
      STRING_SETTING( chp, IGATE_FILTER, "IGATE_FILTER", CRED_LENGTH, 1 );
   }
   else if (strncasecmp("port", argv[0], 4) == 0) {
      UINT_SETTING(chp, IGATE_PORT, "IGATE_PORT", 1, 1024, 65000);
   }
   else if (strncasecmp("passcode", argv[0], 4) ==0) {
      UINT_SETTING(chp, IGATE_PASSCODE, "IGATE_PASSCODE", 1, 0, 65000);
   }
}
Beispiel #11
0
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(); 
}
Beispiel #12
0
bool gps_is_fixed()
   { return is_fixed && GET_BYTE_PARAM(TRACKER_ON); }