Review from last PR; more dangling whitespace at end of lines.

This commit is contained in:
Gregory Nutt 2017-06-15 11:10:25 -06:00
parent a8ab2f7505
commit 64a9e69e66
12 changed files with 85 additions and 39 deletions

View File

@ -3,7 +3,7 @@ IEEE 802.15.4 Swiss Army Knife (i8sak, or i8)
Description Description
=========== ===========
The i8sak app is a useful CLI for testing various IEEE 802.15.4 functionality. The i8sak app is a useful CLI for testing various IEEE 802.15.4 functionality.
It also serves as a starting place for learning how to interface with the It also serves as a starting place for learning how to interface with the
NuttX IEEE 802.15.4 MAC layer. NuttX IEEE 802.15.4 MAC layer.
@ -50,7 +50,7 @@ just use it once.
The acceptassoc command, without any arguments, informs the i8sak instance to The acceptassoc command, without any arguments, informs the i8sak instance to
accept all association requests. The acceptassoc command also allows you to only accept all association requests. The acceptassoc command also allows you to only
accept requests from a single device by specifying the extended address with option accept requests from a single device by specifying the extended address with option
-e. -e.
For instance: For instance:
``` ```
@ -102,7 +102,7 @@ transactions:
2a) ACK 2a) ACK
Frame Type - ACK Frame Type - ACK
Sequence Number - 1 Sequence Number - 1
3) Association Response 3) Association Response
Frame Type - CMD Frame Type - CMD
Sequence Number - 0 Sequence Number - 0
@ -136,7 +136,7 @@ Because the devmode is PAN Coordinator, the i8sak app knows to send the data
as an indirect transaction. If you were running the i8sak app on a device as an indirect transaction. If you were running the i8sak app on a device
that is a coordinator, but not the PAN coordinator, you can force the i8sak app that is a coordinator, but not the PAN coordinator, you can force the i8sak app
to send the transaction directly, rather than to the parent coordinator, by using to send the transaction directly, rather than to the parent coordinator, by using
the -d option. the -d option.
NOTE: Currently, the indirect transaction timeout is disabled. This means frames NOTE: Currently, the indirect transaction timeout is disabled. This means frames
must be extracted or space may run out. This is only for the testing phase as it must be extracted or space may run out. This is only for the testing phase as it

View File

@ -118,7 +118,7 @@ enum i8sak_cmd_e
struct i8sak_s struct i8sak_s
{ {
/* Support singly linked list */ /* Support singly linked list */
FAR struct i8sak_s *flink; FAR struct i8sak_s *flink;
bool initialized : 1; bool initialized : 1;

View File

@ -74,7 +74,8 @@ void i8sak_acceptassoc_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[]
{ {
struct wpanlistener_eventfilter_s filter; struct wpanlistener_eventfilter_s filter;
bool acceptall = true; /* start off assuming we are going to allow all connections */ bool acceptall = true; /* start off assuming we are going to allow all connections */
int option, optcnt; int option;
int optcnt;
optcnt = 0; optcnt = 0;
while ((option = getopt(argc, argv, ":he:")) != ERROR) while ((option = getopt(argc, argv, ":he:")) != ERROR)

View File

@ -79,7 +79,10 @@ void i8sak_assoc_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
{ {
struct ieee802154_assoc_req_s assocreq; struct ieee802154_assoc_req_s assocreq;
struct wpanlistener_eventfilter_s filter; struct wpanlistener_eventfilter_s filter;
int fd, option, optcnt, ret; int fd;
int option;
int optcnt;
int ret;
/* If the addresses has never been automatically or manually set before, set /* If the addresses has never been automatically or manually set before, set
* it assuming that we are the default device address and the endpoint is the * it assuming that we are the default device address and the endpoint is the
@ -103,28 +106,33 @@ void i8sak_assoc_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
"Usage: %s [-h]\n" "Usage: %s [-h]\n"
" -h = this help menu\n" " -h = this help menu\n"
, argv[0]); , argv[0]);
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
return; return;
case 's': case 's':
/* Parse extended address and put it into the i8sak instance */ /* Parse extended address and put it into the i8sak instance */
i8sak->ep.saddr = i8sak_str2luint16(optarg); i8sak->ep.saddr = i8sak_str2luint16(optarg);
i8sak->ep.mode= IEEE802154_ADDRMODE_SHORT; i8sak->ep.mode= IEEE802154_ADDRMODE_SHORT;
break; break;
case 'e': case 'e':
/* Parse extended address and put it into the i8sak instance */ /* Parse extended address and put it into the i8sak instance */
i8sak_str2eaddr(optarg, &i8sak->ep.eaddr[0]); i8sak_str2eaddr(optarg, &i8sak->ep.eaddr[0]);
i8sak->ep.mode = IEEE802154_ADDRMODE_EXTENDED; i8sak->ep.mode = IEEE802154_ADDRMODE_EXTENDED;
break; break;
case ':': case ':':
fprintf(stderr, "ERROR: missing argument\n"); fprintf(stderr, "ERROR: missing argument\n");
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
i8sak_cmd_error(i8sak); /* This exits for us */ i8sak_cmd_error(i8sak); /* This exits for us */
case '?': case '?':
fprintf(stderr, "ERROR: unknown argument\n"); fprintf(stderr, "ERROR: unknown argument\n");
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */

View File

@ -97,6 +97,7 @@ void i8sak_blaster_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
" -p = set period (and start blaster)\n" " -p = set period (and start blaster)\n"
"Note: No option starts blaster with defaults\n" "Note: No option starts blaster with defaults\n"
, argv[0]); , argv[0]);
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
@ -104,23 +105,29 @@ void i8sak_blaster_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
case 'q': /* Quit blaster */ case 'q': /* Quit blaster */
i8sak->blasterenabled = false; i8sak->blasterenabled = false;
break; break;
case 'p': /* Inline change blaster period */ case 'p': /* Inline change blaster period */
i8sak->blasterperiod = atoi(optarg); i8sak->blasterperiod = atoi(optarg);
i8sak_blaster_start(i8sak); i8sak_blaster_start(i8sak);
break; break;
case 'f': /* Inline change blaster frame */ case 'f': /* Inline change blaster frame */
i8sak->payload_len = i8sak_str2payload(optarg, &i8sak->payload[0]); i8sak->payload_len = i8sak_str2payload(optarg, &i8sak->payload[0]);
i8sak_blaster_start(i8sak); i8sak_blaster_start(i8sak);
break; break;
case ':': case ':':
fprintf(stderr, "ERROR: missing argument\n"); fprintf(stderr, "ERROR: missing argument\n");
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
i8sak_cmd_error(i8sak); /* This exits for us */ i8sak_cmd_error(i8sak); /* This exits for us */
break; break;
case '?': case '?':
fprintf(stderr, "ERROR: unknown argument\n"); fprintf(stderr, "ERROR: unknown argument\n");
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;

View File

@ -112,12 +112,12 @@ static const struct i8sak_command_s g_i8sak_commands[] =
#define NCOMMANDS (sizeof(g_i8sak_commands) / sizeof(struct i8sak_command_s)) #define NCOMMANDS (sizeof(g_i8sak_commands) / sizeof(struct i8sak_command_s))
sq_queue_t g_i8sak_free; static sq_queue_t g_i8sak_free;
sq_queue_t g_i8sak_instances; static sq_queue_t g_i8sak_instances;
struct i8sak_s g_i8sak_pool[CONFIG_IEEE802154_I8SAK_NINSTANCES]; static struct i8sak_s g_i8sak_pool[CONFIG_IEEE802154_I8SAK_NINSTANCES];
bool g_i8sak_initialized = false; static bool g_i8sak_initialized = false;
bool g_activei8sak_set = false; static bool g_activei8sak_set = false;
FAR struct i8sak_s *g_activei8sak; static FAR struct i8sak_s *g_activei8sak;
/**************************************************************************** /****************************************************************************
* Private Function Prototypes * Private Function Prototypes
@ -204,7 +204,9 @@ int i8sak_tx(FAR struct i8sak_s *i8sak, int fd)
int i8sak_str2payload(FAR const char *str, FAR uint8_t *buf) int i8sak_str2payload(FAR const char *str, FAR uint8_t *buf)
{ {
int str_len, ret, i = 0; int str_len;
int ret;
int i = 0;
str_len = strlen(str); str_len = strlen(str);
@ -213,7 +215,8 @@ int i8sak_str2payload(FAR const char *str, FAR uint8_t *buf)
ret = str_len >> 1; ret = str_len >> 1;
/* Check if the number of chars is a multiple of 2 and that the number of /* Check if the number of chars is a multiple of 2 and that the number of
* bytes does not exceed the max MAC frame payload supported */ * bytes does not exceed the max MAC frame payload supported.
*/
if ((str_len & 1) || (ret > IEEE802154_MAX_MAC_PAYLOAD_SIZE)) if ((str_len & 1) || (ret > IEEE802154_MAX_MAC_PAYLOAD_SIZE))
{ {
@ -418,7 +421,9 @@ static void i8sak_switch_instance(FAR char *devname)
{ {
FAR struct i8sak_s *i8sak; FAR struct i8sak_s *i8sak;
/* Search list of i8sak instances for one associated with the provided device */ /* Search list of i8sak instances for one associated with the provided
* device.
*/
i8sak = (FAR struct i8sak_s *)sq_peek(&g_i8sak_instances); i8sak = (FAR struct i8sak_s *)sq_peek(&g_i8sak_instances);
@ -447,7 +452,8 @@ static void i8sak_switch_instance(FAR char *devname)
} }
/* Update our "sticky" i8sak instance. Must come before call to setup so that /* Update our "sticky" i8sak instance. Must come before call to setup so that
* the shared active global i8sak is correct */ * the shared active global i8sak is correct.
*/
g_activei8sak = i8sak; g_activei8sak = i8sak;
@ -465,7 +471,9 @@ static void i8sak_switch_instance(FAR char *devname)
static int i8sak_setup(FAR struct i8sak_s *i8sak, FAR const char *devname) static int i8sak_setup(FAR struct i8sak_s *i8sak, FAR const char *devname)
{ {
char daemonname[I8SAK_DAEMONNAME_FMTLEN]; char daemonname[I8SAK_DAEMONNAME_FMTLEN];
int i, ret, fd; int i;
int ret;
int fd;
if (i8sak->initialized) if (i8sak->initialized)
{ {
@ -651,7 +659,9 @@ int i8_main(int argc, char *argv[])
#endif #endif
{ {
FAR const struct i8sak_command_s *i8sakcmd; FAR const struct i8sak_command_s *i8sakcmd;
int i, ret, argind; int argind;
int ret;
int i;
if (!g_i8sak_initialized) if (!g_i8sak_initialized)
{ {
@ -681,11 +691,14 @@ int i8_main(int argc, char *argv[])
if (argc == 2) if (argc == 2)
{ {
/* Close silently to allow user to set devname without any other operation */ /* Close silently to allow user to set devname without any
* other operation.
*/
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
} }
/* Argument must be command */ /* Argument must be command */
} }

View File

@ -80,7 +80,9 @@ void i8sak_poll_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
{ {
struct ieee802154_poll_req_s pollreq; struct ieee802154_poll_req_s pollreq;
struct wpanlistener_eventfilter_s eventfilter; struct wpanlistener_eventfilter_s eventfilter;
int ret, fd, option; int option;
int fd;
int ret;
ret = OK; ret = OK;
while ((option = getopt(argc, argv, ":h")) != ERROR) while ((option = getopt(argc, argv, ":h")) != ERROR)

View File

@ -75,7 +75,9 @@
void i8sak_sniffer_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[]) void i8sak_sniffer_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
{ {
int ret, fd, option; int option;
int fd;
int ret;
ret = OK; ret = OK;
while ((option = getopt(argc, argv, "h")) != ERROR) while ((option = getopt(argc, argv, "h")) != ERROR)

View File

@ -73,7 +73,9 @@ void i8sak_startpan_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
{ {
struct ieee802154_reset_req_s resetreq; struct ieee802154_reset_req_s resetreq;
struct ieee802154_start_req_s startreq; struct ieee802154_start_req_s startreq;
int fd, i, option; int option;
int fd;
int i;
while ((option = getopt(argc, argv, ":h")) != ERROR) while ((option = getopt(argc, argv, ":h")) != ERROR)
{ {

View File

@ -80,7 +80,10 @@ void i8sak_tx_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
enum ieee802154_devmode_e devmode; enum ieee802154_devmode_e devmode;
struct wpanlistener_eventfilter_s eventfilter; struct wpanlistener_eventfilter_s eventfilter;
bool sendasdev = false; bool sendasdev = false;
int fd, ret, option, argind; int argind;
int option;
int fd;
int ret;
ret = OK; ret = OK;
argind = 1; argind = 1;
@ -94,20 +97,25 @@ void i8sak_tx_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
" -h = this help menu\n" " -h = this help menu\n"
" -d = send as device instead of coord\n" " -d = send as device instead of coord\n"
, argv[0]); , argv[0]);
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
return; return;
case 'd': case 'd':
sendasdev = true; sendasdev = true;
argind++; argind++;
break; break;
case ':': case ':':
fprintf(stderr, "ERROR: missing argument\n"); fprintf(stderr, "ERROR: missing argument\n");
/* Must manually reset optind if we are going to exit early */ /* Must manually reset optind if we are going to exit early */
optind = -1; optind = -1;
i8sak_cmd_error(i8sak); /* This exits for us */ i8sak_cmd_error(i8sak); /* This exits for us */
case '?': case '?':
fprintf(stderr, "ERROR: unknown argument\n"); fprintf(stderr, "ERROR: unknown argument\n");
ret = ERROR; ret = ERROR;
@ -139,7 +147,8 @@ void i8sak_tx_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
if (!sendasdev) if (!sendasdev)
{ {
/* If we are acting as an endpoint, send as normal CSMA (non-indirect) /* If we are acting as an endpoint, send as normal CSMA (non-indirect)
* If we are a coordinator or PAN coordinator, send as indirect */ * If we are a coordinator or PAN coordinator, send as indirect.
*/
if (devmode == IEEE802154_DEVMODE_ENDPOINT) if (devmode == IEEE802154_DEVMODE_ENDPOINT)
{ {
@ -154,7 +163,8 @@ void i8sak_tx_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
{ {
/* We cannot send a frame as direct if we are the PAN coordinator. Maybe /* We cannot send a frame as direct if we are the PAN coordinator. Maybe
* this should be the hook for sending payload in beacon? But for now, * this should be the hook for sending payload in beacon? But for now,
* let's just thow an error. */ * let's just thow an error.
*/
if (devmode == IEEE802154_DEVMODE_PANCOORD) if (devmode == IEEE802154_DEVMODE_PANCOORD)
{ {

View File

@ -448,7 +448,8 @@ static pthread_addr_t wpanlistener_framethread(pthread_addr_t arg)
FAR struct wpanlistener_s *handle = (FAR struct wpanlistener_s *)arg; FAR struct wpanlistener_s *handle = (FAR struct wpanlistener_s *)arg;
FAR struct wpanlistener_framereceiver_s *receiver; FAR struct wpanlistener_framereceiver_s *receiver;
struct mac802154dev_rxframe_s frame; struct mac802154dev_rxframe_s frame;
int i, ret; int ret;
int i;
while (handle->threadrun) while (handle->threadrun)
{ {

View File

@ -53,12 +53,12 @@
#if !defined(CONFIG_WPANLISTENER_NFRAMERECEIVERS) || CONFIG_WPANLISTENER_NFRAMERECEIVERS <= 0 #if !defined(CONFIG_WPANLISTENER_NFRAMERECEIVERS) || CONFIG_WPANLISTENER_NFRAMERECEIVERS <= 0
# undef CONFIG_WPANLISTENER_NFRAMERECEIVERS # undef CONFIG_WPANLISTENER_NFRAMERECEIVERS
# define CONFIG_WPANLISTENER_NFRAMERECEIVERS 3 # define CONFIG_WPANLISTENER_NFRAMERECEIVERS 3
#endif #endif
#if !defined(CONFIG_WPANLISTENER_NEVENTRECEIVERS) || CONFIG_WPANLISTENER_NEVENTRECEIVERS <= 0 #if !defined(CONFIG_WPANLISTENER_NEVENTRECEIVERS) || CONFIG_WPANLISTENER_NEVENTRECEIVERS <= 0
# undef CONFIG_WPANLISTENER_NEVENTRECEIVERS # undef CONFIG_WPANLISTENER_NEVENTRECEIVERS
# define CONFIG_WPANLISTENER_NEVENTRECEIVERS 3 # define CONFIG_WPANLISTENER_NEVENTRECEIVERS 3
#endif #endif
/**************************************************************************** /****************************************************************************
@ -142,10 +142,10 @@ struct wpanlistener_s
sq_queue_t eventreceivers_free; sq_queue_t eventreceivers_free;
sq_queue_t framereceivers_free; sq_queue_t framereceivers_free;
struct wpanlistener_framereceiver_s struct wpanlistener_framereceiver_s
framereceiver_pool[CONFIG_WPANLISTENER_NFRAMERECEIVERS]; framereceiver_pool[CONFIG_WPANLISTENER_NFRAMERECEIVERS];
struct wpanlistener_eventreceiver_s struct wpanlistener_eventreceiver_s
eventreceiver_pool[CONFIG_WPANLISTENER_NEVENTRECEIVERS]; eventreceiver_pool[CONFIG_WPANLISTENER_NEVENTRECEIVERS];
}; };
@ -167,7 +167,7 @@ struct wpanlistener_s
* OK on success; a negated errno on failure * OK on success; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_setup(FAR struct wpanlistener_s *handle, int fd); int wpanlistener_setup(FAR struct wpanlistener_s *handle, int fd);
@ -185,7 +185,7 @@ int wpanlistener_setup(FAR struct wpanlistener_s *handle, int fd);
* OK on success; a negated errno on failure * OK on success; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_start(FAR struct wpanlistener_s *handle); int wpanlistener_start(FAR struct wpanlistener_s *handle);
@ -203,7 +203,7 @@ int wpanlistener_start(FAR struct wpanlistener_s *handle);
* OK on success; a negated errno on failure * OK on success; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_stop(FAR struct wpanlistener_s *handle); int wpanlistener_stop(FAR struct wpanlistener_s *handle);
@ -224,12 +224,12 @@ int wpanlistener_stop(FAR struct wpanlistener_s *handle);
* arg - user specified argument to send to the callback * arg - user specified argument to send to the callback
* oneshot - whether the receiver is automatically unregistered after the * oneshot - whether the receiver is automatically unregistered after the
* first notification * first notification
* *
* Returned Value: * Returned Value:
* OK if successful; a negated errno on failure * OK if successful; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_add_framereceiver(FAR struct wpanlistener_s *handle, int wpanlistener_add_framereceiver(FAR struct wpanlistener_s *handle,
@ -258,7 +258,7 @@ int wpanlistener_add_framereceiver(FAR struct wpanlistener_s *handle,
* OK if successful; a negated errno on failure * OK if successful; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_add_eventreceiver(FAR struct wpanlistener_s *handle, int wpanlistener_add_eventreceiver(FAR struct wpanlistener_s *handle,
@ -281,7 +281,7 @@ int wpanlistener_add_eventreceiver(FAR struct wpanlistener_s *handle,
* OK on success; a negated errno on failure * OK on success; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_remove_framereceiver(FAR struct wpanlistener_s *handle, int wpanlistener_remove_framereceiver(FAR struct wpanlistener_s *handle,
@ -302,7 +302,7 @@ int wpanlistener_remove_framereceiver(FAR struct wpanlistener_s *handle,
* OK on success; a negated errno on failure * OK on success; a negated errno on failure
* *
* Assumptions: * Assumptions:
* *
****************************************************************************/ ****************************************************************************/
int wpanlistener_remove_eventreceiver(FAR struct wpanlistener_s *handle, int wpanlistener_remove_eventreceiver(FAR struct wpanlistener_s *handle,