Loading...
Searching...
No Matches
types.h File Reference

Definition of internal types used by LWMAC. More...

Detailed Description

Definition of internal types used by LWMAC.

Author
Daniel Krebs githu.nosp@m.b@da.nosp@m.niel-.nosp@m.kreb.nosp@m.s.net
Shuguo Zhuo shugu.nosp@m.o.zh.nosp@m.uo@in.nosp@m.ria..nosp@m.fr

Definition in file types.h.

#include "msg.h"
#include "xtimer.h"
#include "net/gnrc/lwmac/hdr.h"
+ Include dependency graph for types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gnrc_lwmac_timeout_t
 LWMAC timeout structure. More...
 
struct  lwmac
 LWMAC specific structure for storing internal states. More...
 

Macros

#define GNRC_LWMAC_TX_STATE_INITIAL   GNRC_LWMAC_TX_STATE_STOPPED
 Static initializer for gnrc_lwmac_tx_state_t.
 
#define GNRC_LWMAC_RX_STATE_INITIAL   GNRC_LWMAC_RX_STATE_STOPPED
 Static initializer for gnrc_lwmac_rx_state_t.
 
#define GNRC_LWMAC_PHASE_UNINITIALIZED   (0)
 LWMAC uninitialized phase value.
 
#define GNRC_LWMAC_PHASE_MAX   (-1)
 LWMAC max phase value.
 

Typedefs

typedef struct lwmac gnrc_lwmac_t
 LWMAC specific structure for storing internal states.
 

Enumerations

enum  gnrc_lwmac_state_t {
  GNRC_LWMAC_UNDEF = -1 , GNRC_LWMAC_STOPPED , GNRC_LWMAC_START , GNRC_LWMAC_STOP ,
  GNRC_LWMAC_RESET , GNRC_LWMAC_LISTENING , GNRC_LWMAC_RECEIVING , GNRC_LWMAC_TRANSMITTING ,
  GNRC_LWMAC_SLEEPING , GNRC_LWMAC_STATE_COUNT
}
 Internal states of LWMAC. More...
 
enum  gnrc_lwmac_tx_state_t {
  GNRC_LWMAC_TX_STATE_STOPPED , GNRC_LWMAC_TX_STATE_INIT , GNRC_LWMAC_TX_STATE_SEND_BROADCAST , GNRC_LWMAC_TX_STATE_SEND_WR ,
  GNRC_LWMAC_TX_STATE_WAIT_WR_SENT , GNRC_LWMAC_TX_STATE_WAIT_FOR_WA , GNRC_LWMAC_TX_STATE_SEND_DATA , GNRC_LWMAC_TX_STATE_WAIT_FEEDBACK ,
  GNRC_LWMAC_TX_STATE_SUCCESSFUL , GNRC_LWMAC_TX_STATE_FAILED
}
 TX states of LWMAC. More...
 
enum  gnrc_lwmac_rx_state_t {
  GNRC_LWMAC_RX_STATE_STOPPED , GNRC_LWMAC_RX_STATE_INIT , GNRC_LWMAC_RX_STATE_WAIT_FOR_WR , GNRC_LWMAC_RX_STATE_SEND_WA ,
  GNRC_LWMAC_RX_STATE_WAIT_WA_SENT , GNRC_LWMAC_RX_STATE_WAIT_FOR_DATA , GNRC_LWMAC_RX_STATE_SUCCESSFUL , GNRC_LWMAC_RX_STATE_FAILED
}
 RX states of LWMAC. More...
 
enum  gnrc_lwmac_timeout_type_t {
  GNRC_LWMAC_TIMEOUT_DISABLED , GNRC_LWMAC_TIMEOUT_WR , GNRC_LWMAC_TIMEOUT_NO_RESPONSE , GNRC_LWMAC_TIMEOUT_DATA ,
  GNRC_LWMAC_TIMEOUT_WAIT_DEST_WAKEUP , GNRC_LWMAC_TIMEOUT_WAKEUP_PERIOD , GNRC_LWMAC_TIMEOUT_NEXT_BROADCAST , GNRC_LWMAC_TIMEOUT_BROADCAST_END
}
 LWMAC timeout types. More...
 
#define GNRC_LWMAC_EVENT_RTT_TYPE   (0x4300)
 LWMAC RTT event type.
 
#define GNRC_LWMAC_EVENT_RTT_START   (0x4301)
 LWMAC RTT start event type.
 
#define GNRC_LWMAC_EVENT_RTT_STOP   (0x4302)
 LWMAC RTT stop event type.
 
#define GNRC_LWMAC_EVENT_RTT_PAUSE   (0x4303)
 LWMAC RTT pause event type.
 
#define GNRC_LWMAC_EVENT_RTT_RESUME   (0x4304)
 LWMAC RTT resume event type.
 
#define GNRC_LWMAC_EVENT_RTT_WAKEUP_PENDING   (0x4305)
 LWMAC RTT wakeup pending event type.
 
#define GNRC_LWMAC_EVENT_RTT_SLEEP_PENDING   (0x4306)
 LWMAC RTT sleep pending event type.
 
#define GNRC_LWMAC_EVENT_TIMEOUT_TYPE   (0x4400)
 LWMAC timeout event type.
 
#define GNRC_LWMAC_DUTYCYCLE_ACTIVE   (0x01)
 LWMAC duty-cycle active flag.
 
#define GNRC_LWMAC_NEEDS_RESCHEDULE   (0x02)
 LWMAC needs reschedule flag.
 
#define GNRC_LWMAC_RADIO_IS_ON   (0x04)
 LWMAC check radio's on/off state flag.
 
#define CONFIG_GNRC_LWMAC_TIMEOUT_COUNT   (3U)
 The default largest number of parallel timeouts in LWMAC.
 

Macro Definition Documentation

◆ GNRC_LWMAC_DUTYCYCLE_ACTIVE

#define GNRC_LWMAC_DUTYCYCLE_ACTIVE   (0x01)

LWMAC duty-cycle active flag.

Keep track of duty cycling to avoid late RTT events after stopping.

Definition at line 78 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_PAUSE

#define GNRC_LWMAC_EVENT_RTT_PAUSE   (0x4303)

LWMAC RTT pause event type.

Definition at line 51 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_RESUME

#define GNRC_LWMAC_EVENT_RTT_RESUME   (0x4304)

LWMAC RTT resume event type.

Definition at line 56 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_SLEEP_PENDING

#define GNRC_LWMAC_EVENT_RTT_SLEEP_PENDING   (0x4306)

LWMAC RTT sleep pending event type.

Definition at line 66 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_START

#define GNRC_LWMAC_EVENT_RTT_START   (0x4301)

LWMAC RTT start event type.

Definition at line 41 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_STOP

#define GNRC_LWMAC_EVENT_RTT_STOP   (0x4302)

LWMAC RTT stop event type.

Definition at line 46 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_TYPE

#define GNRC_LWMAC_EVENT_RTT_TYPE   (0x4300)

LWMAC RTT event type.

Definition at line 36 of file types.h.

◆ GNRC_LWMAC_EVENT_RTT_WAKEUP_PENDING

#define GNRC_LWMAC_EVENT_RTT_WAKEUP_PENDING   (0x4305)

LWMAC RTT wakeup pending event type.

Definition at line 61 of file types.h.

◆ GNRC_LWMAC_EVENT_TIMEOUT_TYPE

#define GNRC_LWMAC_EVENT_TIMEOUT_TYPE   (0x4400)

LWMAC timeout event type.

Definition at line 71 of file types.h.

◆ GNRC_LWMAC_NEEDS_RESCHEDULE

#define GNRC_LWMAC_NEEDS_RESCHEDULE   (0x02)

LWMAC needs reschedule flag.

Used internally for rescheduling state machine update, e.g. after state transition caused in update.

Definition at line 86 of file types.h.

◆ GNRC_LWMAC_PHASE_MAX

#define GNRC_LWMAC_PHASE_MAX   (-1)

LWMAC max phase value.

Definition at line 169 of file types.h.

◆ GNRC_LWMAC_PHASE_UNINITIALIZED

#define GNRC_LWMAC_PHASE_UNINITIALIZED   (0)

LWMAC uninitialized phase value.

Definition at line 164 of file types.h.

◆ GNRC_LWMAC_RADIO_IS_ON

#define GNRC_LWMAC_RADIO_IS_ON   (0x04)

LWMAC check radio's on/off state flag.

Definition at line 91 of file types.h.

◆ GNRC_LWMAC_RX_STATE_INITIAL

#define GNRC_LWMAC_RX_STATE_INITIAL   GNRC_LWMAC_RX_STATE_STOPPED

Static initializer for gnrc_lwmac_rx_state_t.

Definition at line 159 of file types.h.

◆ GNRC_LWMAC_TX_STATE_INITIAL

#define GNRC_LWMAC_TX_STATE_INITIAL   GNRC_LWMAC_TX_STATE_STOPPED

Static initializer for gnrc_lwmac_tx_state_t.

Definition at line 140 of file types.h.

Enumeration Type Documentation

◆ gnrc_lwmac_rx_state_t

RX states of LWMAC.

Enumerator
GNRC_LWMAC_RX_STATE_STOPPED 

Rx schedule stopped.

GNRC_LWMAC_RX_STATE_INIT 

Initiate reception.

GNRC_LWMAC_RX_STATE_WAIT_FOR_WR 

Wait for a wakeup request.

GNRC_LWMAC_RX_STATE_SEND_WA 

Send wakeup ackknowledge to requesting node.

GNRC_LWMAC_RX_STATE_WAIT_WA_SENT 

Wait until WA sent to set timeout.

GNRC_LWMAC_RX_STATE_WAIT_FOR_DATA 

Wait for actual payload data.

GNRC_LWMAC_RX_STATE_SUCCESSFUL 

Recption has finished successfully.

GNRC_LWMAC_RX_STATE_FAILED 

Reception over, but nothing received.

Definition at line 145 of file types.h.

◆ gnrc_lwmac_state_t

Internal states of LWMAC.

Enumerator
GNRC_LWMAC_UNDEF 

Undefined state of LWMAC.

GNRC_LWMAC_STOPPED 

LWMAC's main state machine has been stopped.

GNRC_LWMAC_START 

Start LWMAC's main state machine.

GNRC_LWMAC_STOP 

Stop LWMAC's main state machine.

GNRC_LWMAC_RESET 

Reset LWMAC's main state machine.

GNRC_LWMAC_LISTENING 

Listen the channel for receiving packets.

GNRC_LWMAC_RECEIVING 

RX is handled in own state machine.

GNRC_LWMAC_TRANSMITTING 

TX is handled in own state machine.

GNRC_LWMAC_SLEEPING 

Turn off radio to conserve power.

GNRC_LWMAC_STATE_COUNT 

Count of LWMAC's states.

Definition at line 108 of file types.h.

◆ gnrc_lwmac_timeout_type_t

LWMAC timeout types.

Enumerator
GNRC_LWMAC_TIMEOUT_DISABLED 

Timeout is disabled.

GNRC_LWMAC_TIMEOUT_WR 

WR timeout, waiting WA.

GNRC_LWMAC_TIMEOUT_NO_RESPONSE 

Maximum WR duration timeout awaiting WA.

GNRC_LWMAC_TIMEOUT_DATA 

Timeout awaiting data packet from receiver.

GNRC_LWMAC_TIMEOUT_WAIT_DEST_WAKEUP 

Timeout for waiting receiver's wake-up phase.

GNRC_LWMAC_TIMEOUT_WAKEUP_PERIOD 

Wake up period timeout for going to sleep.

GNRC_LWMAC_TIMEOUT_NEXT_BROADCAST 

Timeout for waiting to send the next broadcast packet.

GNRC_LWMAC_TIMEOUT_BROADCAST_END 

Timeout awaiting the end of the whole broadcast period.

Definition at line 174 of file types.h.

◆ gnrc_lwmac_tx_state_t

TX states of LWMAC.

Enumerator
GNRC_LWMAC_TX_STATE_STOPPED 

Tx schedule stopped, stop sending packet.

GNRC_LWMAC_TX_STATE_INIT 

Initiate transmission.

GNRC_LWMAC_TX_STATE_SEND_BROADCAST 

directly goes to SUCCESSFUL or FAILED when finished

GNRC_LWMAC_TX_STATE_SEND_WR 

Send a wakeup request.

GNRC_LWMAC_TX_STATE_WAIT_WR_SENT 

Wait until WR sent to set timeout.

GNRC_LWMAC_TX_STATE_WAIT_FOR_WA 

Wait for dest node's wakeup ackknowledge.

GNRC_LWMAC_TX_STATE_SEND_DATA 

Send the actual payload data.

GNRC_LWMAC_TX_STATE_WAIT_FEEDBACK 

Wait if packet was ACKed.

GNRC_LWMAC_TX_STATE_SUCCESSFUL 

Transmission has finished successfully.

GNRC_LWMAC_TX_STATE_FAILED 

Payload data couldn't be delivered to dest.

Definition at line 124 of file types.h.