Example

Dependencies:   FXAS21002 FXOS8700Q

Committer:
maygup01
Date:
Tue Nov 19 09:49:38 2019 +0000
Revision:
0:11cc2b7889af
Example

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maygup01 0:11cc2b7889af 1 /*
maygup01 0:11cc2b7889af 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
maygup01 0:11cc2b7889af 3 * SPDX-License-Identifier: Apache-2.0
maygup01 0:11cc2b7889af 4 * Licensed under the Apache License, Version 2.0 (the License); you may
maygup01 0:11cc2b7889af 5 * not use this file except in compliance with the License.
maygup01 0:11cc2b7889af 6 * You may obtain a copy of the License at
maygup01 0:11cc2b7889af 7 *
maygup01 0:11cc2b7889af 8 * http://www.apache.org/licenses/LICENSE-2.0
maygup01 0:11cc2b7889af 9 *
maygup01 0:11cc2b7889af 10 * Unless required by applicable law or agreed to in writing, software
maygup01 0:11cc2b7889af 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
maygup01 0:11cc2b7889af 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
maygup01 0:11cc2b7889af 13 * See the License for the specific language governing permissions and
maygup01 0:11cc2b7889af 14 * limitations under the License.
maygup01 0:11cc2b7889af 15 */
maygup01 0:11cc2b7889af 16 #ifndef M2MCONSTANTS_H
maygup01 0:11cc2b7889af 17 #define M2MCONSTANTS_H
maygup01 0:11cc2b7889af 18
maygup01 0:11cc2b7889af 19 /*! \file m2mconstants.h
maygup01 0:11cc2b7889af 20 * \brief File defining all the constants used across mbed-client.
maygup01 0:11cc2b7889af 21 */
maygup01 0:11cc2b7889af 22
maygup01 0:11cc2b7889af 23 #include <stdint.h>
maygup01 0:11cc2b7889af 24 #include "m2mconfig.h"
maygup01 0:11cc2b7889af 25
maygup01 0:11cc2b7889af 26 const int MAX_VALUE_LENGTH = 256;
maygup01 0:11cc2b7889af 27 const int BUFFER_LENGTH = 1152;
maygup01 0:11cc2b7889af 28
maygup01 0:11cc2b7889af 29 const uint8_t MINIMUM_REGISTRATION_TIME = 60; //in seconds
maygup01 0:11cc2b7889af 30 const uint8_t ONE_SECOND_TIMER = 1;
maygup01 0:11cc2b7889af 31 const uint8_t MAX_ALLOWED_STRING_LENGTH = 64;
maygup01 0:11cc2b7889af 32 const uint8_t MAX_ALLOWED_ERROR_STRING_LENGTH = 64;
maygup01 0:11cc2b7889af 33 const uint16_t OPTIMUM_LIFETIME = 3600;
maygup01 0:11cc2b7889af 34 const uint16_t REDUCE_LIFETIME = 900;
maygup01 0:11cc2b7889af 35 const float REDUCTION_FACTOR = 0.75f;
maygup01 0:11cc2b7889af 36 const uint16_t MAX_CERTIFICATE_SIZE = 1024;
maygup01 0:11cc2b7889af 37 const uint16_t CONFIG_BOOLEAN_ITEM_SIZE = 4;
maygup01 0:11cc2b7889af 38
maygup01 0:11cc2b7889af 39 // XXX:
maygup01 0:11cc2b7889af 40 // <name></><inst-id></><res-name>
maygup01 0:11cc2b7889af 41 //#define MAX_OBJECT_INSTANCE_NAME (255 + 1 + 5 + 1 + 255 + 1 + 5)
maygup01 0:11cc2b7889af 42 // <name></><inst-id></><inst-id><zero-terminator>
maygup01 0:11cc2b7889af 43 #define MAX_OBJECT_PATH_NAME (255 + 1 + 5 + 1 + 5 + 1)
maygup01 0:11cc2b7889af 44
maygup01 0:11cc2b7889af 45 // values per: draft-ietf-core-observe-16
maygup01 0:11cc2b7889af 46 // OMA LWM2M CR ref.
maygup01 0:11cc2b7889af 47 #define START_OBSERVATION 0
maygup01 0:11cc2b7889af 48 #define STOP_OBSERVATION 1
maygup01 0:11cc2b7889af 49
maygup01 0:11cc2b7889af 50 #define COAP "coap://"
maygup01 0:11cc2b7889af 51 #define COAPS "coaps://"
maygup01 0:11cc2b7889af 52 #define BOOTSTRAP_URI "bs"
maygup01 0:11cc2b7889af 53 // PUT attributes to be checked from server
maygup01 0:11cc2b7889af 54 #define EQUAL "="
maygup01 0:11cc2b7889af 55 #define AMP "&"
maygup01 0:11cc2b7889af 56 #define PMIN "pmin"
maygup01 0:11cc2b7889af 57 #define PMAX "pmax"
maygup01 0:11cc2b7889af 58 #define GT "gt"
maygup01 0:11cc2b7889af 59 #define LT "lt"
maygup01 0:11cc2b7889af 60 #define ST_SIZE "st"
maygup01 0:11cc2b7889af 61 #define STP "stp"
maygup01 0:11cc2b7889af 62 #define CANCEL "cancel"
maygup01 0:11cc2b7889af 63
maygup01 0:11cc2b7889af 64 // Different query parameters
maygup01 0:11cc2b7889af 65 #define QUERY_PARAM_IEP "iep"
maygup01 0:11cc2b7889af 66 #define QUERY_PARAM_EST "est"
maygup01 0:11cc2b7889af 67 #define QUERY_PARAM_AID "aid"
maygup01 0:11cc2b7889af 68
maygup01 0:11cc2b7889af 69 // Different query parameter values
maygup01 0:11cc2b7889af 70 #define QUERY_VALUE_TRUE "true"
maygup01 0:11cc2b7889af 71
maygup01 0:11cc2b7889af 72 // just a helper for "String default_value = "";" pattern
maygup01 0:11cc2b7889af 73 extern const String EMPTY;
maygup01 0:11cc2b7889af 74
maygup01 0:11cc2b7889af 75 //LWM2MOBJECT NAME/ID
maygup01 0:11cc2b7889af 76 #define M2M_SECURITY_ID "0"
maygup01 0:11cc2b7889af 77 #define M2M_SERVER_ID "1"
maygup01 0:11cc2b7889af 78 #define M2M_ACCESS_CONTROL_ID "2"
maygup01 0:11cc2b7889af 79 #define M2M_DEVICE_ID "3"
maygup01 0:11cc2b7889af 80 #define M2M_CONNECTIVITY_MONITOR_ID "4"
maygup01 0:11cc2b7889af 81 #define M2M_FIRMWARE_ID "5"
maygup01 0:11cc2b7889af 82 #define M2M_LOCATION_ID "6"
maygup01 0:11cc2b7889af 83 #define M2M_CONNECTIVITY_STATISTICS_ID "7"
maygup01 0:11cc2b7889af 84 #define RESERVED_ID "8"
maygup01 0:11cc2b7889af 85
maygup01 0:11cc2b7889af 86 //OMA RESOURCE TYPE
maygup01 0:11cc2b7889af 87 #define OMA_RESOURCE_TYPE "" //oma.lwm2m
maygup01 0:11cc2b7889af 88
maygup01 0:11cc2b7889af 89 //DEVICE RESOURCES
maygup01 0:11cc2b7889af 90 #define DEVICE_MANUFACTURER "0"
maygup01 0:11cc2b7889af 91 #define DEVICE_DEVICE_TYPE "17"
maygup01 0:11cc2b7889af 92 #define DEVICE_MODEL_NUMBER "1"
maygup01 0:11cc2b7889af 93 #define DEVICE_SERIAL_NUMBER "2"
maygup01 0:11cc2b7889af 94 #define DEVICE_HARDWARE_VERSION "18"
maygup01 0:11cc2b7889af 95 #define DEVICE_FIRMWARE_VERSION "3"
maygup01 0:11cc2b7889af 96 #define DEVICE_SOFTWARE_VERSION "19"
maygup01 0:11cc2b7889af 97 #define DEVICE_REBOOT "4"
maygup01 0:11cc2b7889af 98 #define DEVICE_FACTORY_RESET "5"
maygup01 0:11cc2b7889af 99 #define DEVICE_AVAILABLE_POWER_SOURCES "6"
maygup01 0:11cc2b7889af 100 #define DEVICE_POWER_SOURCE_VOLTAGE "7"
maygup01 0:11cc2b7889af 101 #define DEVICE_POWER_SOURCE_CURRENT "8"
maygup01 0:11cc2b7889af 102 #define DEVICE_BATTERY_LEVEL "9"
maygup01 0:11cc2b7889af 103 #define DEVICE_BATTERY_STATUS "20"
maygup01 0:11cc2b7889af 104 #define DEVICE_MEMORY_FREE "10"
maygup01 0:11cc2b7889af 105 #define DEVICE_MEMORY_TOTAL "21"
maygup01 0:11cc2b7889af 106 #define DEVICE_ERROR_CODE "11"
maygup01 0:11cc2b7889af 107 #define DEVICE_RESET_ERROR_CODE "12"
maygup01 0:11cc2b7889af 108 #define DEVICE_CURRENT_TIME "13"
maygup01 0:11cc2b7889af 109 #define DEVICE_UTC_OFFSET "14"
maygup01 0:11cc2b7889af 110 #define DEVICE_TIMEZONE "15"
maygup01 0:11cc2b7889af 111 #define DEVICE_SUPPORTED_BINDING_MODE "16"
maygup01 0:11cc2b7889af 112 #define BINDING_MODE_UDP "U"
maygup01 0:11cc2b7889af 113 #define BINDING_MODE_UDP_QUEUE "UQ"
maygup01 0:11cc2b7889af 114 #define BINDING_MODE_SMS "S"
maygup01 0:11cc2b7889af 115 #define BINDING_MODE_SMS_QUEUE "SQ"
maygup01 0:11cc2b7889af 116 #define ERROR_CODE_VALUE "0"
maygup01 0:11cc2b7889af 117
maygup01 0:11cc2b7889af 118 //SECURITY RESOURCES
maygup01 0:11cc2b7889af 119 #define SECURITY_M2M_SERVER_URI "0"
maygup01 0:11cc2b7889af 120 #define SECURITY_BOOTSTRAP_SERVER "1"
maygup01 0:11cc2b7889af 121 #define SECURITY_SECURITY_MODE "2"
maygup01 0:11cc2b7889af 122 #define SECURITY_PUBLIC_KEY "3"
maygup01 0:11cc2b7889af 123 #define SECURITY_SERVER_PUBLIC_KEY "4"
maygup01 0:11cc2b7889af 124 #define SECURITY_SECRET_KEY "5"
maygup01 0:11cc2b7889af 125 #define SECURITY_SMS_SECURITY_MODE "6"
maygup01 0:11cc2b7889af 126 #define SECURITY_SMS_BINDING_KEY "7"
maygup01 0:11cc2b7889af 127 #define SECURITY_SMS_BINDING_SECRET_KEY "8"
maygup01 0:11cc2b7889af 128 #define SECURITY_M2M_SERVER_SMS_NUMBER "9"
maygup01 0:11cc2b7889af 129 #define SECURITY_SHORT_SERVER_ID "10"
maygup01 0:11cc2b7889af 130 #define SECURITY_CLIENT_HOLD_OFF_TIME "11"
maygup01 0:11cc2b7889af 131
maygup01 0:11cc2b7889af 132 #define SECURITY_OPEN_CERTIFICATE_CHAIN "12"
maygup01 0:11cc2b7889af 133 #define SECURITY_CLOSE_CERTIFICATE_CHAIN "13"
maygup01 0:11cc2b7889af 134 #define SECURITY_READ_CERTIFICATE_CHAIN "14"
maygup01 0:11cc2b7889af 135
maygup01 0:11cc2b7889af 136 //SERVER RESOURCES
maygup01 0:11cc2b7889af 137 #define SERVER_PATH_PREFIX "1/0/"
maygup01 0:11cc2b7889af 138 #define SERVER_SHORT_SERVER_ID "0"
maygup01 0:11cc2b7889af 139 #define SERVER_LIFETIME "1"
maygup01 0:11cc2b7889af 140 #define SERVER_DEFAULT_MIN_PERIOD "2"
maygup01 0:11cc2b7889af 141 #define SERVER_DEFAULT_MAX_PERIOD "3"
maygup01 0:11cc2b7889af 142 #define SERVER_DISABLE "4"
maygup01 0:11cc2b7889af 143 #define SERVER_DISABLE_TIMEOUT "5"
maygup01 0:11cc2b7889af 144 #define SERVER_NOTIFICATION_STORAGE "6"
maygup01 0:11cc2b7889af 145 #define SERVER_BINDING "7"
maygup01 0:11cc2b7889af 146 #define SERVER_REGISTRATION_UPDATE "8"
maygup01 0:11cc2b7889af 147 #define SERVER_LIFETIME_PATH SERVER_PATH_PREFIX SERVER_LIFETIME
maygup01 0:11cc2b7889af 148
maygup01 0:11cc2b7889af 149 //FIRMWARE RESOURCES
maygup01 0:11cc2b7889af 150 #define FIRMWARE_PATH_PREFIX "5/0/"
maygup01 0:11cc2b7889af 151 #define FIRMWARE_PACKAGE "0"
maygup01 0:11cc2b7889af 152 #define FIRMWARE_PACKAGE_URI "1"
maygup01 0:11cc2b7889af 153 #define FIRMWARE_UPDATE "2"
maygup01 0:11cc2b7889af 154 #define FIRMWARE_STATE "3"
maygup01 0:11cc2b7889af 155 #define FIRMWARE_UPDATE_SUPPORTED_OBJECTS "4"
maygup01 0:11cc2b7889af 156 #define FIRMWARE_UPDATE_RESULT "5"
maygup01 0:11cc2b7889af 157 #define FIRMWARE_PACKAGE_NAME "6"
maygup01 0:11cc2b7889af 158 #define FIRMWARE_PACKAGE_VERSION "7"
maygup01 0:11cc2b7889af 159 #define FIRMAWARE_PACKAGE_URI_PATH FIRMWARE_PATH_PREFIX FIRMWARE_PACKAGE_URI
maygup01 0:11cc2b7889af 160
maygup01 0:11cc2b7889af 161 // Error Strings
maygup01 0:11cc2b7889af 162
maygup01 0:11cc2b7889af 163 #define ERROR_REASON_1 "No security object found for Bootstrap"
maygup01 0:11cc2b7889af 164 #define ERROR_REASON_2 "Bootstrap not allowed for now, try later"
maygup01 0:11cc2b7889af 165 #define ERROR_REASON_3 "Bootstrap feature is disabled"
maygup01 0:11cc2b7889af 166 #define ERROR_REASON_4 "No security object found for Registration"
maygup01 0:11cc2b7889af 167 #define ERROR_REASON_5 "Registration not allowed for now, try later"
maygup01 0:11cc2b7889af 168 #define ERROR_REASON_6 "Unregistration not allowed for now, try later"
maygup01 0:11cc2b7889af 169 #define ERROR_REASON_7 "Client is not connected, cannot send data now"
maygup01 0:11cc2b7889af 170 #define ERROR_REASON_8 "LWM2M server rejected client registration"
maygup01 0:11cc2b7889af 171 #define ERROR_REASON_9 "Client in reconnection mode %s"
maygup01 0:11cc2b7889af 172 #define ERROR_REASON_10 "Client cannot connect anymore %s"
maygup01 0:11cc2b7889af 173 #define ERROR_REASON_11 "Bootstrap server URL is not correctly formed"
maygup01 0:11cc2b7889af 174 #define ERROR_REASON_12 "Bootstrap resource is not correctly formed"
maygup01 0:11cc2b7889af 175 #define ERROR_REASON_13 "LWM2M server URL is not correctly formed"
maygup01 0:11cc2b7889af 176 #define ERROR_REASON_14 "LWM2M server address is not set correctly in client"
maygup01 0:11cc2b7889af 177 #define ERROR_REASON_15 "Failed to do full registration because of missing parameters in registration"
maygup01 0:11cc2b7889af 178 #define ERROR_REASON_16 "Cannot unregister as client is not registered"
maygup01 0:11cc2b7889af 179 #define ERROR_REASON_17 "Incoming CoAP message parsing failed"
maygup01 0:11cc2b7889af 180 #define ERROR_REASON_18 "Sending reg-update failed as lifetime is less than 60 sec"
maygup01 0:11cc2b7889af 181 #define ERROR_REASON_19 "LWM2M server URL is not correctly formed"
maygup01 0:11cc2b7889af 182 #define ERROR_REASON_20 "BS PUT fails :%s"
maygup01 0:11cc2b7889af 183 #define ERROR_REASON_21 "BS DEL fails :%s"
maygup01 0:11cc2b7889af 184 #define ERROR_REASON_22 "BS FIN fails :%s"
maygup01 0:11cc2b7889af 185 #define ERROR_REASON_23 "Bootstrap SecureConnection failed"
maygup01 0:11cc2b7889af 186 #define ERROR_REASON_24 "LWM2M server rejected client unregistration (not-found)"
maygup01 0:11cc2b7889af 187 #define ERROR_REASON_25 "Failed to allocate registration message"
maygup01 0:11cc2b7889af 188 #define ERROR_REASON_26 "BS FIN fails: missing EST iep param"
maygup01 0:11cc2b7889af 189 #define ERROR_REASON_27 "Call already in progress"
maygup01 0:11cc2b7889af 190 #define ERROR_REASON_28 "Message sending timed out"
maygup01 0:11cc2b7889af 191
maygup01 0:11cc2b7889af 192 #define COAP_ERROR_REASON_1 "bad-request"
maygup01 0:11cc2b7889af 193 #define COAP_ERROR_REASON_2 "bad-option"
maygup01 0:11cc2b7889af 194 #define COAP_ERROR_REASON_3 "request-entity-incomplete"
maygup01 0:11cc2b7889af 195 #define COAP_ERROR_REASON_4 "precondition-failed"
maygup01 0:11cc2b7889af 196 #define COAP_ERROR_REASON_5 "request-entity-too-large"
maygup01 0:11cc2b7889af 197 #define COAP_ERROR_REASON_6 "unsupported-content-format"
maygup01 0:11cc2b7889af 198 #define COAP_ERROR_REASON_7 "response-unauthorized"
maygup01 0:11cc2b7889af 199 #define COAP_ERROR_REASON_8 "response-forbidden"
maygup01 0:11cc2b7889af 200 #define COAP_ERROR_REASON_9 "not-acceptable"
maygup01 0:11cc2b7889af 201 #define COAP_ERROR_REASON_10 "not-found"
maygup01 0:11cc2b7889af 202 #define COAP_ERROR_REASON_11 "method-not-allowed"
maygup01 0:11cc2b7889af 203 #define COAP_ERROR_REASON_12 "message-sending-failed"
maygup01 0:11cc2b7889af 204 #define COAP_ERROR_REASON_13 "service-unavailable"
maygup01 0:11cc2b7889af 205 #define COAP_ERROR_REASON_14 "internal-server-error"
maygup01 0:11cc2b7889af 206 #define COAP_ERROR_REASON_15 "bad-gateway"
maygup01 0:11cc2b7889af 207 #define COAP_ERROR_REASON_16 "gateway-timeout"
maygup01 0:11cc2b7889af 208 #define COAP_ERROR_REASON_17 "proxying-not-supported"
maygup01 0:11cc2b7889af 209 #define COAP_NO_ERROR "no-error"
maygup01 0:11cc2b7889af 210
maygup01 0:11cc2b7889af 211 #define ERROR_SECURE_CONNECTION "SecureConnectionFailed"
maygup01 0:11cc2b7889af 212 #define ERROR_DNS "DnsResolvingFailed"
maygup01 0:11cc2b7889af 213 #define ERROR_NETWORK "NetworkError"
maygup01 0:11cc2b7889af 214 #define ERROR_NO "No error"
maygup01 0:11cc2b7889af 215 #define ERROR_NO_MEMORY "Memory allocation failed"
maygup01 0:11cc2b7889af 216 #define ERROR_FAILED_TO_READ_CREDENTIALS "Failed to read credentials"
maygup01 0:11cc2b7889af 217
maygup01 0:11cc2b7889af 218 #define MAX_RECONNECT_TIMEOUT 604800
maygup01 0:11cc2b7889af 219 #define RECONNECT_INCREMENT_FACTOR 2
maygup01 0:11cc2b7889af 220
maygup01 0:11cc2b7889af 221 #define AUTO_OBS_TOKEN_MIN 1
maygup01 0:11cc2b7889af 222 #define AUTO_OBS_TOKEN_MAX 1023
maygup01 0:11cc2b7889af 223
maygup01 0:11cc2b7889af 224 #define RESPONSE_RANDOM_FACTOR 1.5 /**< Resending random factor, value is specified in IETF CoAP specification */
maygup01 0:11cc2b7889af 225
maygup01 0:11cc2b7889af 226 // TLV serializer / deserializer
maygup01 0:11cc2b7889af 227 const uint8_t TYPE_RESOURCE = 0xC0;
maygup01 0:11cc2b7889af 228 const uint8_t TYPE_MULTIPLE_RESOURCE = 0x80;
maygup01 0:11cc2b7889af 229 const uint8_t TYPE_RESOURCE_INSTANCE = 0x40;
maygup01 0:11cc2b7889af 230 const uint8_t TYPE_OBJECT_INSTANCE = 0x0;
maygup01 0:11cc2b7889af 231
maygup01 0:11cc2b7889af 232 const uint8_t ID8 = 0x0;
maygup01 0:11cc2b7889af 233 const uint8_t ID16 = 0x20;
maygup01 0:11cc2b7889af 234
maygup01 0:11cc2b7889af 235 const uint8_t LENGTH8 = 0x08;
maygup01 0:11cc2b7889af 236 const uint8_t LENGTH16 = 0x10;
maygup01 0:11cc2b7889af 237 const uint8_t LENGTH24 = 0x18;
maygup01 0:11cc2b7889af 238
maygup01 0:11cc2b7889af 239 const uint8_t COAP_CONTENT_OMA_PLAIN_TEXT_TYPE = 0;
maygup01 0:11cc2b7889af 240 const uint8_t COAP_CONTENT_OMA_TLV_TYPE_OLD = 99;
maygup01 0:11cc2b7889af 241 const uint16_t COAP_CONTENT_OMA_TLV_TYPE = 11542;
maygup01 0:11cc2b7889af 242 const uint16_t COAP_CONTENT_OMA_JSON_TYPE = 11543;
maygup01 0:11cc2b7889af 243 const uint8_t COAP_CONTENT_OMA_OPAQUE_TYPE = 42;
maygup01 0:11cc2b7889af 244
maygup01 0:11cc2b7889af 245 const uint16_t MAX_UNINT_16_COUNT = 65535;
maygup01 0:11cc2b7889af 246
maygup01 0:11cc2b7889af 247 #endif // M2MCONSTANTS_H