A metronome using the FRDM K64F board

Committer:
ram54288
Date:
Sun May 14 18:40:18 2017 +0000
Revision:
0:a7a43371b306
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:a7a43371b306 1 /*
ram54288 0:a7a43371b306 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
ram54288 0:a7a43371b306 3 * SPDX-License-Identifier: Apache-2.0
ram54288 0:a7a43371b306 4 * Licensed under the Apache License, Version 2.0 (the License); you may
ram54288 0:a7a43371b306 5 * not use this file except in compliance with the License.
ram54288 0:a7a43371b306 6 * You may obtain a copy of the License at
ram54288 0:a7a43371b306 7 *
ram54288 0:a7a43371b306 8 * http://www.apache.org/licenses/LICENSE-2.0
ram54288 0:a7a43371b306 9 *
ram54288 0:a7a43371b306 10 * Unless required by applicable law or agreed to in writing, software
ram54288 0:a7a43371b306 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
ram54288 0:a7a43371b306 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ram54288 0:a7a43371b306 13 * See the License for the specific language governing permissions and
ram54288 0:a7a43371b306 14 * limitations under the License.
ram54288 0:a7a43371b306 15 */
ram54288 0:a7a43371b306 16 #include "lwm2mtest.h"
ram54288 0:a7a43371b306 17 #include "ns_types.h"
ram54288 0:a7a43371b306 18 #include "ns_cmdline.h"
ram54288 0:a7a43371b306 19
ram54288 0:a7a43371b306 20 M2MLWClient::M2MLWClient()
ram54288 0:a7a43371b306 21 : _security(NULL),
ram54288 0:a7a43371b306 22 _interface(NULL),
ram54288 0:a7a43371b306 23 _device(NULL),
ram54288 0:a7a43371b306 24 _bootstrapped(false),
ram54288 0:a7a43371b306 25 _error(false),
ram54288 0:a7a43371b306 26 _registered(false),
ram54288 0:a7a43371b306 27 _unregistered(false),
ram54288 0:a7a43371b306 28 _registration_updated(false)
ram54288 0:a7a43371b306 29 {
ram54288 0:a7a43371b306 30 }
ram54288 0:a7a43371b306 31
ram54288 0:a7a43371b306 32 M2MLWClient::~M2MLWClient()
ram54288 0:a7a43371b306 33 {
ram54288 0:a7a43371b306 34 if(_interface) {
ram54288 0:a7a43371b306 35 delete _interface;
ram54288 0:a7a43371b306 36 }
ram54288 0:a7a43371b306 37 if(_security) {
ram54288 0:a7a43371b306 38 delete _security;
ram54288 0:a7a43371b306 39 }
ram54288 0:a7a43371b306 40 if( _register_security){
ram54288 0:a7a43371b306 41 delete _register_security;
ram54288 0:a7a43371b306 42 }
ram54288 0:a7a43371b306 43 }
ram54288 0:a7a43371b306 44
ram54288 0:a7a43371b306 45
ram54288 0:a7a43371b306 46 bool M2MLWClient::create_interface(int32_t param_count,
ram54288 0:a7a43371b306 47 const char *endpoint,
ram54288 0:a7a43371b306 48 const char *resource_type,
ram54288 0:a7a43371b306 49 const int32_t lifetime,
ram54288 0:a7a43371b306 50 const uint16_t listen_port,
ram54288 0:a7a43371b306 51 const char *domain,
ram54288 0:a7a43371b306 52 const uint8_t binding_mode,
ram54288 0:a7a43371b306 53 const uint8_t network_interface)
ram54288 0:a7a43371b306 54 {
ram54288 0:a7a43371b306 55 if(_interface) {
ram54288 0:a7a43371b306 56 delete _interface;
ram54288 0:a7a43371b306 57 _interface = NULL;
ram54288 0:a7a43371b306 58 }
ram54288 0:a7a43371b306 59 String ep;
ram54288 0:a7a43371b306 60 String rt;
ram54288 0:a7a43371b306 61 String dmn;
ram54288 0:a7a43371b306 62 if(endpoint) {
ram54288 0:a7a43371b306 63 ep += endpoint;
ram54288 0:a7a43371b306 64 }
ram54288 0:a7a43371b306 65 if(resource_type) {
ram54288 0:a7a43371b306 66 rt += resource_type;
ram54288 0:a7a43371b306 67 }
ram54288 0:a7a43371b306 68 if(domain) {
ram54288 0:a7a43371b306 69 dmn += domain;
ram54288 0:a7a43371b306 70 }
ram54288 0:a7a43371b306 71
ram54288 0:a7a43371b306 72 // Binding mode cannot be higher than 0x07 since it is an enum, check M2MInterface::BindingMode
ram54288 0:a7a43371b306 73 if(binding_mode > 0x07) {
ram54288 0:a7a43371b306 74 return false;
ram54288 0:a7a43371b306 75 }
ram54288 0:a7a43371b306 76
ram54288 0:a7a43371b306 77 switch (param_count) {
ram54288 0:a7a43371b306 78 case 0:
ram54288 0:a7a43371b306 79 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt);
ram54288 0:a7a43371b306 80 break;
ram54288 0:a7a43371b306 81 case 1:
ram54288 0:a7a43371b306 82 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt, lifetime);
ram54288 0:a7a43371b306 83 break;
ram54288 0:a7a43371b306 84 case 2:
ram54288 0:a7a43371b306 85 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt, lifetime, listen_port);
ram54288 0:a7a43371b306 86 break;
ram54288 0:a7a43371b306 87 case 3:
ram54288 0:a7a43371b306 88 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt, lifetime, listen_port, dmn);
ram54288 0:a7a43371b306 89 break;
ram54288 0:a7a43371b306 90 case 4:
ram54288 0:a7a43371b306 91 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt, lifetime, listen_port, dmn, (M2MInterface::BindingMode)binding_mode);
ram54288 0:a7a43371b306 92 break;
ram54288 0:a7a43371b306 93 case 5:
ram54288 0:a7a43371b306 94 _interface = M2MInterfaceFactory::create_interface(*this, ep, rt, lifetime, listen_port, dmn, (M2MInterface::BindingMode)binding_mode, (M2MInterface::NetworkStack)network_interface);
ram54288 0:a7a43371b306 95 break;
ram54288 0:a7a43371b306 96 }
ram54288 0:a7a43371b306 97 return (_interface == NULL) ? false : true;
ram54288 0:a7a43371b306 98 }
ram54288 0:a7a43371b306 99
ram54288 0:a7a43371b306 100 bool M2MLWClient::create_bootstrap_object(const char *coap_bootstrap_address)
ram54288 0:a7a43371b306 101 {
ram54288 0:a7a43371b306 102 bool success = false;
ram54288 0:a7a43371b306 103 String address;
ram54288 0:a7a43371b306 104 if(coap_bootstrap_address) {
ram54288 0:a7a43371b306 105 address += coap_bootstrap_address;
ram54288 0:a7a43371b306 106 }
ram54288 0:a7a43371b306 107 if(_security) {
ram54288 0:a7a43371b306 108 delete _security;
ram54288 0:a7a43371b306 109 }
ram54288 0:a7a43371b306 110 _security = M2MInterfaceFactory::create_security(M2MSecurity::Bootstrap);
ram54288 0:a7a43371b306 111 if(_security) {
ram54288 0:a7a43371b306 112 if(_security->set_resource_value(M2MSecurity::M2MServerUri, address) &&
ram54288 0:a7a43371b306 113 _security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::NoSecurity)) {
ram54288 0:a7a43371b306 114 success = true;
ram54288 0:a7a43371b306 115 }
ram54288 0:a7a43371b306 116 }
ram54288 0:a7a43371b306 117 return success;
ram54288 0:a7a43371b306 118 }
ram54288 0:a7a43371b306 119
ram54288 0:a7a43371b306 120 bool M2MLWClient::create_register_object(const char *coap_register_address, bool useSecureConn)
ram54288 0:a7a43371b306 121 {
ram54288 0:a7a43371b306 122 bool success = false;
ram54288 0:a7a43371b306 123 String address;
ram54288 0:a7a43371b306 124 if(coap_register_address) {
ram54288 0:a7a43371b306 125 address += coap_register_address;
ram54288 0:a7a43371b306 126 }
ram54288 0:a7a43371b306 127 if(_register_security) {
ram54288 0:a7a43371b306 128 delete _register_security;
ram54288 0:a7a43371b306 129 }
ram54288 0:a7a43371b306 130 _register_security = M2MInterfaceFactory::create_security(M2MSecurity::M2MServer);
ram54288 0:a7a43371b306 131 if(_register_security) {
ram54288 0:a7a43371b306 132 if( !useSecureConn ){
ram54288 0:a7a43371b306 133 if(_register_security->set_resource_value(M2MSecurity::M2MServerUri, address) &&
ram54288 0:a7a43371b306 134 _register_security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::NoSecurity)) {
ram54288 0:a7a43371b306 135 success = true;
ram54288 0:a7a43371b306 136 }
ram54288 0:a7a43371b306 137 }else{
ram54288 0:a7a43371b306 138 if(_register_security->set_resource_value(M2MSecurity::M2MServerUri, address) &&
ram54288 0:a7a43371b306 139 _register_security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::Certificate) &&
ram54288 0:a7a43371b306 140 _register_security->set_resource_value(M2MSecurity::ServerPublicKey,server_cert,server_cert_len) &&
ram54288 0:a7a43371b306 141 _register_security->set_resource_value(M2MSecurity::PublicKey,cert,cert_len) &&
ram54288 0:a7a43371b306 142 _register_security->set_resource_value(M2MSecurity::Secretkey,key,key_len) ){
ram54288 0:a7a43371b306 143 success = true;
ram54288 0:a7a43371b306 144 }
ram54288 0:a7a43371b306 145 }
ram54288 0:a7a43371b306 146 }
ram54288 0:a7a43371b306 147 return success;
ram54288 0:a7a43371b306 148 }
ram54288 0:a7a43371b306 149
ram54288 0:a7a43371b306 150 bool M2MLWClient::test_bootstrap()
ram54288 0:a7a43371b306 151 {
ram54288 0:a7a43371b306 152 bool success = false;
ram54288 0:a7a43371b306 153 if(_interface) {
ram54288 0:a7a43371b306 154 _interface->bootstrap(_security);
ram54288 0:a7a43371b306 155 success = true;
ram54288 0:a7a43371b306 156 }
ram54288 0:a7a43371b306 157 return success;
ram54288 0:a7a43371b306 158 }
ram54288 0:a7a43371b306 159
ram54288 0:a7a43371b306 160 bool M2MLWClient::create_device_object(M2MDevice::DeviceResource resource,
ram54288 0:a7a43371b306 161 const char *value)
ram54288 0:a7a43371b306 162 {
ram54288 0:a7a43371b306 163 bool success = false;
ram54288 0:a7a43371b306 164 String value_string;
ram54288 0:a7a43371b306 165 if(value) {
ram54288 0:a7a43371b306 166 value_string += value;
ram54288 0:a7a43371b306 167 }
ram54288 0:a7a43371b306 168 if(!_device) {
ram54288 0:a7a43371b306 169 _device = M2MInterfaceFactory::create_device();
ram54288 0:a7a43371b306 170 }
ram54288 0:a7a43371b306 171 if(_device) {
ram54288 0:a7a43371b306 172
ram54288 0:a7a43371b306 173 if(_device->create_resource(resource,value_string)){
ram54288 0:a7a43371b306 174 success = true;
ram54288 0:a7a43371b306 175 } else {
ram54288 0:a7a43371b306 176 success = _device->set_resource_value(resource,value);
ram54288 0:a7a43371b306 177 }
ram54288 0:a7a43371b306 178 }
ram54288 0:a7a43371b306 179 return success;
ram54288 0:a7a43371b306 180 }
ram54288 0:a7a43371b306 181
ram54288 0:a7a43371b306 182 bool M2MLWClient::create_device_object()
ram54288 0:a7a43371b306 183 {
ram54288 0:a7a43371b306 184 bool success = false;
ram54288 0:a7a43371b306 185 if(!_device) {
ram54288 0:a7a43371b306 186 _device = M2MInterfaceFactory::create_device();
ram54288 0:a7a43371b306 187 success = true;
ram54288 0:a7a43371b306 188 }
ram54288 0:a7a43371b306 189 return success;
ram54288 0:a7a43371b306 190 }
ram54288 0:a7a43371b306 191
ram54288 0:a7a43371b306 192 bool M2MLWClient::create_device_object(M2MDevice::DeviceResource resource,
ram54288 0:a7a43371b306 193 int64_t value)
ram54288 0:a7a43371b306 194 {
ram54288 0:a7a43371b306 195 bool success = false;
ram54288 0:a7a43371b306 196 if(!_device) {
ram54288 0:a7a43371b306 197 _device = M2MInterfaceFactory::create_device();
ram54288 0:a7a43371b306 198 }
ram54288 0:a7a43371b306 199 if(_device) {
ram54288 0:a7a43371b306 200 if(_device->create_resource(resource,value)) {
ram54288 0:a7a43371b306 201 success = true;
ram54288 0:a7a43371b306 202 } else {
ram54288 0:a7a43371b306 203 success = _device->set_resource_value(resource, value);
ram54288 0:a7a43371b306 204 }
ram54288 0:a7a43371b306 205 }
ram54288 0:a7a43371b306 206 return success;
ram54288 0:a7a43371b306 207 }
ram54288 0:a7a43371b306 208
ram54288 0:a7a43371b306 209 bool M2MLWClient::create_device_object(M2MDevice::DeviceResource resource,
ram54288 0:a7a43371b306 210 int64_t value,
ram54288 0:a7a43371b306 211 uint16_t instance_id)
ram54288 0:a7a43371b306 212 {
ram54288 0:a7a43371b306 213 bool success = false;
ram54288 0:a7a43371b306 214 if(!_device) {
ram54288 0:a7a43371b306 215 _device = M2MInterfaceFactory::create_device();
ram54288 0:a7a43371b306 216 }
ram54288 0:a7a43371b306 217 if(_device) {
ram54288 0:a7a43371b306 218 if(_device->create_resource_instance(resource,value,instance_id)) {
ram54288 0:a7a43371b306 219 success = true;
ram54288 0:a7a43371b306 220 } else {
ram54288 0:a7a43371b306 221 success = _device->set_resource_value(resource,
ram54288 0:a7a43371b306 222 value,
ram54288 0:a7a43371b306 223 instance_id);
ram54288 0:a7a43371b306 224 }
ram54288 0:a7a43371b306 225 }
ram54288 0:a7a43371b306 226 return success;
ram54288 0:a7a43371b306 227 }
ram54288 0:a7a43371b306 228
ram54288 0:a7a43371b306 229 bool M2MLWClient::create_firmware_object(M2MFirmware::FirmwareResource resource,
ram54288 0:a7a43371b306 230 const char *value)
ram54288 0:a7a43371b306 231 {
ram54288 0:a7a43371b306 232 bool success = false;
ram54288 0:a7a43371b306 233 String value_string;
ram54288 0:a7a43371b306 234 if(value) {
ram54288 0:a7a43371b306 235 value_string += value;
ram54288 0:a7a43371b306 236 }
ram54288 0:a7a43371b306 237 if(!_firmware) {
ram54288 0:a7a43371b306 238 _firmware = M2MInterfaceFactory::create_firmware();
ram54288 0:a7a43371b306 239 }
ram54288 0:a7a43371b306 240 if(_firmware) {
ram54288 0:a7a43371b306 241 if(_firmware->create_resource(resource,value_string)){
ram54288 0:a7a43371b306 242 success = true;
ram54288 0:a7a43371b306 243 } else {
ram54288 0:a7a43371b306 244 success = _firmware->set_resource_value(resource,value);
ram54288 0:a7a43371b306 245 }
ram54288 0:a7a43371b306 246 }
ram54288 0:a7a43371b306 247 return success;
ram54288 0:a7a43371b306 248 }
ram54288 0:a7a43371b306 249
ram54288 0:a7a43371b306 250 bool M2MLWClient::create_firmware_object()
ram54288 0:a7a43371b306 251 {
ram54288 0:a7a43371b306 252 bool success = false;
ram54288 0:a7a43371b306 253 if(!_firmware) {
ram54288 0:a7a43371b306 254 _firmware = M2MInterfaceFactory::create_firmware();
ram54288 0:a7a43371b306 255 success = true;
ram54288 0:a7a43371b306 256 }
ram54288 0:a7a43371b306 257 return success;
ram54288 0:a7a43371b306 258 }
ram54288 0:a7a43371b306 259
ram54288 0:a7a43371b306 260 bool M2MLWClient::create_firmware_object(M2MFirmware::FirmwareResource resource,
ram54288 0:a7a43371b306 261 int64_t value)
ram54288 0:a7a43371b306 262 {
ram54288 0:a7a43371b306 263 bool success = false;
ram54288 0:a7a43371b306 264 if(!_firmware) {
ram54288 0:a7a43371b306 265 _firmware = M2MInterfaceFactory::create_firmware();
ram54288 0:a7a43371b306 266 }
ram54288 0:a7a43371b306 267 if(_firmware) {
ram54288 0:a7a43371b306 268 if(_firmware->create_resource(resource,value)) {
ram54288 0:a7a43371b306 269 success = true;
ram54288 0:a7a43371b306 270 } else {
ram54288 0:a7a43371b306 271 success = _firmware->set_resource_value(resource, value);
ram54288 0:a7a43371b306 272 }
ram54288 0:a7a43371b306 273 }
ram54288 0:a7a43371b306 274 return success;
ram54288 0:a7a43371b306 275 }
ram54288 0:a7a43371b306 276
ram54288 0:a7a43371b306 277 bool M2MLWClient::create_firmware_object(M2MFirmware::FirmwareResource resource,
ram54288 0:a7a43371b306 278 const uint8_t *value,
ram54288 0:a7a43371b306 279 const uint32_t length)
ram54288 0:a7a43371b306 280 {
ram54288 0:a7a43371b306 281 bool success = false;
ram54288 0:a7a43371b306 282 if(!_firmware) {
ram54288 0:a7a43371b306 283 _firmware = M2MInterfaceFactory::create_firmware();
ram54288 0:a7a43371b306 284 }
ram54288 0:a7a43371b306 285 if(_firmware) {
ram54288 0:a7a43371b306 286 success = _firmware->set_resource_value(resource, value, length);
ram54288 0:a7a43371b306 287 }
ram54288 0:a7a43371b306 288 return success;
ram54288 0:a7a43371b306 289 }
ram54288 0:a7a43371b306 290
ram54288 0:a7a43371b306 291 void M2MLWClient::set_fw_execute_function()
ram54288 0:a7a43371b306 292 {
ram54288 0:a7a43371b306 293 if(_firmware) {
ram54288 0:a7a43371b306 294 M2MObjectInstance *inst = _firmware->object_instance(0);
ram54288 0:a7a43371b306 295 if(inst) {
ram54288 0:a7a43371b306 296 M2MResource *res = inst->resource("2");
ram54288 0:a7a43371b306 297 if (res) {
ram54288 0:a7a43371b306 298 res->set_execute_function(execute_callback(
ram54288 0:a7a43371b306 299 this,
ram54288 0:a7a43371b306 300 &M2MLWClient::fw_execute_function));
ram54288 0:a7a43371b306 301 }
ram54288 0:a7a43371b306 302 }
ram54288 0:a7a43371b306 303 }
ram54288 0:a7a43371b306 304 }
ram54288 0:a7a43371b306 305
ram54288 0:a7a43371b306 306 bool M2MLWClient::create_object(const char *name,
ram54288 0:a7a43371b306 307 bool new_instance,
ram54288 0:a7a43371b306 308 uint8_t object_operation,
ram54288 0:a7a43371b306 309 uint8_t object_instance_operation,
ram54288 0:a7a43371b306 310 uint16_t object_instance_id,
ram54288 0:a7a43371b306 311 bool object_observable,
ram54288 0:a7a43371b306 312 bool object_instance_observable)
ram54288 0:a7a43371b306 313 {
ram54288 0:a7a43371b306 314 bool success = false;
ram54288 0:a7a43371b306 315 M2MObjectInstance *inst = NULL;
ram54288 0:a7a43371b306 316 if(!_object) {
ram54288 0:a7a43371b306 317 _object = M2MInterfaceFactory::create_object(name);
ram54288 0:a7a43371b306 318 if(_object) {
ram54288 0:a7a43371b306 319 _object->set_operation(int_to_operation(object_operation));
ram54288 0:a7a43371b306 320 _object->set_observable(object_observable);
ram54288 0:a7a43371b306 321 inst = _object->create_object_instance(object_instance_id);
ram54288 0:a7a43371b306 322 if(inst) {
ram54288 0:a7a43371b306 323 success = true;
ram54288 0:a7a43371b306 324 inst->set_operation(int_to_operation(object_instance_operation));
ram54288 0:a7a43371b306 325 inst->set_observable(object_instance_observable);
ram54288 0:a7a43371b306 326 }
ram54288 0:a7a43371b306 327 }
ram54288 0:a7a43371b306 328 } else {
ram54288 0:a7a43371b306 329 if(new_instance) {
ram54288 0:a7a43371b306 330 inst = _object->create_object_instance(object_instance_id);
ram54288 0:a7a43371b306 331 if(inst) {
ram54288 0:a7a43371b306 332 success = true;
ram54288 0:a7a43371b306 333 inst->set_operation(int_to_operation(object_instance_operation));
ram54288 0:a7a43371b306 334 inst->set_observable(object_instance_observable);
ram54288 0:a7a43371b306 335 }
ram54288 0:a7a43371b306 336 }
ram54288 0:a7a43371b306 337 }
ram54288 0:a7a43371b306 338 return success;
ram54288 0:a7a43371b306 339 }
ram54288 0:a7a43371b306 340
ram54288 0:a7a43371b306 341 bool M2MLWClient::create_static_resource_string(const char *name,
ram54288 0:a7a43371b306 342 const char *value,
ram54288 0:a7a43371b306 343 bool multiple_instance,
ram54288 0:a7a43371b306 344 uint16_t object_instance)
ram54288 0:a7a43371b306 345 {
ram54288 0:a7a43371b306 346 bool success = false;
ram54288 0:a7a43371b306 347 String name_string;
ram54288 0:a7a43371b306 348 if(name) {
ram54288 0:a7a43371b306 349 name_string += name;
ram54288 0:a7a43371b306 350 }
ram54288 0:a7a43371b306 351 String value_string;
ram54288 0:a7a43371b306 352 if(value) {
ram54288 0:a7a43371b306 353 value_string += value;
ram54288 0:a7a43371b306 354 }
ram54288 0:a7a43371b306 355 if(_object) {
ram54288 0:a7a43371b306 356 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 357 if(inst) {
ram54288 0:a7a43371b306 358 if(inst->create_static_resource(name,"resource",
ram54288 0:a7a43371b306 359 M2MResourceInstance::STRING,
ram54288 0:a7a43371b306 360 (const uint8_t*)value_string.c_str(),
ram54288 0:a7a43371b306 361 value_string.size()) != NULL) {
ram54288 0:a7a43371b306 362 success = true;
ram54288 0:a7a43371b306 363 }
ram54288 0:a7a43371b306 364 }
ram54288 0:a7a43371b306 365 }
ram54288 0:a7a43371b306 366 return success;
ram54288 0:a7a43371b306 367 }
ram54288 0:a7a43371b306 368
ram54288 0:a7a43371b306 369 bool M2MLWClient::create_static_resource_int(const char *name,
ram54288 0:a7a43371b306 370 int64_t value,
ram54288 0:a7a43371b306 371 bool multiple_instance,
ram54288 0:a7a43371b306 372 uint16_t object_instance)
ram54288 0:a7a43371b306 373 {
ram54288 0:a7a43371b306 374 bool success = false;
ram54288 0:a7a43371b306 375 String name_string;
ram54288 0:a7a43371b306 376 String value_string;
ram54288 0:a7a43371b306 377
ram54288 0:a7a43371b306 378 if(name) {
ram54288 0:a7a43371b306 379 name_string += name;
ram54288 0:a7a43371b306 380 }
ram54288 0:a7a43371b306 381
ram54288 0:a7a43371b306 382 char value_buffer[20];
ram54288 0:a7a43371b306 383 sprintf(value_buffer,"%ld",value);
ram54288 0:a7a43371b306 384 value_string += value_buffer;
ram54288 0:a7a43371b306 385
ram54288 0:a7a43371b306 386 if(_object) {
ram54288 0:a7a43371b306 387 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 388 if(inst) {
ram54288 0:a7a43371b306 389 if(inst->create_static_resource(name,"resource",
ram54288 0:a7a43371b306 390 M2MResourceInstance::INTEGER,
ram54288 0:a7a43371b306 391 (const uint8_t*)value_string.c_str(),
ram54288 0:a7a43371b306 392 value_string.size()) != NULL) {
ram54288 0:a7a43371b306 393 success = true;
ram54288 0:a7a43371b306 394 }
ram54288 0:a7a43371b306 395 }
ram54288 0:a7a43371b306 396 }
ram54288 0:a7a43371b306 397 return success;
ram54288 0:a7a43371b306 398 }
ram54288 0:a7a43371b306 399
ram54288 0:a7a43371b306 400 bool M2MLWClient::create_dynamic_resource_string(const char *name,
ram54288 0:a7a43371b306 401 bool observable,
ram54288 0:a7a43371b306 402 bool multiple_instance,
ram54288 0:a7a43371b306 403 uint16_t object_instance,
ram54288 0:a7a43371b306 404 uint8_t resource_operation)
ram54288 0:a7a43371b306 405 {
ram54288 0:a7a43371b306 406 bool success = false;
ram54288 0:a7a43371b306 407 String name_string;
ram54288 0:a7a43371b306 408 if(name) {
ram54288 0:a7a43371b306 409 name_string += name;
ram54288 0:a7a43371b306 410 }
ram54288 0:a7a43371b306 411 if(_object) {
ram54288 0:a7a43371b306 412 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 413 if(inst) {
ram54288 0:a7a43371b306 414 M2MResource *res = inst->create_dynamic_resource(name,"resource",
ram54288 0:a7a43371b306 415 M2MResourceInstance::STRING,
ram54288 0:a7a43371b306 416 observable, multiple_instance);
ram54288 0:a7a43371b306 417 if(res) {
ram54288 0:a7a43371b306 418 success = true;
ram54288 0:a7a43371b306 419 res->set_operation(int_to_operation(resource_operation));
ram54288 0:a7a43371b306 420 }
ram54288 0:a7a43371b306 421 }
ram54288 0:a7a43371b306 422 }
ram54288 0:a7a43371b306 423 return success;
ram54288 0:a7a43371b306 424 }
ram54288 0:a7a43371b306 425
ram54288 0:a7a43371b306 426 bool M2MLWClient::create_dynamic_resource_int(const char *name,
ram54288 0:a7a43371b306 427 bool observable,
ram54288 0:a7a43371b306 428 bool multiple_instance,
ram54288 0:a7a43371b306 429 uint16_t object_instance,
ram54288 0:a7a43371b306 430 uint8_t resource_operation)
ram54288 0:a7a43371b306 431 {
ram54288 0:a7a43371b306 432 bool success = false;
ram54288 0:a7a43371b306 433 String name_string;
ram54288 0:a7a43371b306 434 if(name) {
ram54288 0:a7a43371b306 435 name_string += name;
ram54288 0:a7a43371b306 436 }
ram54288 0:a7a43371b306 437 if(_object) {
ram54288 0:a7a43371b306 438 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 439 if(inst) {
ram54288 0:a7a43371b306 440 M2MResource *res = inst->create_dynamic_resource(name,"resource",
ram54288 0:a7a43371b306 441 M2MResourceInstance::INTEGER,
ram54288 0:a7a43371b306 442 observable, multiple_instance);
ram54288 0:a7a43371b306 443 if(res) {
ram54288 0:a7a43371b306 444 success = true;
ram54288 0:a7a43371b306 445 res->set_operation(int_to_operation(resource_operation));
ram54288 0:a7a43371b306 446 }
ram54288 0:a7a43371b306 447 }
ram54288 0:a7a43371b306 448 }
ram54288 0:a7a43371b306 449 return success;
ram54288 0:a7a43371b306 450 }
ram54288 0:a7a43371b306 451
ram54288 0:a7a43371b306 452 bool M2MLWClient::set_resource_value(const char *name,
ram54288 0:a7a43371b306 453 int32_t value,
ram54288 0:a7a43371b306 454 uint16_t object_instance)
ram54288 0:a7a43371b306 455 {
ram54288 0:a7a43371b306 456 bool success = false;
ram54288 0:a7a43371b306 457 String name_string;
ram54288 0:a7a43371b306 458 String value_string;
ram54288 0:a7a43371b306 459 if(name) {
ram54288 0:a7a43371b306 460 name_string += name;
ram54288 0:a7a43371b306 461 }
ram54288 0:a7a43371b306 462
ram54288 0:a7a43371b306 463 char value_buffer[20];
ram54288 0:a7a43371b306 464 sprintf(value_buffer,"%d",value);
ram54288 0:a7a43371b306 465 value_string += value_buffer;
ram54288 0:a7a43371b306 466
ram54288 0:a7a43371b306 467 if(_object && name_string.length() > 0) {
ram54288 0:a7a43371b306 468 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 469 if(inst) {
ram54288 0:a7a43371b306 470 M2MResource *res = inst->resource(name_string);
ram54288 0:a7a43371b306 471 if (res) {
ram54288 0:a7a43371b306 472 if (res->set_value((const uint8_t*)value_string.c_str(), value_string.size())) {
ram54288 0:a7a43371b306 473 success = true;
ram54288 0:a7a43371b306 474 }
ram54288 0:a7a43371b306 475 }
ram54288 0:a7a43371b306 476 }
ram54288 0:a7a43371b306 477 }
ram54288 0:a7a43371b306 478 return success;
ram54288 0:a7a43371b306 479 }
ram54288 0:a7a43371b306 480
ram54288 0:a7a43371b306 481 bool M2MLWClient::set_resource_value(const char *name,
ram54288 0:a7a43371b306 482 const char *value,
ram54288 0:a7a43371b306 483 uint16_t object_instance)
ram54288 0:a7a43371b306 484 {
ram54288 0:a7a43371b306 485 bool success = false;
ram54288 0:a7a43371b306 486 String name_string;
ram54288 0:a7a43371b306 487 String value_string;
ram54288 0:a7a43371b306 488 if(name) {
ram54288 0:a7a43371b306 489 name_string += name;
ram54288 0:a7a43371b306 490 }
ram54288 0:a7a43371b306 491 if(value) {
ram54288 0:a7a43371b306 492 value_string += value;
ram54288 0:a7a43371b306 493 }
ram54288 0:a7a43371b306 494
ram54288 0:a7a43371b306 495 if(_object && name_string.length() > 0) {
ram54288 0:a7a43371b306 496 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 497 if(inst) {
ram54288 0:a7a43371b306 498 M2MResource *res = inst->resource(name_string);
ram54288 0:a7a43371b306 499 if (res) {
ram54288 0:a7a43371b306 500 if (res->set_value((const uint8_t*)value_string.c_str(), value_string.size())) {
ram54288 0:a7a43371b306 501 success = true;
ram54288 0:a7a43371b306 502 }
ram54288 0:a7a43371b306 503 }
ram54288 0:a7a43371b306 504 }
ram54288 0:a7a43371b306 505 }
ram54288 0:a7a43371b306 506 return success;
ram54288 0:a7a43371b306 507 }
ram54288 0:a7a43371b306 508
ram54288 0:a7a43371b306 509 bool M2MLWClient::create_static_resource_instance_string(const char *name,
ram54288 0:a7a43371b306 510 const char *value,
ram54288 0:a7a43371b306 511 bool multiple_instance,
ram54288 0:a7a43371b306 512 uint16_t object_instance,
ram54288 0:a7a43371b306 513 uint16_t resource_instance)
ram54288 0:a7a43371b306 514 {
ram54288 0:a7a43371b306 515 bool success = false;
ram54288 0:a7a43371b306 516 String name_string;
ram54288 0:a7a43371b306 517 if(name) {
ram54288 0:a7a43371b306 518 name_string += name;
ram54288 0:a7a43371b306 519 }
ram54288 0:a7a43371b306 520 String value_string;
ram54288 0:a7a43371b306 521 if(value) {
ram54288 0:a7a43371b306 522 value_string += value;
ram54288 0:a7a43371b306 523 }
ram54288 0:a7a43371b306 524 if(_object) {
ram54288 0:a7a43371b306 525 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 526 if(inst) {
ram54288 0:a7a43371b306 527 if(inst->create_static_resource_instance(name,"resource",
ram54288 0:a7a43371b306 528 M2MResourceInstance::STRING,
ram54288 0:a7a43371b306 529 (const uint8_t*)value_string.c_str(),
ram54288 0:a7a43371b306 530 value_string.size(),
ram54288 0:a7a43371b306 531 resource_instance) != NULL) {
ram54288 0:a7a43371b306 532 success = true;
ram54288 0:a7a43371b306 533 }
ram54288 0:a7a43371b306 534 }
ram54288 0:a7a43371b306 535 }
ram54288 0:a7a43371b306 536 return success;
ram54288 0:a7a43371b306 537 }
ram54288 0:a7a43371b306 538
ram54288 0:a7a43371b306 539 bool M2MLWClient::create_static_resource_instance_int(const char *name,
ram54288 0:a7a43371b306 540 int32_t value,
ram54288 0:a7a43371b306 541 bool multiple_instance,
ram54288 0:a7a43371b306 542 uint16_t object_instance,
ram54288 0:a7a43371b306 543 uint16_t resource_instance)
ram54288 0:a7a43371b306 544 {
ram54288 0:a7a43371b306 545 bool success = false;
ram54288 0:a7a43371b306 546 String name_string;
ram54288 0:a7a43371b306 547 String value_string;
ram54288 0:a7a43371b306 548
ram54288 0:a7a43371b306 549 if(name) {
ram54288 0:a7a43371b306 550 name_string += name;
ram54288 0:a7a43371b306 551 }
ram54288 0:a7a43371b306 552
ram54288 0:a7a43371b306 553 char value_buffer[20];
ram54288 0:a7a43371b306 554 sprintf(value_buffer,"%ld",value);
ram54288 0:a7a43371b306 555 value_string += value_buffer;
ram54288 0:a7a43371b306 556
ram54288 0:a7a43371b306 557 if(_object) {
ram54288 0:a7a43371b306 558 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 559 if(inst) {
ram54288 0:a7a43371b306 560 if(inst->create_static_resource_instance(name,"resource",
ram54288 0:a7a43371b306 561 M2MResourceInstance::INTEGER,
ram54288 0:a7a43371b306 562 (const uint8_t*)value_string.c_str(),
ram54288 0:a7a43371b306 563 value_string.size(),
ram54288 0:a7a43371b306 564 resource_instance) != NULL) {
ram54288 0:a7a43371b306 565 success = true;
ram54288 0:a7a43371b306 566 }
ram54288 0:a7a43371b306 567 }
ram54288 0:a7a43371b306 568 }
ram54288 0:a7a43371b306 569 return success;
ram54288 0:a7a43371b306 570 }
ram54288 0:a7a43371b306 571
ram54288 0:a7a43371b306 572 bool M2MLWClient::create_dynamic_resource_instance_int(const char *name,
ram54288 0:a7a43371b306 573 bool observable,
ram54288 0:a7a43371b306 574 bool multiple_instance,
ram54288 0:a7a43371b306 575 uint16_t object_instance,
ram54288 0:a7a43371b306 576 uint16_t resource_instance,
ram54288 0:a7a43371b306 577 uint8_t resource_instance_operation)
ram54288 0:a7a43371b306 578 {
ram54288 0:a7a43371b306 579 bool success = false;
ram54288 0:a7a43371b306 580 String name_string;
ram54288 0:a7a43371b306 581 if(name) {
ram54288 0:a7a43371b306 582 name_string += name;
ram54288 0:a7a43371b306 583 }
ram54288 0:a7a43371b306 584 if(_object) {
ram54288 0:a7a43371b306 585 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 586 if(inst) {
ram54288 0:a7a43371b306 587 M2MResourceInstance *res = inst->create_dynamic_resource_instance(name,"resource",
ram54288 0:a7a43371b306 588 M2MResourceInstance::INTEGER,
ram54288 0:a7a43371b306 589 observable,
ram54288 0:a7a43371b306 590 resource_instance);
ram54288 0:a7a43371b306 591 if( res) {
ram54288 0:a7a43371b306 592 success = true;
ram54288 0:a7a43371b306 593 res->set_operation(int_to_operation(resource_instance_operation));
ram54288 0:a7a43371b306 594 }
ram54288 0:a7a43371b306 595 }
ram54288 0:a7a43371b306 596 }
ram54288 0:a7a43371b306 597 return success;
ram54288 0:a7a43371b306 598 }
ram54288 0:a7a43371b306 599
ram54288 0:a7a43371b306 600 bool M2MLWClient::create_dynamic_resource_instance_string(const char *name,
ram54288 0:a7a43371b306 601 bool observable,
ram54288 0:a7a43371b306 602 bool multiple_instance,
ram54288 0:a7a43371b306 603 uint16_t object_instance,
ram54288 0:a7a43371b306 604 uint16_t resource_instance,
ram54288 0:a7a43371b306 605 uint8_t resource_instance_operation)
ram54288 0:a7a43371b306 606 {
ram54288 0:a7a43371b306 607 bool success = false;
ram54288 0:a7a43371b306 608 String name_string;
ram54288 0:a7a43371b306 609 if(name) {
ram54288 0:a7a43371b306 610 name_string += name;
ram54288 0:a7a43371b306 611 }
ram54288 0:a7a43371b306 612 if(_object) {
ram54288 0:a7a43371b306 613 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 614 if(inst) {
ram54288 0:a7a43371b306 615 M2MResourceInstance *res = inst->create_dynamic_resource_instance(name,"resource",
ram54288 0:a7a43371b306 616 M2MResourceInstance::STRING,
ram54288 0:a7a43371b306 617 observable,
ram54288 0:a7a43371b306 618 resource_instance);
ram54288 0:a7a43371b306 619 if( res) {
ram54288 0:a7a43371b306 620 success = true;
ram54288 0:a7a43371b306 621 res->set_operation(int_to_operation(resource_instance_operation));
ram54288 0:a7a43371b306 622 }
ram54288 0:a7a43371b306 623 }
ram54288 0:a7a43371b306 624 }
ram54288 0:a7a43371b306 625 return success;
ram54288 0:a7a43371b306 626 }
ram54288 0:a7a43371b306 627
ram54288 0:a7a43371b306 628 bool M2MLWClient::set_resource_instance_value(const char *name,
ram54288 0:a7a43371b306 629 int32_t value,
ram54288 0:a7a43371b306 630 uint16_t object_instance,
ram54288 0:a7a43371b306 631 uint16_t resource_instance)
ram54288 0:a7a43371b306 632 {
ram54288 0:a7a43371b306 633 bool success = false;
ram54288 0:a7a43371b306 634 String name_string;
ram54288 0:a7a43371b306 635 String value_string;
ram54288 0:a7a43371b306 636 if(name) {
ram54288 0:a7a43371b306 637 name_string += name;
ram54288 0:a7a43371b306 638 }
ram54288 0:a7a43371b306 639
ram54288 0:a7a43371b306 640 char value_buffer[20];
ram54288 0:a7a43371b306 641 sprintf(value_buffer,"%d",value);
ram54288 0:a7a43371b306 642 value_string += value_buffer;
ram54288 0:a7a43371b306 643
ram54288 0:a7a43371b306 644 if(_object && name_string.length() > 0) {
ram54288 0:a7a43371b306 645 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 646 if(inst) {
ram54288 0:a7a43371b306 647 M2MResource *res = inst->resource(name_string);
ram54288 0:a7a43371b306 648 if (res) {
ram54288 0:a7a43371b306 649 M2MResourceInstance *res_inst = res->resource_instance(resource_instance);
ram54288 0:a7a43371b306 650 if(res_inst) {
ram54288 0:a7a43371b306 651 if (res_inst->set_value((const uint8_t*)value_string.c_str(), value_string.size())) {
ram54288 0:a7a43371b306 652 success = true;
ram54288 0:a7a43371b306 653 }
ram54288 0:a7a43371b306 654 }
ram54288 0:a7a43371b306 655 }
ram54288 0:a7a43371b306 656 }
ram54288 0:a7a43371b306 657 }
ram54288 0:a7a43371b306 658 return success;
ram54288 0:a7a43371b306 659 }
ram54288 0:a7a43371b306 660
ram54288 0:a7a43371b306 661 bool M2MLWClient::set_resource_instance_value(const char *name,
ram54288 0:a7a43371b306 662 const char *value,
ram54288 0:a7a43371b306 663 uint16_t object_instance,
ram54288 0:a7a43371b306 664 uint16_t resource_instance)
ram54288 0:a7a43371b306 665 {
ram54288 0:a7a43371b306 666 bool success = false;
ram54288 0:a7a43371b306 667 String name_string;
ram54288 0:a7a43371b306 668 String value_string;
ram54288 0:a7a43371b306 669 if(name) {
ram54288 0:a7a43371b306 670 name_string += name;
ram54288 0:a7a43371b306 671 }
ram54288 0:a7a43371b306 672 if(value) {
ram54288 0:a7a43371b306 673 value_string += value;
ram54288 0:a7a43371b306 674 }
ram54288 0:a7a43371b306 675
ram54288 0:a7a43371b306 676 if(_object && name_string.length() > 0) {
ram54288 0:a7a43371b306 677 M2MObjectInstance *inst = _object->object_instance(object_instance);
ram54288 0:a7a43371b306 678 if(inst) {
ram54288 0:a7a43371b306 679 M2MResource *res = inst->resource(name_string);
ram54288 0:a7a43371b306 680 if (res) {
ram54288 0:a7a43371b306 681 M2MResourceInstance *res_inst = res->resource_instance(resource_instance);
ram54288 0:a7a43371b306 682 if(res_inst) {
ram54288 0:a7a43371b306 683 if (res_inst->set_value((const uint8_t*)value_string.c_str(), value_string.size())) {
ram54288 0:a7a43371b306 684 success = true;
ram54288 0:a7a43371b306 685 }
ram54288 0:a7a43371b306 686 }
ram54288 0:a7a43371b306 687 }
ram54288 0:a7a43371b306 688 }
ram54288 0:a7a43371b306 689 }
ram54288 0:a7a43371b306 690 return success;
ram54288 0:a7a43371b306 691 }
ram54288 0:a7a43371b306 692
ram54288 0:a7a43371b306 693 bool M2MLWClient::test_register()
ram54288 0:a7a43371b306 694 {
ram54288 0:a7a43371b306 695 bool success = false;
ram54288 0:a7a43371b306 696 M2MObjectList object_list;
ram54288 0:a7a43371b306 697 if(_device) {
ram54288 0:a7a43371b306 698 object_list.push_back(_device);
ram54288 0:a7a43371b306 699 }
ram54288 0:a7a43371b306 700 if(_firmware) {
ram54288 0:a7a43371b306 701 object_list.push_back(_firmware);
ram54288 0:a7a43371b306 702 }
ram54288 0:a7a43371b306 703 if(_object) {
ram54288 0:a7a43371b306 704 object_list.push_back(_object);
ram54288 0:a7a43371b306 705 }
ram54288 0:a7a43371b306 706 if(_interface) {
ram54288 0:a7a43371b306 707 _interface->register_object(_register_security,object_list);
ram54288 0:a7a43371b306 708 success = true;
ram54288 0:a7a43371b306 709 }
ram54288 0:a7a43371b306 710 return success;
ram54288 0:a7a43371b306 711 }
ram54288 0:a7a43371b306 712
ram54288 0:a7a43371b306 713 bool M2MLWClient::test_update_register(const uint32_t lifetime)
ram54288 0:a7a43371b306 714 {
ram54288 0:a7a43371b306 715 bool success = false;
ram54288 0:a7a43371b306 716 if(_interface && _register_security) {
ram54288 0:a7a43371b306 717 success = true;
ram54288 0:a7a43371b306 718 _interface->update_registration(_register_security,lifetime);
ram54288 0:a7a43371b306 719 }
ram54288 0:a7a43371b306 720 return success;
ram54288 0:a7a43371b306 721 }
ram54288 0:a7a43371b306 722
ram54288 0:a7a43371b306 723 bool M2MLWClient::test_unregister()
ram54288 0:a7a43371b306 724 {
ram54288 0:a7a43371b306 725 bool success = false;
ram54288 0:a7a43371b306 726 if(_interface) {
ram54288 0:a7a43371b306 727 success = true;
ram54288 0:a7a43371b306 728 _interface->unregister_object(_register_security);
ram54288 0:a7a43371b306 729 }
ram54288 0:a7a43371b306 730 return success;
ram54288 0:a7a43371b306 731 }
ram54288 0:a7a43371b306 732
ram54288 0:a7a43371b306 733 void M2MLWClient::bootstrap_done(M2MSecurity *server_object)
ram54288 0:a7a43371b306 734 {
ram54288 0:a7a43371b306 735 if(server_object) {
ram54288 0:a7a43371b306 736 _register_security = server_object;
ram54288 0:a7a43371b306 737 _bootstrapped = true;
ram54288 0:a7a43371b306 738 cmd_printf("\nBootstrapped\n");
ram54288 0:a7a43371b306 739 cmd_ready( CMDLINE_RETCODE_SUCCESS );
ram54288 0:a7a43371b306 740 }
ram54288 0:a7a43371b306 741 }
ram54288 0:a7a43371b306 742
ram54288 0:a7a43371b306 743 void M2MLWClient::object_registered(M2MSecurity *security_object, const M2MServer &server_object)
ram54288 0:a7a43371b306 744 {
ram54288 0:a7a43371b306 745 _registered = true;
ram54288 0:a7a43371b306 746 cmd_printf("\nRegistered\n");
ram54288 0:a7a43371b306 747 cmd_ready( CMDLINE_RETCODE_SUCCESS );
ram54288 0:a7a43371b306 748 }
ram54288 0:a7a43371b306 749
ram54288 0:a7a43371b306 750 void M2MLWClient::object_unregistered(M2MSecurity *server_object)
ram54288 0:a7a43371b306 751 {
ram54288 0:a7a43371b306 752 _unregistered = true;
ram54288 0:a7a43371b306 753 if(_device) {
ram54288 0:a7a43371b306 754 M2MDevice::delete_instance();
ram54288 0:a7a43371b306 755 _device = NULL;
ram54288 0:a7a43371b306 756 }
ram54288 0:a7a43371b306 757 if(_object) {
ram54288 0:a7a43371b306 758 delete _object;
ram54288 0:a7a43371b306 759 _object = NULL;
ram54288 0:a7a43371b306 760 }
ram54288 0:a7a43371b306 761 if(_security) {
ram54288 0:a7a43371b306 762 delete _security;
ram54288 0:a7a43371b306 763 _security = NULL;
ram54288 0:a7a43371b306 764 }
ram54288 0:a7a43371b306 765 if(_register_security) {
ram54288 0:a7a43371b306 766 delete _register_security;
ram54288 0:a7a43371b306 767 _register_security = NULL;
ram54288 0:a7a43371b306 768 }
ram54288 0:a7a43371b306 769 cmd_printf("\nUnregistered\n");
ram54288 0:a7a43371b306 770 cmd_ready( CMDLINE_RETCODE_SUCCESS );
ram54288 0:a7a43371b306 771 }
ram54288 0:a7a43371b306 772
ram54288 0:a7a43371b306 773 void M2MLWClient::registration_updated(M2MSecurity *security_object,
ram54288 0:a7a43371b306 774 const M2MServer &server_object)
ram54288 0:a7a43371b306 775 {
ram54288 0:a7a43371b306 776 _registration_updated = true;
ram54288 0:a7a43371b306 777 cmd_printf("\nregistration updated\n");
ram54288 0:a7a43371b306 778 cmd_ready( CMDLINE_RETCODE_SUCCESS );
ram54288 0:a7a43371b306 779 }
ram54288 0:a7a43371b306 780
ram54288 0:a7a43371b306 781 void M2MLWClient::error(M2MInterface::Error error)
ram54288 0:a7a43371b306 782 {
ram54288 0:a7a43371b306 783 _error = true;
ram54288 0:a7a43371b306 784 cmd_printf("\nError occured Error Code : %d\n", (int8_t)error);
ram54288 0:a7a43371b306 785 cmd_ready( CMDLINE_RETCODE_SUCCESS );
ram54288 0:a7a43371b306 786 }
ram54288 0:a7a43371b306 787
ram54288 0:a7a43371b306 788 void M2MLWClient::value_updated(M2MBase *base, M2MBase::BaseType type)
ram54288 0:a7a43371b306 789 {
ram54288 0:a7a43371b306 790 cmd_printf("\nValue updated of Object name %s and Type \n",
ram54288 0:a7a43371b306 791 base->name().c_str(), type);
ram54288 0:a7a43371b306 792 }
ram54288 0:a7a43371b306 793
ram54288 0:a7a43371b306 794 M2MBase::Operation M2MLWClient::int_to_operation(uint8_t operation)
ram54288 0:a7a43371b306 795 {
ram54288 0:a7a43371b306 796 M2MBase::Operation op = M2MBase::NOT_ALLOWED;
ram54288 0:a7a43371b306 797 switch(operation) {
ram54288 0:a7a43371b306 798 case 0:
ram54288 0:a7a43371b306 799 op = M2MBase::NOT_ALLOWED;
ram54288 0:a7a43371b306 800 break;
ram54288 0:a7a43371b306 801 case 1:
ram54288 0:a7a43371b306 802 op = M2MBase::GET_ALLOWED;
ram54288 0:a7a43371b306 803 break;
ram54288 0:a7a43371b306 804 case 2:
ram54288 0:a7a43371b306 805 op = M2MBase::PUT_ALLOWED;
ram54288 0:a7a43371b306 806 break;
ram54288 0:a7a43371b306 807 case 3:
ram54288 0:a7a43371b306 808 op = M2MBase::GET_PUT_ALLOWED;
ram54288 0:a7a43371b306 809 break;
ram54288 0:a7a43371b306 810 case 4:
ram54288 0:a7a43371b306 811 op = M2MBase::POST_ALLOWED;
ram54288 0:a7a43371b306 812 break;
ram54288 0:a7a43371b306 813 case 5:
ram54288 0:a7a43371b306 814 op = M2MBase::GET_POST_ALLOWED;
ram54288 0:a7a43371b306 815 break;
ram54288 0:a7a43371b306 816 case 6:
ram54288 0:a7a43371b306 817 op = M2MBase::PUT_POST_ALLOWED;
ram54288 0:a7a43371b306 818 break;
ram54288 0:a7a43371b306 819 case 7:
ram54288 0:a7a43371b306 820 op = M2MBase::GET_PUT_POST_ALLOWED;
ram54288 0:a7a43371b306 821 break;
ram54288 0:a7a43371b306 822 case 8:
ram54288 0:a7a43371b306 823 op = M2MBase::DELETE_ALLOWED;
ram54288 0:a7a43371b306 824 break;
ram54288 0:a7a43371b306 825 default:
ram54288 0:a7a43371b306 826 break;
ram54288 0:a7a43371b306 827 }
ram54288 0:a7a43371b306 828 return op;
ram54288 0:a7a43371b306 829 }
ram54288 0:a7a43371b306 830
ram54288 0:a7a43371b306 831 void M2MLWClient::fw_execute_function(void *argument)
ram54288 0:a7a43371b306 832 {
ram54288 0:a7a43371b306 833 if(argument) {
ram54288 0:a7a43371b306 834 char* arguments = (char*)argument;
ram54288 0:a7a43371b306 835 cmd_printf("Received %s!!\n", arguments);
ram54288 0:a7a43371b306 836 }
ram54288 0:a7a43371b306 837 cmd_printf("Firmware update executed\n");
ram54288 0:a7a43371b306 838 }
ram54288 0:a7a43371b306 839
ram54288 0:a7a43371b306 840 void M2MLWClient::firmware_resource_int(int resource)
ram54288 0:a7a43371b306 841 {
ram54288 0:a7a43371b306 842 cmd_printf("Firmware resource value int\n");
ram54288 0:a7a43371b306 843 cmd_printf("%ld\n", _firmware->resource_value_int(static_cast<M2MFirmware::FirmwareResource>(resource)));
ram54288 0:a7a43371b306 844 }
ram54288 0:a7a43371b306 845
ram54288 0:a7a43371b306 846 void M2MLWClient::firmware_resource_string(int resource)
ram54288 0:a7a43371b306 847 {
ram54288 0:a7a43371b306 848 cmd_printf("Firmware resource value string\n");
ram54288 0:a7a43371b306 849 cmd_printf("%s\n", _firmware->resource_value_string(static_cast<M2MFirmware::FirmwareResource>(resource)).c_str());
ram54288 0:a7a43371b306 850 }
ram54288 0:a7a43371b306 851
ram54288 0:a7a43371b306 852 void M2MLWClient::firmware_resource_buffer()
ram54288 0:a7a43371b306 853 {
ram54288 0:a7a43371b306 854 cmd_printf("Firmware resource value buffer\n");
ram54288 0:a7a43371b306 855 uint8_t *value = 0;
ram54288 0:a7a43371b306 856 uint32_t valueSize = _firmware->resource_value_buffer(M2MFirmware::Package, value);
ram54288 0:a7a43371b306 857 cmd_printf("%s\n", value);
ram54288 0:a7a43371b306 858 free(value);
ram54288 0:a7a43371b306 859 }