コード例 #1
0
ファイル: tinyroute.c プロジェクト: sideb0ard/audio-tool
int tinyroute_main(struct audio_tool_config *config, int argc, char **argv)
{

		// 0. check for filename on cmd line rather than default
		if (argc > 1) {
			printf("Opening Mixer Paths XML %s\n", argv[1]);
			mixer_paths_xml = argv[1];
		} else {
			printf("Opening default file %s\n", MIXER_XML_PATH);
		}

    // 1. allocate audio_route and setup state
    struct audio_route *ar = setup_audio_route(config);
    struct config_parse_state state;
    memset(&state, 0, sizeof(state));
    state.ar = ar;
		// setup top level initial settings path
		state.path = path_create(ar, TOP_LEVEL_XML_SETTINGS);

    // 2. parse XML
    parse_xml(&state);

    // 3. print results
    print_routes(&state);

    return 0;

    // TODO: FREE RESOURCES
}
コード例 #2
0
/*---------------------------------------------------------------------------*/
static void
res_get_handler(void *request, void *response, uint8_t *buffer,
  uint16_t preferred_size, int32_t *offset)
{
  const char *len = NULL;
  char message[2*REST_MAX_CHUNK_SIZE];
  memset(message, 0, 2*REST_MAX_CHUNK_SIZE);
  print_routes(&message[0], 2*REST_MAX_CHUNK_SIZE);

  int length = strlen(&message[0]);

  /* The query string can be retrieved by rest_get_query(),
   * or parsed for its key-value pairs.
   */
  if(REST.get_query_variable(request, "len", &len)) {
    length = atoi(len);
    if(length < 0) {
      length = 0;
    }
    if(length > REST_MAX_CHUNK_SIZE) {
      length = REST_MAX_CHUNK_SIZE;
    }
    memcpy(buffer, message, length);
  } else {
    memcpy(buffer, message, length);
  }
  REST.set_header_content_type(response, REST.type.TEXT_PLAIN);
  REST.set_header_etag(response, (uint8_t *)&length, 1);
  REST.set_response_payload(response, buffer, length);
}
コード例 #3
0
ファイル: rftop.c プロジェクト: nishantP-10/WSNS15IRFence
int8_t cmd_calc_routes(uint8_t argc, char **argv)
{
    int8_t rc;
    
    rc = calc_routes(&network, &routes);
    if (rc == NRK_OK)
        print_routes(&routes);
    return rc;
}
コード例 #4
0
ファイル: dijkstra.c プロジェクト: ryukinix/dijkstra
int main(int argc, char *argv[]){
    int smallest;
    join_route(route, " -> ", ROUTE_SIZE);
    //printf("Len: %d\n", ilen(route));
    for (int i = 0; i < ROUTE_SIZE; i++) {
        char node = getNodeName(route[i]);
        print_routes(node, graph[route[i]]);
        int dist = min(graph[route[i]], &smallest);
        char neighbor = getNodeName(smallest);
        printf("Short distance: %c -> %c: %d\n\n", node, neighbor, dist);
    }
    return 0;
}
コード例 #5
0
ファイル: rpl-node-info.c プロジェクト: AlexandreRio/contiki
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(node_process, ev, data)
{
  static struct etimer et;
  PROCESS_BEGIN();

  PRINTF("Node process started\n");

  etimer_set(&et, 5 * CLOCK_SECOND);
  while (1) {
    PROCESS_YIELD();
    /* TODO regularly print routes and neighboors or all */
    print_local_addresses();
    print_routes();
    print_default_route();

    etimer_restart(&et);
  }

  PROCESS_END();
}
コード例 #6
0
ファイル: router.c プロジェクト: dburger/archive
/*=============================================================================
Function main

Purpose:  this is the main entry point to program.  Command line paramters are
          parsed to establish interfaces and routes and then a listening thread
          is started for each interface.
          
Parameters:
    argc (IN) - count of command line paramters
    *arvg[] (IN) - array of char *'s to command line paramters
        
Returns:  nothing
=============================================================================*/
int main(int argc, char *argv[]) {

  int i;

  /* parse command line parameters into routes and interfaces */
  for (i=1;i<argc;i++)
    if (strchr(argv[i],'@')==NULL) {
      if (ifacecnt<MAX_IFACES && parse_iface(argv[i],&ifaces[ifacecnt]))
        ifacecnt++;
    } else {
      if (routecnt<MAX_ROUTES && parse_route(argv[i],&route_tab[routecnt]))
        routecnt++;
    }

  if (ifacecnt==0) {
    printf("Proper usage is %s localport/ip/remoteport ...\n",argv[0]);
    exit(1);
  }

  printf("Parsed %d interfaces with %d routes.\n",ifacecnt,routecnt);

  config_routes(); /* matches routes to interfaces in the route_tab */

  print_ifaces();
  print_routes();

  /* now start a listen thread for each interface */
  for (i=0;i<ifacecnt;i++) {
    ifaces[i].listen = (pthread_t *)malloc(sizeof(pthread_t));
    if (pthread_create(ifaces[i].listen,NULL,listen_iface,&ifaces[i])!=0)
      error("pthread_create");
    ifaces[i].qmut = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
    pthread_mutex_init(ifaces[i].qmut,NULL);
    ifaces[i].sendq = list_init();
  }

  pthread_join(*ifaces[0].listen,NULL);   /* keep running by joining iface 0 */

}
コード例 #7
0
ファイル: rtroute.c プロジェクト: BackupTheBerlios/rtnet-svn
int main(int argc, char *argv[])
{
    const char  rtnet_dev[] = "/dev/rtnet";


    if (argc == 1)
        print_routes();

    if ((strcmp(argv[1], "--help") == 0) || (argc < 3))
        help();

    f = open(rtnet_dev, O_RDWR);
    if (f < 0) {
        perror(rtnet_dev);
        exit(1);
    }

    /* add host routes from file? */
    if (strcmp(argv[1], "-f") == 0)
        route_listadd(argv[2]);

    /* second argument is now always an IP address */
    if (!inet_aton(argv[2], &addr))
        help();

    if (strcmp(argv[1], "solicit") == 0)
        route_solicit(argc, argv);
    if (strcmp(argv[1], "add") == 0)
        route_add(argc, argv);
    if (strcmp(argv[1], "del") == 0)
        route_delete(argc, argv);

    help();

    return 0;
}
コード例 #8
0
ファイル: rftop.c プロジェクト: nishantP-10/WSNS15IRFence
static void discover_task ()
{
    uint8_t periods_in_idle = discover_period_s / DISCOVER_TASK_PERIOD_S;
    nrk_time_t now, elapsed;
    int8_t rc;

    while (1) {
        switch (discover_state) {
            case DISCOVER_IDLE:
                if (auto_discover) {
                    if (periods_in_idle < periods_in_idle)
                        break;

                    set_state(DISCOVER_SCHEDULED);
                }
                break;

            case DISCOVER_SCHEDULED:
#if ENABLE_LED
                pulse_led(led_discover);
#endif
                set_state(DISCOVER_PENDING);
                nrk_event_signal(discover_signal);
                break;

            case DISCOVER_IN_PROGRESS:
                nrk_time_get(&now);
                nrk_time_sub(&elapsed, now, last_activity);
                if (time_cmp(&elapsed, &discover_time_out) < 0) {
                    LOG("silent for ");
                    LOGP("%lu ms\r\n", TIME_TO_MS(elapsed));
                    break;
                }

                LOG("finished, distrib routes: seq ");
                LOGP("%d\r\n", outstanding_seq);

                print_graph(&network);

                rc = calc_routes(&network, &routes);
                if (rc == NRK_OK) {
                    print_routes(&routes);
                    rc = broadcast_routes(&routes, outstanding_seq);
                    if (rc != NRK_OK)
                        LOG("WARN: failed to bcast routes\r\n");
                } else {
                    LOG("WARN: failed to calc routes\r\n");
                }
                set_state(DISCOVER_COMPLETED);
                nrk_event_signal(discover_signal);
                break;

            case DISCOVER_PENDING:
            case DISCOVER_COMPLETED:
                /* the router failed to do its part in one task period */
                set_state(DISCOVER_IDLE);
                break;

            default:
                ABORT("unexpected state\r\n");
        }
        periods_in_state++;
        nrk_wait_until_next_period();
    }
    ABORT("discover task exited\r\n");
}