mbed client lightswitch demo

Dependencies:   mbed Socket lwip-eth lwip-sys lwip

Fork of mbed-client-classic-example-lwip by Austin Blackstone

Committer:
mbedAustin
Date:
Thu Jun 09 17:08:36 2016 +0000
Revision:
11:cada08fc8a70
Commit for public Consumption

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 11:cada08fc8a70 1 /*
mbedAustin 11:cada08fc8a70 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
mbedAustin 11:cada08fc8a70 3 * SPDX-License-Identifier: Apache-2.0
mbedAustin 11:cada08fc8a70 4 * Licensed under the Apache License, Version 2.0 (the License); you may
mbedAustin 11:cada08fc8a70 5 * not use this file except in compliance with the License.
mbedAustin 11:cada08fc8a70 6 * You may obtain a copy of the License at
mbedAustin 11:cada08fc8a70 7 *
mbedAustin 11:cada08fc8a70 8 * http://www.apache.org/licenses/LICENSE-2.0
mbedAustin 11:cada08fc8a70 9 *
mbedAustin 11:cada08fc8a70 10 * Unless required by applicable law or agreed to in writing, software
mbedAustin 11:cada08fc8a70 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
mbedAustin 11:cada08fc8a70 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbedAustin 11:cada08fc8a70 13 * See the License for the specific language governing permissions and
mbedAustin 11:cada08fc8a70 14 * limitations under the License.
mbedAustin 11:cada08fc8a70 15 */
mbedAustin 11:cada08fc8a70 16
mbedAustin 11:cada08fc8a70 17 #ifndef __SIMPLE_CLIENT_H__
mbedAustin 11:cada08fc8a70 18 #define __SIMPLE_CLIENT_H__
mbedAustin 11:cada08fc8a70 19
mbedAustin 11:cada08fc8a70 20 #include "mbed.h"
mbedAustin 11:cada08fc8a70 21 #include "security.h"
mbedAustin 11:cada08fc8a70 22 #include "mbed-client/m2minterfacefactory.h"
mbedAustin 11:cada08fc8a70 23 #include "mbed-client/m2mdevice.h"
mbedAustin 11:cada08fc8a70 24 #include "mbed-client/m2minterfaceobserver.h"
mbedAustin 11:cada08fc8a70 25 #include "mbed-client/m2minterface.h"
mbedAustin 11:cada08fc8a70 26 #include "mbed-client/m2mobjectinstance.h"
mbedAustin 11:cada08fc8a70 27 #include "mbed-client/m2mresource.h"
mbedAustin 11:cada08fc8a70 28 //#include "mbed-client-classic/m2mnetwork.h"
mbedAustin 11:cada08fc8a70 29
mbedAustin 11:cada08fc8a70 30 extern Serial output;
mbedAustin 11:cada08fc8a70 31 DigitalOut _relay(D5);
mbedAustin 11:cada08fc8a70 32 DigitalOut status_led(LED1);
mbedAustin 11:cada08fc8a70 33
mbedAustin 11:cada08fc8a70 34 // This is address to mbed Device Connector
mbedAustin 11:cada08fc8a70 35 const String &MBED_SERVER_ADDRESS = "coap://api.connector.mbed.com:5684";
mbedAustin 11:cada08fc8a70 36
mbedAustin 11:cada08fc8a70 37 const uint8_t STATIC_VALUE[] = "Living Room Outlet";
mbedAustin 11:cada08fc8a70 38 const String &MBED_USER_NAME_DOMAIN = MBED_DOMAIN;
mbedAustin 11:cada08fc8a70 39 const String &ENDPOINT_NAME = MBED_ENDPOINT_NAME;
mbedAustin 11:cada08fc8a70 40 const String &MANUFACTURER = "manufacturer";
mbedAustin 11:cada08fc8a70 41 const String &TYPE = "connected-outlet";
mbedAustin 11:cada08fc8a70 42 const String &MODEL_NUMBER = "2015";
mbedAustin 11:cada08fc8a70 43 const String &SERIAL_NUMBER = "12345";
mbedAustin 11:cada08fc8a70 44
mbedAustin 11:cada08fc8a70 45 //Select binding mode: UDP or TCP
mbedAustin 11:cada08fc8a70 46 M2MInterface::BindingMode SOCKET_MODE = M2MInterface::UDP;
mbedAustin 11:cada08fc8a70 47
mbedAustin 11:cada08fc8a70 48 class MbedClient: public M2MInterfaceObserver {
mbedAustin 11:cada08fc8a70 49 public:
mbedAustin 11:cada08fc8a70 50 MbedClient(){
mbedAustin 11:cada08fc8a70 51 _interface = NULL;
mbedAustin 11:cada08fc8a70 52 _bootstrapped = false;
mbedAustin 11:cada08fc8a70 53 _error = false;
mbedAustin 11:cada08fc8a70 54 _registered = false;
mbedAustin 11:cada08fc8a70 55 _unregistered = false;
mbedAustin 11:cada08fc8a70 56 _register_security = NULL;
mbedAustin 11:cada08fc8a70 57 _value = 0;
mbedAustin 11:cada08fc8a70 58 _object = NULL;
mbedAustin 11:cada08fc8a70 59 }
mbedAustin 11:cada08fc8a70 60
mbedAustin 11:cada08fc8a70 61 ~MbedClient() {
mbedAustin 11:cada08fc8a70 62 if(_interface) {
mbedAustin 11:cada08fc8a70 63 delete _interface;
mbedAustin 11:cada08fc8a70 64 }
mbedAustin 11:cada08fc8a70 65 if(_register_security){
mbedAustin 11:cada08fc8a70 66 delete _register_security;
mbedAustin 11:cada08fc8a70 67 }
mbedAustin 11:cada08fc8a70 68 }
mbedAustin 11:cada08fc8a70 69
mbedAustin 11:cada08fc8a70 70 void trace_printer(const char* str) {
mbedAustin 11:cada08fc8a70 71 output.printf("\r\n%s\r\n", str);
mbedAustin 11:cada08fc8a70 72 }
mbedAustin 11:cada08fc8a70 73
mbedAustin 11:cada08fc8a70 74 void create_interface() {
mbedAustin 11:cada08fc8a70 75 // Creates M2MInterface using which endpoint can
mbedAustin 11:cada08fc8a70 76 // setup its name, resource type, life time, connection mode,
mbedAustin 11:cada08fc8a70 77 // Currently only LwIPv4 is supported.
mbedAustin 11:cada08fc8a70 78
mbedAustin 11:cada08fc8a70 79 // Randomizing listening port for Certificate mode connectivity
mbedAustin 11:cada08fc8a70 80 srand(time(NULL));
mbedAustin 11:cada08fc8a70 81 uint16_t port = rand() % 65535 + 12345;
mbedAustin 11:cada08fc8a70 82
mbedAustin 11:cada08fc8a70 83 _interface = M2MInterfaceFactory::create_interface(*this,
mbedAustin 11:cada08fc8a70 84 ENDPOINT_NAME,
mbedAustin 11:cada08fc8a70 85 TYPE,
mbedAustin 11:cada08fc8a70 86 3600,
mbedAustin 11:cada08fc8a70 87 port,
mbedAustin 11:cada08fc8a70 88 MBED_USER_NAME_DOMAIN,
mbedAustin 11:cada08fc8a70 89 SOCKET_MODE,
mbedAustin 11:cada08fc8a70 90 M2MInterface::LwIP_IPv4,
mbedAustin 11:cada08fc8a70 91 "");
mbedAustin 11:cada08fc8a70 92 }
mbedAustin 11:cada08fc8a70 93
mbedAustin 11:cada08fc8a70 94 bool register_successful() {
mbedAustin 11:cada08fc8a70 95 return _registered;
mbedAustin 11:cada08fc8a70 96 }
mbedAustin 11:cada08fc8a70 97
mbedAustin 11:cada08fc8a70 98 bool unregister_successful() {
mbedAustin 11:cada08fc8a70 99 return _unregistered;
mbedAustin 11:cada08fc8a70 100 }
mbedAustin 11:cada08fc8a70 101
mbedAustin 11:cada08fc8a70 102 M2MSecurity* create_register_object() {
mbedAustin 11:cada08fc8a70 103 // Creates register server object with mbed device server address and other parameters
mbedAustin 11:cada08fc8a70 104 // required for client to connect to mbed device server.
mbedAustin 11:cada08fc8a70 105 M2MSecurity *security = M2MInterfaceFactory::create_security(M2MSecurity::M2MServer);
mbedAustin 11:cada08fc8a70 106 if(security) {
mbedAustin 11:cada08fc8a70 107 security->set_resource_value(M2MSecurity::M2MServerUri, MBED_SERVER_ADDRESS);
mbedAustin 11:cada08fc8a70 108 security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::Certificate);
mbedAustin 11:cada08fc8a70 109 security->set_resource_value(M2MSecurity::ServerPublicKey,SERVER_CERT,sizeof(SERVER_CERT));
mbedAustin 11:cada08fc8a70 110 security->set_resource_value(M2MSecurity::PublicKey,CERT,sizeof(CERT));
mbedAustin 11:cada08fc8a70 111 security->set_resource_value(M2MSecurity::Secretkey,KEY,sizeof(KEY));
mbedAustin 11:cada08fc8a70 112 }
mbedAustin 11:cada08fc8a70 113 return security;
mbedAustin 11:cada08fc8a70 114 }
mbedAustin 11:cada08fc8a70 115
mbedAustin 11:cada08fc8a70 116 M2MDevice* create_device_object() {
mbedAustin 11:cada08fc8a70 117 // Creates device object which contains mandatory resources linked with
mbedAustin 11:cada08fc8a70 118 // device endpoint.
mbedAustin 11:cada08fc8a70 119 M2MDevice *device = M2MInterfaceFactory::create_device();
mbedAustin 11:cada08fc8a70 120 if(device) {
mbedAustin 11:cada08fc8a70 121 device->create_resource(M2MDevice::Manufacturer,MANUFACTURER);
mbedAustin 11:cada08fc8a70 122 device->create_resource(M2MDevice::DeviceType,TYPE);
mbedAustin 11:cada08fc8a70 123 device->create_resource(M2MDevice::ModelNumber,MODEL_NUMBER);
mbedAustin 11:cada08fc8a70 124 device->create_resource(M2MDevice::SerialNumber,SERIAL_NUMBER);
mbedAustin 11:cada08fc8a70 125 }
mbedAustin 11:cada08fc8a70 126 return device;
mbedAustin 11:cada08fc8a70 127 }
mbedAustin 11:cada08fc8a70 128
mbedAustin 11:cada08fc8a70 129 // PUT callback FN
mbedAustin 11:cada08fc8a70 130 void Ecallback(void *input){
mbedAustin 11:cada08fc8a70 131 //output.printf("Put Triggered!\n");
mbedAustin 11:cada08fc8a70 132 //output.printf("\tData: %d, 0x%x, %f, '%s'\n",*(int *)input, *(int *)input , *(float *)input, (char *)input);
mbedAustin 11:cada08fc8a70 133 int x = *(char *)input;
mbedAustin 11:cada08fc8a70 134 if(x == '1'){
mbedAustin 11:cada08fc8a70 135 status_led = 0;
mbedAustin 11:cada08fc8a70 136 _relay = 1;
mbedAustin 11:cada08fc8a70 137 } else{
mbedAustin 11:cada08fc8a70 138 status_led = 1;
mbedAustin 11:cada08fc8a70 139 _relay = 0;
mbedAustin 11:cada08fc8a70 140 }
mbedAustin 11:cada08fc8a70 141 //status_led = x;
mbedAustin 11:cada08fc8a70 142 //status_led = !status_led;
mbedAustin 11:cada08fc8a70 143 //_relay = !_relay;
mbedAustin 11:cada08fc8a70 144 //_relay = (int *)input;
mbedAustin 11:cada08fc8a70 145 }
mbedAustin 11:cada08fc8a70 146
mbedAustin 11:cada08fc8a70 147 M2MObject* create_generic_object() {
mbedAustin 11:cada08fc8a70 148 _object = M2MInterfaceFactory::create_object("Test");
mbedAustin 11:cada08fc8a70 149 if(_object) {
mbedAustin 11:cada08fc8a70 150 M2MObjectInstance* inst = _object->create_object_instance();
mbedAustin 11:cada08fc8a70 151 if(inst) {
mbedAustin 11:cada08fc8a70 152 M2MResource* res = inst->create_dynamic_resource("E",
mbedAustin 11:cada08fc8a70 153 "LightControl",
mbedAustin 11:cada08fc8a70 154 M2MResourceInstance::INTEGER,
mbedAustin 11:cada08fc8a70 155 true);
mbedAustin 11:cada08fc8a70 156 char buffer[20];
mbedAustin 11:cada08fc8a70 157 int size = sprintf(buffer,"%d",_value);
mbedAustin 11:cada08fc8a70 158 res->set_operation(M2MBase::GET_PUT_POST_ALLOWED);
mbedAustin 11:cada08fc8a70 159 res->set_value((const uint8_t*)buffer,
mbedAustin 11:cada08fc8a70 160 (const uint32_t)size);
mbedAustin 11:cada08fc8a70 161 //res->set_execute_function(&Ecallback);
mbedAustin 11:cada08fc8a70 162 res->set_execute_function(execute_callback(this, &MbedClient::Ecallback));
mbedAustin 11:cada08fc8a70 163 _value++;
mbedAustin 11:cada08fc8a70 164
mbedAustin 11:cada08fc8a70 165 inst->create_static_resource("N",
mbedAustin 11:cada08fc8a70 166 "Name",
mbedAustin 11:cada08fc8a70 167 M2MResourceInstance::STRING,
mbedAustin 11:cada08fc8a70 168 STATIC_VALUE,
mbedAustin 11:cada08fc8a70 169 sizeof(STATIC_VALUE)-1);
mbedAustin 11:cada08fc8a70 170
mbedAustin 11:cada08fc8a70 171 M2MResource* res2 = inst->create_dynamic_resource("C",
mbedAustin 11:cada08fc8a70 172 "effective-current-ma",
mbedAustin 11:cada08fc8a70 173 M2MResourceInstance::INTEGER,
mbedAustin 11:cada08fc8a70 174 true);
mbedAustin 11:cada08fc8a70 175 char buffer2[20];
mbedAustin 11:cada08fc8a70 176 int size2 = sprintf(buffer2,"%d",_value2);
mbedAustin 11:cada08fc8a70 177 res2->set_operation(M2MBase::GET_ALLOWED);
mbedAustin 11:cada08fc8a70 178 res2->set_value((const uint8_t*)buffer2,
mbedAustin 11:cada08fc8a70 179 (const uint32_t)size2);
mbedAustin 11:cada08fc8a70 180 }
mbedAustin 11:cada08fc8a70 181 }
mbedAustin 11:cada08fc8a70 182 return _object;
mbedAustin 11:cada08fc8a70 183 }
mbedAustin 11:cada08fc8a70 184
mbedAustin 11:cada08fc8a70 185 void updateCurrent(float current_ma){
mbedAustin 11:cada08fc8a70 186 if(_object) {
mbedAustin 11:cada08fc8a70 187 M2MObjectInstance* inst = _object->object_instance();
mbedAustin 11:cada08fc8a70 188 if(inst) {
mbedAustin 11:cada08fc8a70 189 M2MResource* res = inst->resource("C");
mbedAustin 11:cada08fc8a70 190
mbedAustin 11:cada08fc8a70 191 char buffer[20];
mbedAustin 11:cada08fc8a70 192 int x = current_ma;
mbedAustin 11:cada08fc8a70 193 int size = sprintf(buffer,"%f",current_ma);
mbedAustin 11:cada08fc8a70 194 res->set_value((const uint8_t*)buffer,
mbedAustin 11:cada08fc8a70 195 (const uint32_t)size);
mbedAustin 11:cada08fc8a70 196 _value2 = current_ma;
mbedAustin 11:cada08fc8a70 197 }
mbedAustin 11:cada08fc8a70 198 }
mbedAustin 11:cada08fc8a70 199 }
mbedAustin 11:cada08fc8a70 200
mbedAustin 11:cada08fc8a70 201 void update_resource() {
mbedAustin 11:cada08fc8a70 202 if(_object) {
mbedAustin 11:cada08fc8a70 203 M2MObjectInstance* inst = _object->object_instance();
mbedAustin 11:cada08fc8a70 204 if(inst) {
mbedAustin 11:cada08fc8a70 205 M2MResource* res = inst->resource("D");
mbedAustin 11:cada08fc8a70 206
mbedAustin 11:cada08fc8a70 207 char buffer[20];
mbedAustin 11:cada08fc8a70 208 int size = sprintf(buffer,"%d",_value);
mbedAustin 11:cada08fc8a70 209 res->set_value((const uint8_t*)buffer,
mbedAustin 11:cada08fc8a70 210 (const uint32_t)size);
mbedAustin 11:cada08fc8a70 211 _value++;
mbedAustin 11:cada08fc8a70 212 }
mbedAustin 11:cada08fc8a70 213 }
mbedAustin 11:cada08fc8a70 214 }
mbedAustin 11:cada08fc8a70 215
mbedAustin 11:cada08fc8a70 216 void test_register(M2MSecurity *register_object, M2MObjectList object_list){
mbedAustin 11:cada08fc8a70 217 if(_interface) {
mbedAustin 11:cada08fc8a70 218 // Register function
mbedAustin 11:cada08fc8a70 219 _interface->register_object(register_object, object_list);
mbedAustin 11:cada08fc8a70 220 }
mbedAustin 11:cada08fc8a70 221 }
mbedAustin 11:cada08fc8a70 222
mbedAustin 11:cada08fc8a70 223 void test_unregister() {
mbedAustin 11:cada08fc8a70 224 if(_interface) {
mbedAustin 11:cada08fc8a70 225 // Unregister function
mbedAustin 11:cada08fc8a70 226 _interface->unregister_object(NULL);
mbedAustin 11:cada08fc8a70 227 }
mbedAustin 11:cada08fc8a70 228 }
mbedAustin 11:cada08fc8a70 229
mbedAustin 11:cada08fc8a70 230 //Callback from mbed client stack when the bootstrap
mbedAustin 11:cada08fc8a70 231 // is successful, it returns the mbed Device Server object
mbedAustin 11:cada08fc8a70 232 // which will be used for registering the resources to
mbedAustin 11:cada08fc8a70 233 // mbed Device server.
mbedAustin 11:cada08fc8a70 234 void bootstrap_done(M2MSecurity *server_object){
mbedAustin 11:cada08fc8a70 235 if(server_object) {
mbedAustin 11:cada08fc8a70 236 _bootstrapped = true;
mbedAustin 11:cada08fc8a70 237 _error = false;
mbedAustin 11:cada08fc8a70 238 trace_printer("\nBootstrapped\n");
mbedAustin 11:cada08fc8a70 239 }
mbedAustin 11:cada08fc8a70 240 }
mbedAustin 11:cada08fc8a70 241
mbedAustin 11:cada08fc8a70 242 //Callback from mbed client stack when the registration
mbedAustin 11:cada08fc8a70 243 // is successful, it returns the mbed Device Server object
mbedAustin 11:cada08fc8a70 244 // to which the resources are registered and registered objects.
mbedAustin 11:cada08fc8a70 245 void object_registered(M2MSecurity */*security_object*/, const M2MServer &/*server_object*/){
mbedAustin 11:cada08fc8a70 246 _registered = true;
mbedAustin 11:cada08fc8a70 247 _unregistered = false;
mbedAustin 11:cada08fc8a70 248 trace_printer("\nRegistered\n");
mbedAustin 11:cada08fc8a70 249 }
mbedAustin 11:cada08fc8a70 250
mbedAustin 11:cada08fc8a70 251 //Callback from mbed client stack when the unregistration
mbedAustin 11:cada08fc8a70 252 // is successful, it returns the mbed Device Server object
mbedAustin 11:cada08fc8a70 253 // to which the resources were unregistered.
mbedAustin 11:cada08fc8a70 254 void object_unregistered(M2MSecurity */*server_object*/){
mbedAustin 11:cada08fc8a70 255 _unregistered = true;
mbedAustin 11:cada08fc8a70 256 _registered = false;
mbedAustin 11:cada08fc8a70 257 trace_printer("\nUnregistered\n");
mbedAustin 11:cada08fc8a70 258 }
mbedAustin 11:cada08fc8a70 259
mbedAustin 11:cada08fc8a70 260 void registration_updated(M2MSecurity */*security_object*/, const M2MServer & /*server_object*/){
mbedAustin 11:cada08fc8a70 261 }
mbedAustin 11:cada08fc8a70 262
mbedAustin 11:cada08fc8a70 263 //Callback from mbed client stack if any error is encountered
mbedAustin 11:cada08fc8a70 264 // during any of the LWM2M operations. Error type is passed in
mbedAustin 11:cada08fc8a70 265 // the callback.
mbedAustin 11:cada08fc8a70 266 void error(M2MInterface::Error error){
mbedAustin 11:cada08fc8a70 267 _error = true;
mbedAustin 11:cada08fc8a70 268 switch(error){
mbedAustin 11:cada08fc8a70 269 case M2MInterface::AlreadyExists:
mbedAustin 11:cada08fc8a70 270 trace_printer("[ERROR:] M2MInterface::AlreadyExists\n");
mbedAustin 11:cada08fc8a70 271 break;
mbedAustin 11:cada08fc8a70 272 case M2MInterface::BootstrapFailed:
mbedAustin 11:cada08fc8a70 273 trace_printer("[ERROR:] M2MInterface::BootstrapFailed\n");
mbedAustin 11:cada08fc8a70 274 break;
mbedAustin 11:cada08fc8a70 275 case M2MInterface::InvalidParameters:
mbedAustin 11:cada08fc8a70 276 trace_printer("[ERROR:] M2MInterface::InvalidParameters\n");
mbedAustin 11:cada08fc8a70 277 break;
mbedAustin 11:cada08fc8a70 278 case M2MInterface::NotRegistered:
mbedAustin 11:cada08fc8a70 279 trace_printer("[ERROR:] M2MInterface::NotRegistered\n");
mbedAustin 11:cada08fc8a70 280 break;
mbedAustin 11:cada08fc8a70 281 case M2MInterface::Timeout:
mbedAustin 11:cada08fc8a70 282 trace_printer("[ERROR:] M2MInterface::Timeout\n");
mbedAustin 11:cada08fc8a70 283 break;
mbedAustin 11:cada08fc8a70 284 case M2MInterface::NetworkError:
mbedAustin 11:cada08fc8a70 285 trace_printer("[ERROR:] M2MInterface::NetworkError\n");
mbedAustin 11:cada08fc8a70 286 break;
mbedAustin 11:cada08fc8a70 287 case M2MInterface::ResponseParseFailed:
mbedAustin 11:cada08fc8a70 288 trace_printer("[ERROR:] M2MInterface::ResponseParseFailed\n");
mbedAustin 11:cada08fc8a70 289 break;
mbedAustin 11:cada08fc8a70 290 case M2MInterface::UnknownError:
mbedAustin 11:cada08fc8a70 291 trace_printer("[ERROR:] M2MInterface::UnknownError\n");
mbedAustin 11:cada08fc8a70 292 break;
mbedAustin 11:cada08fc8a70 293 case M2MInterface::MemoryFail:
mbedAustin 11:cada08fc8a70 294 trace_printer("[ERROR:] M2MInterface::MemoryFail\n");
mbedAustin 11:cada08fc8a70 295 break;
mbedAustin 11:cada08fc8a70 296 case M2MInterface::NotAllowed:
mbedAustin 11:cada08fc8a70 297 trace_printer("[ERROR:] M2MInterface::NotAllowed\n");
mbedAustin 11:cada08fc8a70 298 break;
mbedAustin 11:cada08fc8a70 299 default:
mbedAustin 11:cada08fc8a70 300 break;
mbedAustin 11:cada08fc8a70 301 }
mbedAustin 11:cada08fc8a70 302 }
mbedAustin 11:cada08fc8a70 303
mbedAustin 11:cada08fc8a70 304 //Callback from mbed client stack if any value has changed
mbedAustin 11:cada08fc8a70 305 // during PUT operation. Object and its type is passed in
mbedAustin 11:cada08fc8a70 306 // the callback.
mbedAustin 11:cada08fc8a70 307 void value_updated(M2MBase *base, M2MBase::BaseType type) {
mbedAustin 11:cada08fc8a70 308 output.printf("\nValue updated of Object name %s and Type %d\n",
mbedAustin 11:cada08fc8a70 309 base->name().c_str(), type);
mbedAustin 11:cada08fc8a70 310 }
mbedAustin 11:cada08fc8a70 311
mbedAustin 11:cada08fc8a70 312 void test_update_register() {
mbedAustin 11:cada08fc8a70 313 if (_registered) {
mbedAustin 11:cada08fc8a70 314 _interface->update_registration(_register_security, 3600);
mbedAustin 11:cada08fc8a70 315 }
mbedAustin 11:cada08fc8a70 316 }
mbedAustin 11:cada08fc8a70 317
mbedAustin 11:cada08fc8a70 318 void set_register_object(M2MSecurity *register_object) {
mbedAustin 11:cada08fc8a70 319 if (_register_security == NULL) {
mbedAustin 11:cada08fc8a70 320 _register_security = register_object;
mbedAustin 11:cada08fc8a70 321 }
mbedAustin 11:cada08fc8a70 322 }
mbedAustin 11:cada08fc8a70 323
mbedAustin 11:cada08fc8a70 324 private:
mbedAustin 11:cada08fc8a70 325
mbedAustin 11:cada08fc8a70 326 M2MInterface *_interface;
mbedAustin 11:cada08fc8a70 327 M2MSecurity *_register_security;
mbedAustin 11:cada08fc8a70 328 M2MObject *_object;
mbedAustin 11:cada08fc8a70 329 volatile bool _bootstrapped;
mbedAustin 11:cada08fc8a70 330 volatile bool _error;
mbedAustin 11:cada08fc8a70 331 volatile bool _registered;
mbedAustin 11:cada08fc8a70 332 volatile bool _unregistered;
mbedAustin 11:cada08fc8a70 333 int _value;
mbedAustin 11:cada08fc8a70 334 int _value2;
mbedAustin 11:cada08fc8a70 335 };
mbedAustin 11:cada08fc8a70 336
mbedAustin 11:cada08fc8a70 337 #endif // __SIMPLE_CLIENT_H__