blob: 3ab846b5d517d2b0bf8e203eb224f69c6ce9c7b3 [file] [log] [blame]
/**
*
* Copyright (c) 2020 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
* Copyright (c) 2020 Silicon Labs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/***************************************************************************/
/**
* @file
* @brief
*******************************************************************************
******************************************************************************/
#pragma once
#include <app/util/af-types.h>
//#include CONFIGURATION_HEADER
//#include PLATFORM_HEADER // Micro and compiler specific typedefs and macros
//#include "stack/include/ember-types.h"
#define MFG_STRING_MAX_LENGTH 16
typedef struct
{
EmberAfMessageSentFunction callback;
uint8_t tag;
} CallbackTableEntry;
#if defined(EZSP_HOST)
bool emberAfMemoryByteCompare(const uint8_t * pointer, uint8_t count, uint8_t byteValue);
#else
bool emMemoryByteCompare(const uint8_t * bytes, uint8_t count, uint8_t target);
#define emberAfMemoryByteCompare(pointer, count, byteValue) emMemoryByteCompare((pointer), (count), (byteValue))
#endif
// returnData must be MFG_STRING_MAX_LENGTH in length and
// is NOT expected to be NULL terminated (could be though)
void emberAfGetMfgString(uint8_t * returnData);
// Functions common to both SOC and Host versions of the application.
void emAfInitializeMessageSentCallbackArray(void);
#if defined(EZSP_HOST)
void emAfClearNetworkCache(uint8_t networkIndex);
#else
#define emAfClearNetworkCache(index)
uint8_t emAfCopyMessageIntoRamBuffer(EmberMessageBuffer message, uint8_t * buffer, uint16_t bufLen);
#endif
#if defined EZSP_HOST
// utility for setting an EZSP config value and printing the result
EzspStatus emberAfSetEzspConfigValue(EzspConfigId configId, uint16_t value, const char * configIdName);
// utility for setting an EZSP policy and printing the result
EzspStatus emberAfSetEzspPolicy(EzspPolicyId policyId, EzspDecisionId decisionId, const char * policyName,
const char * decisionName);
// utility for setting an EZSP value and printing the result
EzspStatus emberAfSetEzspValue(EzspValueId valueId, uint8_t valueLength, uint8_t * value, const char * valueName);
bool emberAfNcpNeedsReset(void);
#endif // EZSP_HOST
void emAfPrintStatus(const char * task, EmberStatus status);
uint8_t emberAfGetKeyTableSize(void);
uint8_t emberAfGetBindingTableSize(void);
uint8_t emberAfGetAddressTableSize(void);
uint8_t emberAfGetChildTableSize(void);
uint8_t emberAfGetRouteTableSize(void);
uint8_t emberAfGetNeighborTableSize(void);
uint8_t emberAfGetStackProfile(void);
uint8_t emberAfGetSleepyMulticastConfig(void);
uint8_t emAfGetPacketBufferFreeCount(void);
uint8_t emAfGetPacketBufferTotalCount(void);
EmberStatus emberAfGetSourceRouteTableEntry(uint8_t index, EmberNodeId * destination, uint8_t * closerIndex);
uint8_t emberAfGetSourceRouteTableTotalSize(void);
uint8_t emberAfGetSourceRouteTableFilledSize(void);
EmberStatus emberAfGetChildData(uint8_t index, EmberChildData * childData);
void emAfCliVersionCommand(void);
EmberStatus emAfPermitJoin(uint8_t duration, bool broadcastMgmtPermitJoin);
void emAfStopSmartEnergyStartup(void);
bool emAfProcessZdo(EmberNodeId sender, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length);
void emAfIncomingMessageHandler(EmberIncomingMessageType type, EmberApsFrame * apsFrame, uint8_t lastHopLqi, int8_t lastHopRssi,
uint16_t messageLength, uint8_t * messageContents);
EmberStatus emAfSend(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t messageLength,
uint8_t * message, uint8_t * messageTag, EmberNodeId alias, uint8_t sequence);
void emAfMessageSentHandler(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, EmberStatus status,
uint16_t messageLength, uint8_t * messageContents, uint8_t messageTag);
void emAfStackStatusHandler(EmberStatus status);
void emAfNetworkInit(void);
// For testing purposes only, we suppress the normal call to emberNetworkInit()
// at reboot. This allows us to call it manually later and prevent the node
// from immediately coming back up on the network after reboot.
#ifdef EMBER_AF_TC_SWAP_OUT_TEST
#define EM_AF_NETWORK_INIT()
#else
#define EM_AF_NETWORK_INIT() emAfNetworkInit()
#endif
#define emberAfCopyBigEndianEui64Argument emberCopyBigEndianEui64Argument
void emAfScheduleFindAndRejoinEvent(void);
extern const EmberEUI64 emberAfNullEui64;
void emberAfFormatMfgString(uint8_t * mfgString);
extern bool emberAfPrintReceivedMessages;
void emAfParseAndPrintVersion(EmberVersion versionStruct);
void emAfPrintEzspEndpointFlags(chip::EndpointId endpoint);
// Old names
#define emberAfMoveInProgress() emberAfMoveInProgressCallback()
#define emberAfStartMove() emberAfStartMoveCallback()
#define emberAfStopMove() emberAfStopMoveCallback()