Add options parsing module
This commit is contained in:
parent
07555edfdf
commit
dd5712eada
|
@ -10,6 +10,8 @@ include_directories(src)
|
||||||
set(sources
|
set(sources
|
||||||
src/utils.c
|
src/utils.c
|
||||||
src/utils.h
|
src/utils.h
|
||||||
|
src/options.c
|
||||||
|
src/options.h
|
||||||
src/main.c
|
src/main.c
|
||||||
src/results.h
|
src/results.h
|
||||||
src/config.h
|
src/config.h
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "options.h"
|
||||||
#include "layer1/tx.h"
|
#include "layer1/tx.h"
|
||||||
#include "layer1/rx.h"
|
#include "layer1/rx.h"
|
||||||
|
|
||||||
|
@ -200,13 +201,19 @@ static result_t transmit_in_chunks(sdr_ctx_t *sdr, const float complex *samples,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(void)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
layer1_tx_t tx;
|
layer1_tx_t tx;
|
||||||
layer1_rx_t rx;
|
layer1_rx_t rx;
|
||||||
|
|
||||||
sdr_ctx_t sdr;
|
sdr_ctx_t sdr;
|
||||||
|
|
||||||
|
int parsed_options = options_parse(argc, argv);
|
||||||
|
fprintf(stderr, "%d options parsed.\n", parsed_options);
|
||||||
|
if(parsed_options < 0) {
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
bool on_air = true;
|
bool on_air = true;
|
||||||
|
|
||||||
debug_fd = open("/tmp/dump.cf32", O_CREAT | O_WRONLY | O_TRUNC);
|
debug_fd = open("/tmp/dump.cf32", O_CREAT | O_WRONLY | O_TRUNC);
|
||||||
|
|
37
impl/src/options.c
Normal file
37
impl/src/options.c
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "options.h"
|
||||||
|
|
||||||
|
static uint32_t m_flags;
|
||||||
|
|
||||||
|
int options_parse(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int opt;
|
||||||
|
int nparsed = 0;
|
||||||
|
while((opt = getopt(argc, argv, "c")) != -1) {
|
||||||
|
switch(opt) {
|
||||||
|
case 'c':
|
||||||
|
m_flags |= (1 << OPTIONS_FLAG_IS_CENTRAL_NODE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
fprintf(stderr,
|
||||||
|
"Usage: %s [-c]\n\n"
|
||||||
|
" -c Makes this node a central node (base station).\n",
|
||||||
|
argv[0]);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
nparsed++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nparsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool options_is_flag_set(options_flag_t flag)
|
||||||
|
{
|
||||||
|
return (m_flags & (1 << flag)) != 0;
|
||||||
|
}
|
14
impl/src/options.h
Normal file
14
impl/src/options.h
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#ifndef OPTIONS_H
|
||||||
|
#define OPTIONS_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
OPTIONS_FLAG_IS_CENTRAL_NODE,
|
||||||
|
} options_flag_t;
|
||||||
|
|
||||||
|
int options_parse(int argc, char **argv);
|
||||||
|
|
||||||
|
bool options_is_flag_set(options_flag_t flag);
|
||||||
|
|
||||||
|
#endif // OPTIONS_H
|
Loading…
Reference in a new issue