Microchip® Advanced Software Framework

zrc.h File Reference

API for ZRC profile includes cmd discovery and RC commands.

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

#include "rf4ce.h"

Data Structures

struct  zrc_cmd_frm_tag
 ZRC command frame structure. More...
 
struct  zrc_indication_callback
 struct for zrc indication callback. More...
 

Macros

#define aplcKeyExchangeTransferCount_def   aplcMinKeyExchangeTransferCount
 Default value of the key exchange transfer count. More...
 
#define aplcMaxCmdDiscRxOnDuration   200 /* ms */
 The maximum duration that the receiver is enabled on a controller after pairing to receive any command discovery request command frames. More...
 
#define aplcMaxKeyRepeatInterval_ms   100 /* ms */
 The maximum time between consecutive user control repeated command frame transmissions. More...
 
#define aplcMaxPairIndicationWaitTime   1.2 /* second */
 The maximum amount of time a device waits after receiving a successful NLME-AUTO-DISCOVERY.confirm primitive for a pair indication to arrive from the pairing initiator. More...
 
#define aplcMaxPairIndicationWaitTime_us
 The maximum amount of time a device waits after receiving a successful NLME-AUTO-DISCOVERY.confirm primitive for a pair indication to arrive from the pairing initiator. More...
 
#define aplcMaxResponseWaitTime   200 /* ms */
 The maximum time a device shall wait for a response command frame following a request command frame. More...
 
#define aplcMaxResponseWaitTime_us   (aplcMaxResponseWaitTime * 1000L)
 The maximum time a device shall wait for a response command frame following a request command frame. More...
 
#define aplcMinKeyExchangeTransferCount   3
 The minimum value of the KeyExTransferCount parameter passed to the pair request primitive during the push button pairing procedure. More...
 
#define aplcMinTargetBlackoutPeriod   500 /* ms */
 The minimum amount of time a device must wait after a successful pairing attempt with a target before attempting command discovery. More...
 
#define aplcMinTargetBlackoutPeriod_us
 The minimum amount of time a device must wait after a successful pairing attempt with a target before attempting command discovery. More...
 
#define aplKeyRepeatInterval_def   (aplcMaxKeyRepeatInterval_ms)
 Default value of the key repeat interval. More...
 
#define aplKeyRepeatWaitTime_def   (2 * aplcMaxKeyRepeatInterval_ms)
 Default value of the key repeat wait time. More...
 
#define AUTO_DISC_DURATION_SYM   0x1C9C38
 The automatic discovery response mode duration shall be set to 0x1c9c38 (30s). More...
 
#define DISCOVERY_DURATION   0x00186A
 ZRC profile constants. More...
 
#define DISCOVERY_REPETITION_INTERVAL   0x00F424
 Default value for the discovery repetition interval. More...
 
#define MAX_DISCOVERY_REPETITIONS   0x1E
 Default value for maximum number of times the discovery request command is sent. More...
 
#define MAX_REPORTED_NODE_DESCRIPTORS   1
 Default value for Number of reported node descriptor received during discovery process. More...
 

Typedefs

typedef enum cec_code_tag cec_code_t
 Enums used for the RC command codes / CEC commands from HDMI spec. More...
 
typedef void(* vendor_data_ind_cb_t )(uint8_t PairingRef, uint16_t VendorId, uint8_t nsduLength, uint8_t *nsdu, uint8_t RxLinkQuality, uint8_t RxFlags)
 
typedef enum zrc_cmd_code_tag zrc_cmd_code_t
 Enums used for ZRC command codes. More...
 
typedef void(* zrc_cmd_disc_confirm_cb_t )(nwk_enum_t Status, uint8_t PairingRef, uint8_t *SupportedCmd)
 Callback ZRC command discovery confirm. More...
 
typedef void(* zrc_cmd_disc_indication_cb_t )(uint8_t PairingRef)
 Callback function to the application indicating the status the sent ZRC command request. More...
 
typedef struct zrc_cmd_frm_tag zrc_cmd_frm_t
 ZRC command frame structure. More...
 
typedef void(* zrc_cmd_indication_cb_t )(uint8_t PairingRef, uint8_t nsduLength, uint8_t *nsdu, uint8_t RxLinkQuality, uint8_t RxFlags)
 API indicating a received the command to ZRC application. More...
 
typedef struct
zrc_indication_callback 
zrc_indication_callback_t
 struct for zrc indication callback. More...
 

Enumerations

enum  cec_code_tag {
  SELECT = 0x00,
  UP = 0x01,
  DOWN = 0x02,
  LEFT = 0x03,
  RIGHT = 0x04,
  RIGHT_UP = 0x05,
  RIGHT_DOWN = 0x06,
  LEFT_UP = 0x07,
  LEFT_DOWN = 0x08,
  ROOT_MENU = 0x09,
  SETUP_MENU = 0x0a,
  CONTENTS_MENU = 0x0b,
  FAVORITE_MENU = 0x0c,
  EXIT = 0x0d,
  MEDIA_TOP_MENU = 0x10,
  MEDIA_CONTEXT_MENU = 0x11,
  NUMBER_SHIFT = 0x1d,
  NUMBER_11 = 0x1e,
  NUMBER_12 = 0x1f,
  NUMBER_0 = 0x20,
  NUMBER_1 = 0x21,
  NUMBER_2 = 0x22,
  NUMBER_3 = 0x23,
  NUMBER_4 = 0x24,
  NUMBER_5 = 0x25,
  NUMBER_6 = 0x26,
  NUMBER_7 = 0x27,
  NUMBER_8 = 0x28,
  NUMBER_9 = 0x29,
  DOT = 0x2a,
  ENTER = 0x2b,
  CLEAR = 0x2c,
  NEXT_FAVORITE = 0x2f,
  CHANNEL_UP = 0x30,
  CHANNEL_DOWN = 0x31,
  PREVIOUS_CHANNEL = 0x32,
  SOUND_SELECT = 0x33,
  INPUT_SELECT = 0x34,
  DISPLAY_INFORMATION = 0x35,
  HELP = 0x36,
  PAGE_UP = 0x37,
  PAGE_DOWN = 0x38,
  POWER = 0x40,
  VOLUME_UP = 0x41,
  VOLUME_DOWN = 0x42,
  MUTE = 0x43,
  PLAY = 0x44,
  STOP = 0x45,
  PAUSE = 0x46,
  RECORD = 0x47,
  REWIND = 0x48,
  FAST_FORWARD = 0x49,
  EJECT = 0x4a,
  FORWARD = 0x4b,
  BACKWARD = 0x4c,
  STOP_RECORD = 0x4d,
  PAUSE_RECORD = 0x4e,
  ANGLE = 0x50,
  SUB_PICTURE = 0x51,
  VIDEO_ON_DEMAND = 0x52,
  ELECTRONIC_PROGRAM_GUIDE = 0x53,
  TIMER_PROGRAMMING = 0x54,
  INITIAL_CONFIGURATION = 0x55,
  SELECT_BROADCAST_TYPE = 0x56,
  SELECT_SOUND_PRESENTATION = 0x57,
  PLAY_FUNCTION = 0x60,
  PAUSE_PLAY_FUNCTION = 0x61,
  RECORD_FUNCTION = 0x62,
  PAUSE_RECORD_FUNCTION = 0x63,
  STOP_FUNCTION = 0x64,
  MUTE_FUNCTION = 0x65,
  RESTORE_VOLUME_FUNCTION = 0x66,
  TUNE_FUNCTION = 0x67,
  SELECT_MEDIA_FUNCTION = 0x68,
  SELECT_AV_INPUT_FUNCTION = 0x69,
  SELECT_AUDIO_INPUT_FUNCTION = 0x6a,
  POWER_TOGGLE_FUNCTION = 0x6b,
  POWER_OFF_FUNCTION = 0x6c,
  POWER_ON_FUNCTION = 0x6d,
  F1_BLUE = 0x71,
  F2_RED = 0x72,
  F3_GREEN = 0x73,
  F4_YELLOW = 0x74,
  F5 = 0x75,
  DATA = 0x76
}
 Enums used for the RC command codes / CEC commands from HDMI spec. More...
 
enum  zrc_cmd_code_tag {
  USER_CONTROL_IDLE = 0x00,
  USER_CONTROL_PRESSED = 0x01,
  USER_CONTROL_REPEATED = 0x02,
  USER_CONTROL_RELEASED = 0x03,
  CMD_DISCOVERY_REQUEST = 0x04,
  CMD_DISCOVERY_RESPONSE = 0x05
}
 Enums used for ZRC command codes. More...
 

Functions

void register_zrc_indication_callback (zrc_indication_callback_t *zrc_ind_callback)
 Registering zrc indication callback. More...
 
bool zrc_cmd_disc_request (uint8_t PairingRef, FUNC_PTR confirm_cb)
 Initialites the command transmission from the application. More...
 
bool zrc_cmd_disc_response (uint8_t PairingRef, uint8_t *SupportedCmd)
 ZRC command discovery response. More...
 
char * zrc_print_rc_cmd_text (uint8_t command)
 Prints RC command code text; used for example apps and debugging. More...
 

#define aplcKeyExchangeTransferCount_def   aplcMinKeyExchangeTransferCount

Default value of the key exchange transfer count.

#define aplcMaxCmdDiscRxOnDuration   200 /* ms */

The maximum duration that the receiver is enabled on a controller after pairing to receive any command discovery request command frames.

#define aplcMaxKeyRepeatInterval_ms   100 /* ms */

The maximum time between consecutive user control repeated command frame transmissions.

#define aplcMaxPairIndicationWaitTime   1.2 /* second */

The maximum amount of time a device waits after receiving a successful NLME-AUTO-DISCOVERY.confirm primitive for a pair indication to arrive from the pairing initiator.

Unit is seconds.

#define aplcMaxPairIndicationWaitTime_us
Value:
1000000L)
#define aplcMaxPairIndicationWaitTime
The maximum amount of time a device waits after receiving a successful NLME-AUTO-DISCOVERY.confirm primitive for a pair indication to arrive from the pairing initiator.
Definition: zrc.h:84

The maximum amount of time a device waits after receiving a successful NLME-AUTO-DISCOVERY.confirm primitive for a pair indication to arrive from the pairing initiator.

Unit is micro seconds.

#define aplcMaxResponseWaitTime   200 /* ms */

The maximum time a device shall wait for a response command frame following a request command frame.

Unit is milli seconds.

#define aplcMaxResponseWaitTime_us   (aplcMaxResponseWaitTime * 1000L)

The maximum time a device shall wait for a response command frame following a request command frame.

Unit is micro seconds.

#define aplcMinKeyExchangeTransferCount   3

The minimum value of the KeyExTransferCount parameter passed to the pair request primitive during the push button pairing procedure.

#define aplcMinTargetBlackoutPeriod   500 /* ms */

The minimum amount of time a device must wait after a successful pairing attempt with a target before attempting command discovery.

Unit is milli seconds.

#define aplcMinTargetBlackoutPeriod_us
Value:
1000L)
#define aplcMinTargetBlackoutPeriod
The minimum amount of time a device must wait after a successful pairing attempt with a target before...
Definition: zrc.h:109

The minimum amount of time a device must wait after a successful pairing attempt with a target before attempting command discovery.

Unit is micro seconds.

Referenced by pbp_org_pair_confirm().

#define aplKeyRepeatInterval_def   (aplcMaxKeyRepeatInterval_ms)

Default value of the key repeat interval.

#define aplKeyRepeatWaitTime_def   (2 * aplcMaxKeyRepeatInterval_ms)

Default value of the key repeat wait time.

#define AUTO_DISC_DURATION_SYM   0x1C9C38

The automatic discovery response mode duration shall be set to 0x1c9c38 (30s).

#define DISCOVERY_REPETITION_INTERVAL   0x00F424

Default value for the discovery repetition interval.

#define MAX_DISCOVERY_REPETITIONS   0x1E

Default value for maximum number of times the discovery request command is sent.

#define MAX_REPORTED_NODE_DESCRIPTORS   1

Default value for Number of reported node descriptor received during discovery process.

typedef void(* vendor_data_ind_cb_t)(uint8_t PairingRef, uint16_t VendorId, uint8_t nsduLength, uint8_t *nsdu, uint8_t RxLinkQuality, uint8_t RxFlags)

ZRC command frame structure.

bool zrc_cmd_disc_response ( uint8_t  PairingRef,
uint8_t *  SupportedCmd 
)

ZRC command discovery response.

The command discovery response allows a device to answer to an incoming command discovery request.

Parameters
PairingRefPairing reference used for the command discovery request
SupportedCmdPointer to 32 byte array containing supported CEC commands
Returns
true if request has been added to NHLE-NWK queue successfully; else false

ZRC command discovery response.

Parameters
PairingRefpairing ref of the originator device.
SupportedCmdAddress of provided 32 byte array containing supported command codes
Returns
true if cmd discovery response is sent using nlde_data_req.

References EOT, get_next_tx_buffer(), NULL, RF4CONTROL_PID, ZRC_CMD_DISCOVERY_RESP_LEN, and ZRC_CMD_DISCOVERY_RESPONSE.

Referenced by handle_incoming_msg(), and zrc_cmd_disc_indication().