Split the radio parameter ADDRESS_HANDLER into RX_MODE and TX_MODE.

This commit is contained in:
Niclas Finne 2014-04-07 16:11:30 +02:00
parent 8c0cdcfaec
commit 8ea9cb7693

View file

@ -108,9 +108,19 @@ enum {
filter. */ filter. */
RADIO_PARAM_16BIT_ADDR, RADIO_PARAM_16BIT_ADDR,
/* Address handler take care of address filtering and sending auto-ACK. /*
(See below for more information.) */ * Radio receiver mode determines if the radio has address filter
RADIO_PARAM_ADDRESS_HANDLER, * (RADIO_RX_MODE_ADDRESS_FILTER) and auto-ACK (RADIO_RX_MODE_AUTOACK)
* enabled. This parameter is set as a bit mask.
*/
RADIO_PARAM_RX_MODE,
/*
* Radio transmission mode determines if the radio has send on CCA
* (RADIO_TX_MODE_SEND_ON_CCA) enabled or not. This parameter is set
* as a bit mask.
*/
RADIO_PARAM_TX_MODE,
/* /*
* Transmission power in dBm. The values can range from * Transmission power in dBm. The values can range from
@ -169,21 +179,29 @@ enum {
}; };
/** /**
* The address handler is an abstraction responsible for address * The radio reception mode controls address filtering and automatic
* filtering and automatic transmission of acknowledgements in the * transmission of acknowledgements in the radio (if such operations
* radio (if such operations are supported by the radio). * are supported by the radio). A single parameter is used to allow
* setting these features simultaneously as an atomic operation.
* *
* There are different options that can be used like address filter * To enable both address filter and transmissions of automatic
* on/off, autoack on/off. A single parameter is used to set them * acknowledgments:
* simultaneous as an atomic operation.
* *
* To enable both address filter and transmissions of autoack: * NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE,
* * RADIO_RX_MODE_ADDRESS_FILTER | RADIO_RX_MODE_AUTOACK);
* NETSTACK_RADIO.set_value(RADIO_PARAM_ADDRESS_HANDLER,
* RADIO_ADDRESS_HANDLER_FILTER | RADIO_ADDRESS_HANDLER_AUTOACK);
*/ */
#define RADIO_ADDRESS_HANDLER_FILTER (1 << 0) #define RADIO_RX_MODE_ADDRESS_FILTER (1 << 0)
#define RADIO_ADDRESS_HANDLER_AUTOACK (1 << 1) #define RADIO_RX_MODE_AUTOACK (1 << 1)
/**
* The radio transmission mode controls whether transmissions should
* be done using clear channel assessment (if supported by the
* radio). If send-on-CCA is enabled, the radio's send function will
* wait for a radio-specific time window for the channel to become
* clear. If this does not happen, the send function will return
* RADIO_TX_COLLISION.
*/
#define RADIO_TX_MODE_SEND_ON_CCA (1 << 0)
/* Radio return values when setting or getting radio parameters. */ /* Radio return values when setting or getting radio parameters. */
typedef enum { typedef enum {
@ -260,6 +278,5 @@ struct radio_driver {
#endif /* RADIO_H_ */ #endif /* RADIO_H_ */
/** @} */ /** @} */
/** @} */ /** @} */