Donald Meyers / Mbed OS evan
Committer:
djmeyers
Date:
Sat Mar 18 22:37:16 2017 +0000
Revision:
0:06ee5f8a484a
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djmeyers 0:06ee5f8a484a 1 /*
djmeyers 0:06ee5f8a484a 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
djmeyers 0:06ee5f8a484a 3 * SPDX-License-Identifier: Apache-2.0
djmeyers 0:06ee5f8a484a 4 * Licensed under the Apache License, Version 2.0 (the License); you may
djmeyers 0:06ee5f8a484a 5 * not use this file except in compliance with the License.
djmeyers 0:06ee5f8a484a 6 * You may obtain a copy of the License at
djmeyers 0:06ee5f8a484a 7 *
djmeyers 0:06ee5f8a484a 8 * http://www.apache.org/licenses/LICENSE-2.0
djmeyers 0:06ee5f8a484a 9 *
djmeyers 0:06ee5f8a484a 10 * Unless required by applicable law or agreed to in writing, software
djmeyers 0:06ee5f8a484a 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
djmeyers 0:06ee5f8a484a 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
djmeyers 0:06ee5f8a484a 13 * See the License for the specific language governing permissions and
djmeyers 0:06ee5f8a484a 14 * limitations under the License.
djmeyers 0:06ee5f8a484a 15 */
djmeyers 0:06ee5f8a484a 16 #ifndef __MBED_CLIENT_H__
djmeyers 0:06ee5f8a484a 17 #define __MBED_CLIENT_H__
djmeyers 0:06ee5f8a484a 18
djmeyers 0:06ee5f8a484a 19 #undef SIXLOWPAN_INTERFACE
djmeyers 0:06ee5f8a484a 20
djmeyers 0:06ee5f8a484a 21 #include "mbed-client/m2minterfaceobserver.h"
djmeyers 0:06ee5f8a484a 22
djmeyers 0:06ee5f8a484a 23 #ifndef TARGET_LIKE_LINUX
djmeyers 0:06ee5f8a484a 24 #include "mbed/DigitalOut.h"
djmeyers 0:06ee5f8a484a 25 #endif
djmeyers 0:06ee5f8a484a 26
djmeyers 0:06ee5f8a484a 27
djmeyers 0:06ee5f8a484a 28 //#define BOOTSTRAP_ENABLED
djmeyers 0:06ee5f8a484a 29
djmeyers 0:06ee5f8a484a 30 class M2MDevice;
djmeyers 0:06ee5f8a484a 31 class M2MSecurity;
djmeyers 0:06ee5f8a484a 32 class M2MObject;
djmeyers 0:06ee5f8a484a 33
djmeyers 0:06ee5f8a484a 34 class MbedClient: public M2MInterfaceObserver {
djmeyers 0:06ee5f8a484a 35 public:
djmeyers 0:06ee5f8a484a 36 MbedClient();
djmeyers 0:06ee5f8a484a 37
djmeyers 0:06ee5f8a484a 38 ~MbedClient();
djmeyers 0:06ee5f8a484a 39
djmeyers 0:06ee5f8a484a 40 bool create_interface();
djmeyers 0:06ee5f8a484a 41
djmeyers 0:06ee5f8a484a 42 bool bootstrap_successful();
djmeyers 0:06ee5f8a484a 43
djmeyers 0:06ee5f8a484a 44 bool register_successful();
djmeyers 0:06ee5f8a484a 45
djmeyers 0:06ee5f8a484a 46 bool unregister_successful();
djmeyers 0:06ee5f8a484a 47
djmeyers 0:06ee5f8a484a 48 bool registration_update_successful();
djmeyers 0:06ee5f8a484a 49
djmeyers 0:06ee5f8a484a 50 M2MSecurity* create_bootstrap_object(bool useSecureConnection);
djmeyers 0:06ee5f8a484a 51
djmeyers 0:06ee5f8a484a 52 M2MSecurity* create_register_object(bool useSecureConnection);
djmeyers 0:06ee5f8a484a 53
djmeyers 0:06ee5f8a484a 54 void test_bootstrap(M2MSecurity *security);
djmeyers 0:06ee5f8a484a 55
djmeyers 0:06ee5f8a484a 56 M2MDevice* create_device_object();
djmeyers 0:06ee5f8a484a 57
djmeyers 0:06ee5f8a484a 58 void execute_function(void *argument);
djmeyers 0:06ee5f8a484a 59
djmeyers 0:06ee5f8a484a 60 M2MObject* create_generic_object();
djmeyers 0:06ee5f8a484a 61
djmeyers 0:06ee5f8a484a 62 void update_resource();
djmeyers 0:06ee5f8a484a 63
djmeyers 0:06ee5f8a484a 64 void test_register(M2MObjectList object_list);
djmeyers 0:06ee5f8a484a 65
djmeyers 0:06ee5f8a484a 66 void set_register_object(M2MSecurity *&register_object);
djmeyers 0:06ee5f8a484a 67
djmeyers 0:06ee5f8a484a 68 void test_update_register();
djmeyers 0:06ee5f8a484a 69
djmeyers 0:06ee5f8a484a 70 void test_unregister();
djmeyers 0:06ee5f8a484a 71
djmeyers 0:06ee5f8a484a 72 //Callback from mbed client stack when the bootstrap
djmeyers 0:06ee5f8a484a 73 // is successful, it returns the mbed Device Server object
djmeyers 0:06ee5f8a484a 74 // which will be used for registering the resources to
djmeyers 0:06ee5f8a484a 75 // mbed Device server.
djmeyers 0:06ee5f8a484a 76 void bootstrap_done(M2MSecurity *server_object);
djmeyers 0:06ee5f8a484a 77
djmeyers 0:06ee5f8a484a 78 //Callback from mbed client stack when the registration
djmeyers 0:06ee5f8a484a 79 // is successful, it returns the mbed Device Server object
djmeyers 0:06ee5f8a484a 80 // to which the resources are registered and registered objects.
djmeyers 0:06ee5f8a484a 81 void object_registered(M2MSecurity */*security_object*/, const M2MServer &/*server_object*/);
djmeyers 0:06ee5f8a484a 82
djmeyers 0:06ee5f8a484a 83 //Callback from mbed client stack when the unregistration
djmeyers 0:06ee5f8a484a 84 // is successful, it returns the mbed Device Server object
djmeyers 0:06ee5f8a484a 85 // to which the resources were unregistered.
djmeyers 0:06ee5f8a484a 86 void object_unregistered(M2MSecurity */*server_object*/);
djmeyers 0:06ee5f8a484a 87
djmeyers 0:06ee5f8a484a 88 void registration_updated(M2MSecurity */*security_object*/, const M2MServer & /*server_object*/);
djmeyers 0:06ee5f8a484a 89
djmeyers 0:06ee5f8a484a 90 //Callback from mbed client stack if any error is encountered
djmeyers 0:06ee5f8a484a 91 // during any of the LWM2M operations. Error type is passed in
djmeyers 0:06ee5f8a484a 92 // the callback.
djmeyers 0:06ee5f8a484a 93 void error(M2MInterface::Error error);
djmeyers 0:06ee5f8a484a 94
djmeyers 0:06ee5f8a484a 95 //Callback from mbed client stack if any value has changed
djmeyers 0:06ee5f8a484a 96 // during PUT operation. Object and its type is passed in
djmeyers 0:06ee5f8a484a 97 // the callback.
djmeyers 0:06ee5f8a484a 98 void value_updated(M2MBase *base, M2MBase::BaseType type);
djmeyers 0:06ee5f8a484a 99
djmeyers 0:06ee5f8a484a 100 private:
djmeyers 0:06ee5f8a484a 101
djmeyers 0:06ee5f8a484a 102 #ifndef TARGET_LIKE_LINUX
djmeyers 0:06ee5f8a484a 103 mbed::DigitalOut _led;
djmeyers 0:06ee5f8a484a 104 #endif
djmeyers 0:06ee5f8a484a 105 M2MInterface *_interface;
djmeyers 0:06ee5f8a484a 106 M2MSecurity *_security;
djmeyers 0:06ee5f8a484a 107 M2MSecurity *_register_security;
djmeyers 0:06ee5f8a484a 108 M2MDevice *_device;
djmeyers 0:06ee5f8a484a 109 M2MObject *_object;
djmeyers 0:06ee5f8a484a 110 bool _bootstrapped;
djmeyers 0:06ee5f8a484a 111 bool _error;
djmeyers 0:06ee5f8a484a 112 bool _registered;
djmeyers 0:06ee5f8a484a 113 bool _unregistered;
djmeyers 0:06ee5f8a484a 114 bool _registration_updated;
djmeyers 0:06ee5f8a484a 115 int _value;
djmeyers 0:06ee5f8a484a 116 };
djmeyers 0:06ee5f8a484a 117
djmeyers 0:06ee5f8a484a 118
djmeyers 0:06ee5f8a484a 119
djmeyers 0:06ee5f8a484a 120 #endif //__MBED_CLIENT_H__