Microchip® Advanced Software Framework

wireless/avr2102_rf4control/apps/zrc/single_button_ctr/main.c File Reference
#include <asf.h>
#include "conf_board.h"
#include "common_sw_timer.h"
#include "keyboard.h"
#include "app_config.h"
#include "rf4ce.h"
#include "zrc.h"
#include "pb_pairing.h"
#include "vendor_data.h"
#include "nwk_config.h"

Macros

#define DEBOUNCE_TIME_US   200000
 
#define TX_OPTIONS
 

Typedefs

typedef enum node_status_tag node_status_t
 

Enumerations

enum  node_status_tag {
  IDLE,
  WARM_START,
  COLD_START,
  CONFIGURING_ATTRIBUTES,
  CONNECTING,
  TRANSMITTING,
  IDLE,
  WARM_START,
  COLD_START,
  TRANSMITTING,
  IDLE = 0,
  RESETTING,
  POWER_SAVE,
  STARTING,
  PUSH_BUTTON_PAIRING,
  CMD_DISCOVERING,
  ALL_IN_ONE_START,
  WARM_STARTING,
  PRINTING_PAIRING_TABLE,
  UNPAIRING,
  CH_AGILITY_EXECUTION,
  BASE_CHANNEL_CHANGE,
  GETTING_CH_AG_NIBS,
  IDLE = 0,
  RESETTING,
  POWER_SAVE,
  STARTING,
  PUSH_BUTTON_PAIRING,
  CMD_DISCOVERING,
  ALL_IN_ONE_START,
  WARM_STARTING,
  PRINTING_PAIRING_TABLE,
  UNPAIRING,
  CH_AGILITY_EXECUTION,
  BASE_CHANNEL_CHANGE,
  GETTING_CH_AG_NIBS,
  IDLE,
  WARM_START,
  COLD_START,
  TRANSMITTING,
  RESET,
  TRX_OFF_START,
  TRX_OFF_CONFIRM,
  TRX_ON_START,
  IDLE,
  WARM_START,
  COLD_START,
  CONFIGURING_ATTRIBUTES,
  CONNECTING,
  TRANSMITTING,
  IDLE,
  WARM_START,
  COLD_START,
  CONFIGURING_ATTRIBUTES,
  CONNECTING,
  TRANSMITTING,
  IDLE = 0,
  RESETTING,
  POWER_SAVE,
  STARTING,
  ZID_CONNECTING,
  ALL_IN_ONE_START,
  WARM_STARTING,
  PRINTING_PAIRING_TABLE,
  UNPAIRING
}
 

Functions

static void app_task (void)
 Application task and state machine. More...
 
 FLASH_DECLARE (uint16_t VendorIdentifier)
 
 FLASH_DECLARE (uint8_t vendor_string[7])
 
 FLASH_DECLARE (uint8_t app_user_string[15])
 
 FLASH_DECLARE (uint8_t supported_cec_cmds[32])
 
static void indicate_fault_behavior (void)
 Indicating malfunction. More...
 
static key_state_t key_state_read (key_id_t key_no)
 Read key_state. More...
 
int main (void)
 Main function of the Single Button Controller application. More...
 
static void nlme_reset_confirm (nwk_enum_t Status)
 
void nlme_rx_enable_confirm (nwk_enum_t Status)
 NLME-RX-ENABLE.confirm primitive API. More...
 
static void nlme_start_confirm (nwk_enum_t Status)
 
static void pbp_org_pair_confirm (nwk_enum_t Status, uint8_t PairingRef)
 Push button pairing confirm; target and controller use. More...
 
static void start_cmd_disc_cb (void *callback_parameter)
 
void vendor_app_alive_req (void)
 Vendor-spefic callback; handles reaction to incoming alive request. More...
 
void vendor_data_ind (uint8_t PairingRef, uint16_t VendorId, uint8_t nsduLength, uint8_t *nsdu, uint8_t RxLinkQuality, uint8_t RxFlags)
 Post processing of the vendor data response. More...
 
static void zrc_cmd_confirm (nwk_enum_t Status, uint8_t PairingRef, cec_code_t RcCmd)
 ZRC command confirm. More...
 
static void zrc_cmd_disc_confirm (nwk_enum_t Status, uint8_t PairingRef, uint8_t *SupportedCmd)
 
static void zrc_cmd_disc_indication (uint8_t PairingRef)
 

Variables

uint8_t app_timer
 
static node_status_t node_status
 
static uint8_t pairing_ref = 0xFF
 
zrc_indication_callback_t zrc_ind
 

#define DEBOUNCE_TIME_US   200000

Referenced by app_task().

#define TX_OPTIONS
Value:
#define TXO_ACK_REQ
Tx option - ACK requested.
Definition: atmel_rf4ce/lib/rf4ce.h:71
#define TXO_DST_ADDR_NET
Tx option - destination address: short.
Definition: atmel_rf4ce/lib/rf4ce.h:65
#define TXO_MULTI_CH
Tx option - multi-channel transmission.
Definition: atmel_rf4ce/lib/rf4ce.h:77
#define TXO_VEND_NOT_SPEC
Tx option - no vendor-specific data.
Definition: atmel_rf4ce/lib/rf4ce.h:85
#define TXO_CH_NOT_SPEC
Tx option - channel not specified.
Definition: atmel_rf4ce/lib/rf4ce.h:81
#define TXO_SEC_REQ
Tx option - security requested.
Definition: atmel_rf4ce/lib/rf4ce.h:75
#define TXO_UNICAST
Tx option - unicast.
Definition: atmel_rf4ce/lib/rf4ce.h:61

Referenced by app_task().

Enumerator
IDLE 
WARM_START 
COLD_START 
CONFIGURING_ATTRIBUTES 
CONNECTING 
TRANSMITTING 
IDLE 
WARM_START 
COLD_START 
TRANSMITTING 
IDLE 
RESETTING 
POWER_SAVE 
STARTING 
PUSH_BUTTON_PAIRING 
CMD_DISCOVERING 
ALL_IN_ONE_START 
WARM_STARTING 
PRINTING_PAIRING_TABLE 
UNPAIRING 
CH_AGILITY_EXECUTION 
BASE_CHANNEL_CHANGE 
GETTING_CH_AG_NIBS 
IDLE 
RESETTING 
POWER_SAVE 
STARTING 
PUSH_BUTTON_PAIRING 
CMD_DISCOVERING 
ALL_IN_ONE_START 
WARM_STARTING 
PRINTING_PAIRING_TABLE 
UNPAIRING 
CH_AGILITY_EXECUTION 
BASE_CHANNEL_CHANGE 
GETTING_CH_AG_NIBS 
IDLE 
WARM_START 
COLD_START 
TRANSMITTING 
RESET 
TRX_OFF_START 
TRX_OFF_CONFIRM 
TRX_ON_START 
IDLE 
WARM_START 
COLD_START 
CONFIGURING_ATTRIBUTES 
CONNECTING 
TRANSMITTING 
IDLE 
WARM_START 
COLD_START 
CONFIGURING_ATTRIBUTES 
CONNECTING 
TRANSMITTING 
IDLE 
RESETTING 
POWER_SAVE 
STARTING 
ZID_CONNECTING 
ALL_IN_ONE_START 
WARM_STARTING 
PRINTING_PAIRING_TABLE 
UNPAIRING 

FLASH_DECLARE ( uint16_t  VendorIdentifier)
FLASH_DECLARE ( uint8_t  vendor_string[7])
FLASH_DECLARE ( uint8_t  app_user_string[15])
FLASH_DECLARE ( uint8_t  supported_cec_cmds[32])
static void indicate_fault_behavior ( void  )
static

Indicating malfunction.

References delay_ms, LED0, LED_Off, and LED_On.

Referenced by main(), pbp_org_pair_confirm(), and zrc_cmd_confirm().

static key_state_t key_state_read ( key_id_t  key_no)
static

Read key_state.

Parameters
key_noKey to be read.

References ioport_get_pin_level(), KEY_PRESSED, KEY_RELEASED, and SELECT_KEY.

Referenced by app_task(), and main().

static void nlme_reset_confirm ( nwk_enum_t  Status)
static
static void nlme_start_confirm ( nwk_enum_t  Status)
static
static void pbp_org_pair_confirm ( nwk_enum_t  Status,
uint8_t  PairingRef 
)
static

Push button pairing confirm; target and controller use.

The push button pairing confirm is a callback that provides the status of the push pairing request.

Parameters
StatusStatus of the last pairing transaction
PairingRefIf pairing was successful, PairingRef contains assigned pairing reference.

References aplcMinTargetBlackoutPeriod_us, app_timer, FUNC_PTR, indicate_fault_behavior(), nlme_rx_enable_confirm(), nlme_rx_enable_request(), NULL, NWK_SUCCESS, nwkcMinActivePeriod, pairing_ref, RX_DURATION_OFF, start_cmd_disc_cb(), SW_TIMEOUT_RELATIVE, and sw_timer_start().

static void start_cmd_disc_cb ( void *  callback_parameter)
static
void vendor_app_alive_req ( void  )

Vendor-spefic callback; handles reaction to incoming alive request.

Vendor data alive request.

References delay_ms, LED0, LED_Off, and LED_On.

static void vendor_data_ind ( uint8_t  PairingRef,
uint16_t  VendorId,
uint8_t  nsduLength,
uint8_t *  nsdu,
uint8_t  RxLinkQuality,
uint8_t  RxFlags 
)

Post processing of the vendor data response.

Parameters
PairingRefPairing reference
VendorIdVendor ID.
nsduLengthLength of the payload.
nsduActual payload
RxLinkQualityLink quality of received packet.
RxFlagsRx Flags.

References ALIVE_RESP, BATTERY_STATUS_RESP, FUNC_PTR, FW_VERSION_RESP, IDLE, nlme_rx_enable_confirm(), nlme_rx_enable_request(), node_status, PGM_READ_WORD, POWER_SAVE, RX_DURATION_INFINITY, and RX_ON_RESP.

static void zrc_cmd_confirm ( nwk_enum_t  Status,
uint8_t  PairingRef,
cec_code_t  RcCmd 
)
static

ZRC command confirm.

The ZRC comand confirm callback provides information about the status of the last command request/transmission.

Parameters
StatusNWK_SUCCESS if transmission was successful
PairingRefPairing reference
RcCmdSent RC command

References IDLE, indicate_fault_behavior(), LED0, LED_Off, node_status, and NWK_SUCCESS.

Referenced by app_task().

static void zrc_cmd_disc_confirm ( nwk_enum_t  Status,
uint8_t  PairingRef,
uint8_t *  SupportedCmd 
)
static
static void zrc_cmd_disc_indication ( uint8_t  PairingRef)
static

uint8_t app_timer

Referenced by main(), and pbp_org_pair_confirm().

node_status_t node_status
static

Referenced by app_task(), main(), and zrc_cmd_confirm().

uint8_t pairing_ref = 0xFF
static