| /* |
| * |
| * Copyright (c) 2013-2017 Nest Labs, Inc. |
| * All rights reserved. |
| * |
| * 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 |
| * This file defines functions for converting various ids into human-readable strings. |
| * |
| */ |
| |
| #include <stdlib.h> |
| |
| // Note that the choice of namespace alias must be made up front for each and every compile unit |
| // This is because many include paths could set the default alias to unintended target. |
| #include <Weave/Profiles/bulk-data-transfer/Development/BDXManagedNamespace.hpp> |
| #include <Weave/Profiles/data-management/Current/WdmManagedNamespace.h> |
| |
| #include <Weave/Core/WeaveCore.h> |
| #include <Weave/Profiles/WeaveProfiles.h> |
| #include <Weave/Profiles/common/CommonProfile.h> |
| #include <Weave/Profiles/echo/WeaveEcho.h> |
| #include <Weave/Profiles/network-provisioning/NetworkProvisioning.h> |
| #include <Weave/Profiles/security/WeaveSecurity.h> |
| #include <Weave/Profiles/fabric-provisioning/FabricProvisioning.h> |
| #include <Weave/Profiles/device-control/DeviceControl.h> |
| #include <Weave/Profiles/time/WeaveTime.h> |
| #include <Weave/Profiles/data-management/DataManagement.h> |
| #include <Weave/Profiles/software-update/SoftwareUpdateProfile.h> |
| #include <Weave/Profiles/bulk-data-transfer/BulkDataTransfer.h> |
| #include <Weave/Profiles/bulk-data-transfer/Development/BDXConstants.h> |
| #include <Weave/Profiles/device-description/DeviceDescription.h> |
| #include <Weave/Profiles/service-provisioning/ServiceProvisioning.h> |
| #include <Weave/Profiles/service-directory/ServiceDirectory.h> |
| #include <Weave/Profiles/weave-tunneling/WeaveTunnelCommon.h> |
| #include <Weave/Profiles/heartbeat/WeaveHeartbeat.h> |
| #include <Weave/Profiles/token-pairing/TokenPairing.h> |
| #include <Weave/Support/ProfileStringSupport.hpp> |
| |
| namespace nl { |
| namespace Weave { |
| |
| using namespace nl::Weave::Profiles; |
| |
| const char *GetVendorName(uint16_t vendorId) |
| { |
| switch (vendorId) { |
| case kWeaveVendor_Common : return "Common"; |
| case kWeaveVendor_NestLabs : return "Nest"; |
| case kWeaveVendor_Yale : return "Yale"; |
| } |
| |
| return NULL; |
| } |
| |
| static const char *FindProfileName(uint32_t inProfileId) |
| { |
| const Support::ProfileStringInfo *info; |
| const char *result = NULL; |
| |
| info = Support::FindProfileStringInfo(inProfileId); |
| |
| if (info != NULL && info->mProfileNameFunct != NULL) |
| { |
| result = info->mProfileNameFunct(inProfileId); |
| } |
| |
| return (result); |
| } |
| |
| static const char *FindMessageName(uint32_t inProfileId, uint8_t inMsgType) |
| { |
| const Support::ProfileStringInfo *info; |
| const char *result = NULL; |
| |
| info = Support::FindProfileStringInfo(inProfileId); |
| |
| if (info != NULL && info->mMessageNameFunct != NULL) |
| { |
| result = info->mMessageNameFunct(inProfileId, inMsgType); |
| } |
| |
| return (result); |
| } |
| |
| const char *GetProfileName(uint32_t profileId) |
| { |
| const char *result = NULL; |
| |
| switch (profileId) { |
| case kWeaveProfile_Common : return "Common"; |
| case kWeaveProfile_Echo : return "Echo"; |
| case kWeaveProfile_NetworkProvisioning : return "NetworkProvisioning"; |
| case kWeaveProfile_Security : return "Security"; |
| case kWeaveProfile_FabricProvisioning : return "FabricProvisioning"; |
| case kWeaveProfile_DeviceControl : return "DeviceControl"; |
| case kWeaveProfile_Time : return "Time"; |
| case kWeaveProfile_WDM : return "WDM"; |
| case kWeaveProfile_SWU : return "SWU"; |
| case kWeaveProfile_BDX : return "BDX"; |
| case kWeaveProfile_DeviceDescription : return "DeviceDescription"; |
| case kWeaveProfile_ServiceProvisioning : return "ServiceProvisioning"; |
| case kWeaveProfile_ServiceDirectory : return "ServiceDirectory"; |
| case kWeaveProfile_Locale : return "Locale"; |
| case kWeaveProfile_Tunneling : return "Tunneling"; |
| case kWeaveProfile_Heartbeat : return "Heartbeat"; |
| case kWeaveProfile_TokenPairing : return "TokenPairing"; |
| case kWeaveProfile_DictionaryKey : return "DictionaryKey"; |
| |
| case kWeaveProfile_Occupancy : return "Nest:Occupancy"; |
| case kWeaveProfile_Structure : return "Nest:Structure"; |
| case kWeaveProfile_NestProtect : return "Nest:Protect"; |
| case kWeaveProfile_TimeVariantData : return "Nest:TimeVariantData"; |
| case kWeaveProfile_HeatLink : return "Nest:HeatLink"; |
| case kWeaveProfile_Safety : return "Nest:Safety"; |
| case kWeaveProfile_SafetySummary : return "Nest:SafetySummary"; |
| case kWeaveProfile_NestThermostat : return "Nest:Thermostat"; |
| case kWeaveProfile_NestBoiler : return "Nest:Boiler"; |
| case kWeaveProfile_NestHvacEquipmentControl : return "Nest:HvacEquipmentControl"; |
| case kWeaveProfile_NestDomesticHotWater : return "Nest:DomesticHotWater"; |
| case kWeaveProfile_TopazHistory : return "Nest:TopazHistory"; |
| case kWeaveProfile_NestNetworkManager : return "Nest:NetworkManager"; |
| } |
| |
| result = FindProfileName(profileId); |
| |
| return (result); |
| } |
| |
| const char *GetMessageName(uint32_t profileId, uint8_t msgType) |
| { |
| const char *result = NULL; |
| |
| switch (profileId) { |
| case kWeaveProfile_Common: |
| switch (msgType) { |
| case Common::kMsgType_StatusReport : return "StatusReport"; |
| case Common::kMsgType_Null : return "Null"; |
| case Common::kMsgType_WRMP_Delayed_Delivery : return "DelayedDelivery"; |
| case Common::kMsgType_WRMP_Throttle_Flow : return "ThrottleFlow"; |
| } |
| break; |
| case kWeaveProfile_Echo: |
| switch (msgType) { |
| case kEchoMessageType_EchoRequest : return "EchoRequest"; |
| case kEchoMessageType_EchoResponse : return "EchoResponse"; |
| } |
| break; |
| case kWeaveProfile_NetworkProvisioning: |
| switch (msgType) { |
| case NetworkProvisioning::kMsgType_ScanNetworks : return "ScanNetworks"; |
| case NetworkProvisioning::kMsgType_NetworkScanComplete : return "NetworkScanComplete"; |
| case NetworkProvisioning::kMsgType_AddNetwork : return "AddNetwork"; |
| case NetworkProvisioning::kMsgType_AddNetworkComplete : return "AddNetworkComplete"; |
| case NetworkProvisioning::kMsgType_UpdateNetwork : return "UpdateNetwork"; |
| case NetworkProvisioning::kMsgType_RemoveNetwork : return "RemoveNetwork"; |
| case NetworkProvisioning::kMsgType_EnableNetwork : return "EnableNetwork"; |
| case NetworkProvisioning::kMsgType_DisableNetwork : return "DisableNetwork"; |
| case NetworkProvisioning::kMsgType_TestConnectivity : return "TestConnectivity"; |
| case NetworkProvisioning::kMsgType_SetRendezvousMode : return "SetRendezvousMode"; |
| case NetworkProvisioning::kMsgType_GetNetworks : return "GetNetworks"; |
| case NetworkProvisioning::kMsgType_GetNetworksComplete : return "GetNetworksComplete"; |
| case NetworkProvisioning::kMsgType_GetLastResult : return "GetLastResult"; |
| } |
| break; |
| case kWeaveProfile_Security: |
| switch (msgType) { |
| case Security::kMsgType_PASEInitiatorStep1 : return "PASEInitiatorStep1"; |
| case Security::kMsgType_PASEResponderStep1 : return "PASEResponderStep1"; |
| case Security::kMsgType_PASEResponderStep2 : return "PASEResponderStep2"; |
| case Security::kMsgType_PASEInitiatorStep2 : return "PASEInitiatorStep2"; |
| case Security::kMsgType_PASEResponderKeyConfirm : return "PASEResponderKeyConfirm"; |
| case Security::kMsgType_PASEResponderReconfigure : return "PASEReconfigure"; |
| case Security::kMsgType_CASEBeginSessionRequest : return "CASEBeginSessionRequest"; |
| case Security::kMsgType_CASEBeginSessionResponse : return "CASEBeginSessionResponse"; |
| case Security::kMsgType_CASEInitiatorKeyConfirm : return "CASEInitiatorKeyConfirm"; |
| case Security::kMsgType_CASEReconfigure : return "CASEReconfigure"; |
| case Security::kMsgType_TAKEIdentifyToken : return "TAKEIdentifyToken"; |
| case Security::kMsgType_TAKEIdentifyTokenResponse : return "TAKEIdentifyTokenResponse"; |
| case Security::kMsgType_TAKETokenReconfigure : return "TAKETokenReconfigure"; |
| case Security::kMsgType_TAKEAuthenticateToken : return "TAKEAuthenticateToken"; |
| case Security::kMsgType_TAKEAuthenticateTokenResponse : return "TAKEAuthenticateTokenResponse"; |
| case Security::kMsgType_TAKEReAuthenticateToken : return "TAKEReAuthenticateToken"; |
| case Security::kMsgType_TAKEReAuthenticateTokenResponse : return "TAKEReAuthenticateTokenResponse"; |
| case Security::kMsgType_EndSession : return "EndSession"; |
| case Security::kMsgType_KeyError : return "KeyError"; |
| } |
| break; |
| case kWeaveProfile_FabricProvisioning: |
| switch (msgType) { |
| case FabricProvisioning::kMsgType_CreateFabric : return "CreateFabric"; |
| case FabricProvisioning::kMsgType_LeaveFabric : return "LeaveFabric"; |
| case FabricProvisioning::kMsgType_GetFabricConfig : return "GetFabricConfig"; |
| case FabricProvisioning::kMsgType_GetFabricConfigComplete : return "GetFabricConfigComplete"; |
| case FabricProvisioning::kMsgType_JoinExistingFabric : return "JoinExistingFabric"; |
| } |
| break; |
| case kWeaveProfile_DeviceControl: |
| switch (msgType) { |
| case DeviceControl::kMsgType_ResetConfig : return "ResetConfig"; |
| case DeviceControl::kMsgType_ArmFailSafe : return "ArmFailSafe"; |
| case DeviceControl::kMsgType_DisarmFailSafe : return "DisarmFailSafe"; |
| case DeviceControl::kMsgType_EnableConnectionMonitor : return "EnableConnectionMonitor"; |
| case DeviceControl::kMsgType_DisableConnectionMonitor : return "DisableConnectionMonitor"; |
| case DeviceControl::kMsgType_RemotePassiveRendezvous : return "RemotePassiveRendezvous"; |
| case DeviceControl::kMsgType_RemoteConnectionComplete : return "RemoteConnectionComplete"; |
| case DeviceControl::kMsgType_StartSystemTest : return "StartSystemTest"; |
| case DeviceControl::kMsgType_StopSystemTest : return "StopSystemTest"; |
| } |
| break; |
| case kWeaveProfile_Time: |
| switch (msgType) { |
| case Time::kTimeMessageType_TimeSyncTimeChangeNotification : return "TimeSyncTimeChangeNotification"; |
| case Time::kTimeMessageType_TimeSyncRequest : return "TimeSyncRequest"; |
| case Time::kTimeMessageType_TimeSyncResponse : return "TimeSyncResponse"; |
| } |
| break; |
| case kWeaveProfile_WDM: |
| switch (msgType) { |
| case DataManagement::kMsgType_ViewRequest : return "ViewRequest"; |
| case DataManagement::kMsgType_ViewResponse : return "ViewResponse"; |
| case DataManagement::kMsgType_UpdateRequest : return "UpdateRequest"; |
| case DataManagement::kMsgType_InProgress : return "InProgress"; |
| case DataManagement::kMsgType_SubscribeRequest : return "SubscribeRequest"; |
| case DataManagement::kMsgType_SubscribeResponse : return "SubscribeResponse"; |
| case DataManagement::kMsgType_SubscribeCancelRequest : return "SubscribeCancelRequest"; |
| case DataManagement::kMsgType_SubscribeConfirmRequest : return "SubscribeConfirmRequest"; |
| case DataManagement::kMsgType_NotificationRequest : return "NotificationRequest"; |
| case DataManagement::kMsgType_CustomCommandRequest : return "CommandRequest"; |
| case DataManagement::kMsgType_CustomCommandResponse : return "CommandResponse"; |
| } |
| break; |
| case kWeaveProfile_SWU: |
| switch (msgType) { |
| case SoftwareUpdate::kMsgType_ImageAnnounce : return "ImageAnnounce"; |
| case SoftwareUpdate::kMsgType_ImageQuery : return "ImageQuery"; |
| case SoftwareUpdate::kMsgType_ImageQueryResponse : return "ImageQueryResponse"; |
| case SoftwareUpdate::kMsgType_DownloadNotify : return "DownloadNotify"; |
| case SoftwareUpdate::kMsgType_NotifyRepsponse : return "NotifyRepsponse"; |
| case SoftwareUpdate::kMsgType_UpdateNotify : return "UpdateNotify"; |
| case SoftwareUpdate::kMsgType_ImageQueryStatus : return "ImageQueryStatus"; |
| } |
| break; |
| case kWeaveProfile_BDX: |
| switch (msgType) { |
| case BDX_Development::kMsgType_SendInit : return "SendInit"; |
| case BDX_Development::kMsgType_SendAccept : return "SendAccept"; |
| case BDX_Development::kMsgType_SendReject : return "SendReject"; |
| case BDX_Development::kMsgType_ReceiveInit : return "ReceiveInit"; |
| case BDX_Development::kMsgType_ReceiveAccept : return "ReceiveAccept"; |
| case BDX_Development::kMsgType_ReceiveReject : return "ReceiveReject"; |
| case BDX_Development::kMsgType_BlockQuery : return "BlockQuery"; |
| case BDX_Development::kMsgType_BlockSend : return "BlockSend"; |
| case BDX_Development::kMsgType_BlockEOF : return "BlockEOF"; |
| case BDX_Development::kMsgType_BlockAck : return "BlockAck"; |
| case BDX_Development::kMsgType_BlockEOFAck : return "BlockEOFAck"; |
| case BDX_Development::kMsgType_TransferError : return "TransferError"; |
| case BDX_Development::kMsgType_BlockQueryV1 : return "BlockQueryV1"; |
| case BDX_Development::kMsgType_BlockSendV1 : return "BlockSendV1"; |
| case BDX_Development::kMsgType_BlockEOFV1 : return "BlockEOFV1"; |
| case BDX_Development::kMsgType_BlockAckV1 : return "BlockAckV1"; |
| case BDX_Development::kMsgType_BlockEOFAckV1 : return "BlockEOFAckV1"; |
| } |
| break; |
| case kWeaveProfile_DeviceDescription: |
| switch (msgType) { |
| case DeviceDescription::kMessageType_IdentifyRequest : return "IdentifyRequest"; |
| case DeviceDescription::kMessageType_IdentifyResponse : return "IdentifyResponse"; |
| } |
| break; |
| case kWeaveProfile_ServiceProvisioning: |
| switch (msgType) { |
| case ServiceProvisioning::kMsgType_RegisterServicePairAccount : return "RegisterServicePairAccount"; |
| case ServiceProvisioning::kMsgType_UpdateService : return "UpdateService"; |
| case ServiceProvisioning::kMsgType_UnregisterService : return "UnregisterService"; |
| case ServiceProvisioning::kMsgType_UnpairDeviceFromAccount : return "UnpairDeviceFromAccount"; |
| case ServiceProvisioning::kMsgType_PairDeviceToAccount : return "PairDeviceToAccount"; |
| } |
| break; |
| case kWeaveProfile_ServiceDirectory: |
| switch (msgType) { |
| case ServiceDirectory::kMsgType_ServiceEndpointQuery : return "ServiceEndpointQuery"; |
| case ServiceDirectory::kMsgType_ServiceEndpointResponse : return "ServiceEndpointResponse"; |
| } |
| break; |
| #if WEAVE_CONFIG_ENABLE_TUNNELING |
| case kWeaveProfile_Tunneling: |
| switch (msgType) { |
| case WeaveTunnel::kMsgType_TunnelOpen : return "TunnelOpen"; |
| case WeaveTunnel::kMsgType_TunnelOpenV2 : return "TunnelOpenV2"; |
| case WeaveTunnel::kMsgType_TunnelRouteUpdate : return "TunnelRouteUpdate"; |
| case WeaveTunnel::kMsgType_TunnelClose : return "TunnelClose"; |
| case WeaveTunnel::kMsgType_TunnelReconnect : return "TunnelReconnect"; |
| case WeaveTunnel::kMsgType_TunnelRouterAdvertise : return "TunnelRouterAdvertise"; |
| case WeaveTunnel::kMsgType_TunnelMobileClientAdvertise : return "TunnelMobileClientAdvertise"; |
| } |
| break; |
| #endif // WEAVE_CONFIG_ENABLE_TUNNELING |
| case kWeaveProfile_Heartbeat: |
| switch (msgType) { |
| case Heartbeat::kHeartbeatMessageType_Heartbeat : return "Heartbeat"; |
| } |
| break; |
| case kWeaveProfile_TokenPairing: |
| switch (msgType) { |
| case TokenPairing::kMsgType_PairTokenRequest : return "PairTokenRequest"; |
| case TokenPairing::kMsgType_TokenCertificateResponse : return "TokenCertificateResponse"; |
| case TokenPairing::kMsgType_TokenPairedResponse : return "TokenPairedResponse"; |
| case TokenPairing::kMsgType_UnpairTokenRequest : return "UnpairTokenRequest"; |
| } |
| break; |
| } |
| |
| result = FindMessageName(profileId, msgType); |
| |
| return (result); |
| } |
| |
| } // namespace Weave |
| } // namespace nl |