-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add new on/off cluster implementation based on the Silicon Labs Zigbe…
…ePro code (#1609) * Add initial Silicon Labs ZCL data model files. All except type_stubs.h come from #1164 types_stub.h comes from #1425 (comment) and #1425 (comment) * Add generated files from the Silicon Labs sample app provided by Ezra Hale. The sample app only implements the On/Off cluster. Most of the files have the same exact name as in the sample app, with the following exceptions: * endpoint_config.h was originally ZigbeeMinimalSoc_endpoint_config.h * gen_config.h was originally ZigbeeMinimalSoc.h * gen_tokens.h was originally ZigbeeMinimalSoc_tokens.h * Fix compile errors in types_stub.h This corrects various obvious problems in the file that prevent files that include it from compiling. * Fix #includes in the imported Silicon Labs code to not include nonexistent things. There are a few categories of fixes here: * Adjusting paths to match out directory structure (which is not identical to the one Silicon Labs apps normally use). * Commenting out includes of headers that we don't think we actually need. * Hardcoding some header names that are represented by preprocessor macros in the Silicon Labs build system. * Include various missing headers to allow the Silicon Labs code to compile. * Comment or ifdef out various calls to Silicon Labs functions we are not pulling in. For some of these we are not even pulling in the declaration. For some, we have a declaration, but no definition. At first glance, all of these are either there to solve problems that we will solve in a different way in CHIP, or the callsites are in code that CHIP is almost certainly not going to use. * Copy declaration of emberAfPluginOnOffClusterServerPostInitCallback from the zll-color-light sample app in the SiLabs ZCL code. * Restyle the Silicon Labs files to CHIP style * Add utilities for encoding and decoding messages that the Silicon Labs ZigbeePro implementation can handle. The actual encoding we are using is not quite the APS encoding, but it's still a throwaway, so that does not matter too much. * Switch the echo server to using the new On/Off implementation. We no longer compile the Dotdot-based ZCL data model files into libCHIP, because those have symbols whose names conflict with the new ZigbeePro-based ZCL data model files. * Switch command-line chip-tool to using the new On/Off implementation. * Switch iOS CHIPTool to using the new On/Off implementation. Co-authored-by: Bhaskar Sarma <[email protected]>
- Loading branch information
1 parent
b61a35b
commit 4dd5230
Showing
58 changed files
with
62,682 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
/** | ||
* | ||
* 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 | ||
******************************************************************************* | ||
******************************************************************************/ | ||
|
||
#ifndef SILABS_AF_MAIN_H | ||
#define SILABS_AF_MAIN_H | ||
|
||
#include "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); | ||
|
||
EmberAfCbkeKeyEstablishmentSuite emberAfIsFullSmartEnergySecurityPresent(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 emberAfGetSecurityLevel(void); | ||
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(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, uint8_t messageLength, | ||
uint8_t * message, uint8_t * messageTag, EmberNodeId alias, uint8_t sequence); | ||
void emAfMessageSentHandler(EmberOutgoingMessageType type, uint16_t indexOrDestination, 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(uint8_t endpoint); | ||
|
||
// Old names | ||
#define emberAfMoveInProgress() emberAfMoveInProgressCallback() | ||
#define emberAfStartMove() emberAfStartMoveCallback() | ||
#define emberAfStopMove() emberAfStopMoveCallback() | ||
|
||
#endif // SILABS_AF_MAIN_H |
Oops, something went wrong.