Microchip® Advanced Software Framework

main.c File Reference

Single button controller application.

Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.

#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,
  TRANSMITTING
}
 

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)
 
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)
 
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_VEND_NOT_SPEC
Tx option - no vendor-specific data.
Definition: rf4ce.h:170
#define TXO_ACK_REQ
Tx option - ACK requested.
Definition: rf4ce.h:156
#define TXO_DST_ADDR_NET
Tx option - destination address: short.
Definition: rf4ce.h:150
#define TXO_UNICAST
Tx option - unicast.
Definition: rf4ce.h:146
#define TXO_SEC_REQ
Tx option - security requested.
Definition: rf4ce.h:160
#define TXO_MULTI_CH
Tx option - multi-channel transmission.
Definition: rf4ce.h:162
#define TXO_CH_NOT_SPEC
Tx option - channel not specified.
Definition: rf4ce.h:166

Referenced by app_task().

Enumerator
IDLE 
WARM_START 
COLD_START 
TRANSMITTING 

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
static key_state_t key_state_read ( key_id_t  key_no)
static

Read key_state.

Parameters
key_noKey to be read.

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

Referenced by app_task(), and main().

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(), NWK_SUCCESS, nwkcMinActivePeriod, pairing_ref, RX_DURATION_OFF, start_cmd_disc_cb(), SW_TIMEOUT_RELATIVE, and sw_timer_start().

Referenced by nlme_start_confirm().

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.

Referenced by vendor_data_ind().

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

References IDLE, node_status, PGM_READ_BLOCK, and zrc_cmd_disc_response().

Referenced by main().

uint8_t app_timer

Referenced by main(), and pbp_org_pair_confirm().

uint8_t pairing_ref = 0xFF
static