FRDM K64F Metronome

Committer:
ram54288
Date:
Sun May 14 18:35:07 2017 +0000
Revision:
0:a2cb7295a1f7
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:a2cb7295a1f7 1 /*
ram54288 0:a2cb7295a1f7 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
ram54288 0:a2cb7295a1f7 3 * SPDX-License-Identifier: Apache-2.0
ram54288 0:a2cb7295a1f7 4 * Licensed under the Apache License, Version 2.0 (the License); you may
ram54288 0:a2cb7295a1f7 5 * not use this file except in compliance with the License.
ram54288 0:a2cb7295a1f7 6 * You may obtain a copy of the License at
ram54288 0:a2cb7295a1f7 7 *
ram54288 0:a2cb7295a1f7 8 * http://www.apache.org/licenses/LICENSE-2.0
ram54288 0:a2cb7295a1f7 9 *
ram54288 0:a2cb7295a1f7 10 * Unless required by applicable law or agreed to in writing, software
ram54288 0:a2cb7295a1f7 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
ram54288 0:a2cb7295a1f7 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ram54288 0:a2cb7295a1f7 13 * See the License for the specific language governing permissions and
ram54288 0:a2cb7295a1f7 14 * limitations under the License.
ram54288 0:a2cb7295a1f7 15 */
ram54288 0:a2cb7295a1f7 16 #include "m2mresourceinstance_stub.h"
ram54288 0:a2cb7295a1f7 17
ram54288 0:a2cb7295a1f7 18 uint32_t m2mresourceinstance_stub::int_value;
ram54288 0:a2cb7295a1f7 19 bool m2mresourceinstance_stub::bool_value;
ram54288 0:a2cb7295a1f7 20 String *m2mresourceinstance_stub::string_value;
ram54288 0:a2cb7295a1f7 21 M2MResourceInstance::ResourceType m2mresourceinstance_stub::resource_type;
ram54288 0:a2cb7295a1f7 22 sn_coap_hdr_s *m2mresourceinstance_stub::header;
ram54288 0:a2cb7295a1f7 23 uint8_t* m2mresourceinstance_stub::value;
ram54288 0:a2cb7295a1f7 24 M2MBase::BaseType m2mresourceinstance_stub::base_type;
ram54288 0:a2cb7295a1f7 25
ram54288 0:a2cb7295a1f7 26
ram54288 0:a2cb7295a1f7 27 void m2mresourceinstance_stub::clear()
ram54288 0:a2cb7295a1f7 28 {
ram54288 0:a2cb7295a1f7 29 int_value = 0;
ram54288 0:a2cb7295a1f7 30 bool_value = false;
ram54288 0:a2cb7295a1f7 31 resource_type = M2MResourceInstance::STRING;
ram54288 0:a2cb7295a1f7 32 header = NULL;
ram54288 0:a2cb7295a1f7 33 value = NULL;
ram54288 0:a2cb7295a1f7 34 base_type = M2MBase::ResourceInstance;
ram54288 0:a2cb7295a1f7 35 string_value = NULL;
ram54288 0:a2cb7295a1f7 36 }
ram54288 0:a2cb7295a1f7 37
ram54288 0:a2cb7295a1f7 38 M2MResourceInstance::M2MResourceInstance(M2MResource &parent,
ram54288 0:a2cb7295a1f7 39 const String &res_name,
ram54288 0:a2cb7295a1f7 40 const String &resource_type,
ram54288 0:a2cb7295a1f7 41 M2MResourceInstance::ResourceType type,
ram54288 0:a2cb7295a1f7 42 const uint16_t object_instance_id,
ram54288 0:a2cb7295a1f7 43 char* path,
ram54288 0:a2cb7295a1f7 44 bool external_blockwise_store)
ram54288 0:a2cb7295a1f7 45 : M2MBase(res_name,
ram54288 0:a2cb7295a1f7 46 M2MBase::Dynamic,
ram54288 0:a2cb7295a1f7 47 resource_type,
ram54288 0:a2cb7295a1f7 48 path,
ram54288 0:a2cb7295a1f7 49 external_blockwise_store),
ram54288 0:a2cb7295a1f7 50 _parent_resource(parent),
ram54288 0:a2cb7295a1f7 51 _value(NULL),
ram54288 0:a2cb7295a1f7 52 _value_length(0),
ram54288 0:a2cb7295a1f7 53 _block_message_data(NULL),
ram54288 0:a2cb7295a1f7 54 _execute_callback(NULL),
ram54288 0:a2cb7295a1f7 55 _resource_callback(NULL),
ram54288 0:a2cb7295a1f7 56 _execute_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 57 _notification_sent_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 58 _notification_sent_callback(NULL),
ram54288 0:a2cb7295a1f7 59 _object_instance_id(object_instance_id),
ram54288 0:a2cb7295a1f7 60 _resource_type(type)
ram54288 0:a2cb7295a1f7 61 {
ram54288 0:a2cb7295a1f7 62
ram54288 0:a2cb7295a1f7 63 }
ram54288 0:a2cb7295a1f7 64
ram54288 0:a2cb7295a1f7 65 M2MResourceInstance::M2MResourceInstance(M2MResource &parent,
ram54288 0:a2cb7295a1f7 66 const String &res_name,
ram54288 0:a2cb7295a1f7 67 const String &resource_type,
ram54288 0:a2cb7295a1f7 68 M2MResourceInstance::ResourceType type,
ram54288 0:a2cb7295a1f7 69 const uint8_t *value,
ram54288 0:a2cb7295a1f7 70 const uint8_t value_length,
ram54288 0:a2cb7295a1f7 71 const uint16_t object_instance_id,
ram54288 0:a2cb7295a1f7 72 char* path,
ram54288 0:a2cb7295a1f7 73 bool external_blockwise_store)
ram54288 0:a2cb7295a1f7 74 : M2MBase(res_name,
ram54288 0:a2cb7295a1f7 75 M2MBase::Static,
ram54288 0:a2cb7295a1f7 76 resource_type,
ram54288 0:a2cb7295a1f7 77 path,
ram54288 0:a2cb7295a1f7 78 external_blockwise_store),
ram54288 0:a2cb7295a1f7 79 _parent_resource(parent),
ram54288 0:a2cb7295a1f7 80 _value(NULL),
ram54288 0:a2cb7295a1f7 81 _value_length(0),
ram54288 0:a2cb7295a1f7 82 _block_message_data(NULL),
ram54288 0:a2cb7295a1f7 83 _execute_callback(NULL),
ram54288 0:a2cb7295a1f7 84 _resource_callback(NULL),
ram54288 0:a2cb7295a1f7 85 _execute_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 86 _notification_sent_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 87 _notification_sent_callback(NULL),
ram54288 0:a2cb7295a1f7 88 _object_instance_id(object_instance_id),
ram54288 0:a2cb7295a1f7 89 _resource_type(type)
ram54288 0:a2cb7295a1f7 90 {
ram54288 0:a2cb7295a1f7 91 }
ram54288 0:a2cb7295a1f7 92
ram54288 0:a2cb7295a1f7 93 M2MResourceInstance::M2MResourceInstance(M2MResource &parent,
ram54288 0:a2cb7295a1f7 94 const lwm2m_parameters_s* s,
ram54288 0:a2cb7295a1f7 95 M2MResourceInstance::ResourceType type,
ram54288 0:a2cb7295a1f7 96 const uint16_t object_instance_id)
ram54288 0:a2cb7295a1f7 97 : M2MBase(s),
ram54288 0:a2cb7295a1f7 98 _parent_resource(parent),
ram54288 0:a2cb7295a1f7 99 _value(NULL),
ram54288 0:a2cb7295a1f7 100 _value_length(0),
ram54288 0:a2cb7295a1f7 101 _block_message_data(NULL),
ram54288 0:a2cb7295a1f7 102 _execute_callback(NULL),
ram54288 0:a2cb7295a1f7 103 _resource_callback(NULL),
ram54288 0:a2cb7295a1f7 104 _execute_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 105 _notification_sent_function_pointer(NULL),
ram54288 0:a2cb7295a1f7 106 _object_instance_id(object_instance_id),
ram54288 0:a2cb7295a1f7 107 _resource_type(type)
ram54288 0:a2cb7295a1f7 108 {
ram54288 0:a2cb7295a1f7 109 }
ram54288 0:a2cb7295a1f7 110
ram54288 0:a2cb7295a1f7 111 M2MResourceInstance::~M2MResourceInstance()
ram54288 0:a2cb7295a1f7 112 {
ram54288 0:a2cb7295a1f7 113 }
ram54288 0:a2cb7295a1f7 114
ram54288 0:a2cb7295a1f7 115 M2MBase::BaseType M2MResourceInstance::base_type() const
ram54288 0:a2cb7295a1f7 116 {
ram54288 0:a2cb7295a1f7 117 return m2mresourceinstance_stub::base_type;
ram54288 0:a2cb7295a1f7 118 }
ram54288 0:a2cb7295a1f7 119
ram54288 0:a2cb7295a1f7 120 M2MResourceInstance::ResourceType M2MResourceInstance::resource_instance_type() const
ram54288 0:a2cb7295a1f7 121 {
ram54288 0:a2cb7295a1f7 122 return m2mresourceinstance_stub::resource_type;
ram54288 0:a2cb7295a1f7 123 }
ram54288 0:a2cb7295a1f7 124
ram54288 0:a2cb7295a1f7 125 bool M2MResourceInstance::handle_observation_attribute(const char *)
ram54288 0:a2cb7295a1f7 126 {
ram54288 0:a2cb7295a1f7 127 return m2mresourceinstance_stub::bool_value;
ram54288 0:a2cb7295a1f7 128 }
ram54288 0:a2cb7295a1f7 129
ram54288 0:a2cb7295a1f7 130 void M2MResourceInstance::set_execute_function(execute_callback)
ram54288 0:a2cb7295a1f7 131 {
ram54288 0:a2cb7295a1f7 132 }
ram54288 0:a2cb7295a1f7 133
ram54288 0:a2cb7295a1f7 134 bool M2MResourceInstance::set_value(const uint8_t *,
ram54288 0:a2cb7295a1f7 135 const uint32_t )
ram54288 0:a2cb7295a1f7 136 {
ram54288 0:a2cb7295a1f7 137 return m2mresourceinstance_stub::bool_value;
ram54288 0:a2cb7295a1f7 138 }
ram54288 0:a2cb7295a1f7 139
ram54288 0:a2cb7295a1f7 140 bool M2MResourceInstance::set_value(int64_t value)
ram54288 0:a2cb7295a1f7 141 {
ram54288 0:a2cb7295a1f7 142 return m2mresourceinstance_stub::bool_value;
ram54288 0:a2cb7295a1f7 143 }
ram54288 0:a2cb7295a1f7 144
ram54288 0:a2cb7295a1f7 145
ram54288 0:a2cb7295a1f7 146 void M2MResourceInstance::clear_value()
ram54288 0:a2cb7295a1f7 147 {
ram54288 0:a2cb7295a1f7 148 if (m2mresourceinstance_stub::value) {
ram54288 0:a2cb7295a1f7 149 free(m2mresourceinstance_stub::value);
ram54288 0:a2cb7295a1f7 150 m2mresourceinstance_stub::value = NULL;
ram54288 0:a2cb7295a1f7 151 m2mresourceinstance_stub::int_value = 0;
ram54288 0:a2cb7295a1f7 152 }
ram54288 0:a2cb7295a1f7 153 }
ram54288 0:a2cb7295a1f7 154
ram54288 0:a2cb7295a1f7 155 void M2MResourceInstance::execute(void *)
ram54288 0:a2cb7295a1f7 156 {
ram54288 0:a2cb7295a1f7 157 }
ram54288 0:a2cb7295a1f7 158
ram54288 0:a2cb7295a1f7 159 void M2MResourceInstance::get_value(uint8_t *&value, uint32_t &value_length)
ram54288 0:a2cb7295a1f7 160 {
ram54288 0:a2cb7295a1f7 161 value_length = 0;
ram54288 0:a2cb7295a1f7 162 if(value) {
ram54288 0:a2cb7295a1f7 163 free(value);
ram54288 0:a2cb7295a1f7 164 value = NULL;
ram54288 0:a2cb7295a1f7 165 }
ram54288 0:a2cb7295a1f7 166 value = (uint8_t *)malloc(m2mresourceinstance_stub::int_value);
ram54288 0:a2cb7295a1f7 167 if(value) {
ram54288 0:a2cb7295a1f7 168 value_length = m2mresourceinstance_stub::int_value;
ram54288 0:a2cb7295a1f7 169 memcpy((uint8_t *)value, (uint8_t *)m2mresourceinstance_stub::value, value_length);
ram54288 0:a2cb7295a1f7 170 }
ram54288 0:a2cb7295a1f7 171 }
ram54288 0:a2cb7295a1f7 172
ram54288 0:a2cb7295a1f7 173 int M2MResourceInstance::get_value_int()
ram54288 0:a2cb7295a1f7 174 {
ram54288 0:a2cb7295a1f7 175 // Note: this is a copy-paste from the original version, as the tests
ram54288 0:a2cb7295a1f7 176 // set only m2mresourceinstance_stub::value.
ram54288 0:a2cb7295a1f7 177
ram54288 0:a2cb7295a1f7 178 int value_int = 0;
ram54288 0:a2cb7295a1f7 179 // Get the value and convert it into integer. This is not the most
ram54288 0:a2cb7295a1f7 180 // efficient way, as it takes pointless heap copy to get the zero termination.
ram54288 0:a2cb7295a1f7 181 uint8_t* buffer = NULL;
ram54288 0:a2cb7295a1f7 182 uint32_t length;
ram54288 0:a2cb7295a1f7 183 get_value(buffer,length);
ram54288 0:a2cb7295a1f7 184 if(buffer) {
ram54288 0:a2cb7295a1f7 185 value_int = atoi((const char*)buffer);
ram54288 0:a2cb7295a1f7 186 free(buffer);
ram54288 0:a2cb7295a1f7 187 }
ram54288 0:a2cb7295a1f7 188 return value_int;
ram54288 0:a2cb7295a1f7 189 }
ram54288 0:a2cb7295a1f7 190
ram54288 0:a2cb7295a1f7 191 String M2MResourceInstance::get_value_string() const
ram54288 0:a2cb7295a1f7 192 {
ram54288 0:a2cb7295a1f7 193 // XXX: do a better constructor to avoid pointless malloc
ram54288 0:a2cb7295a1f7 194 String value;
ram54288 0:a2cb7295a1f7 195 if (m2mresourceinstance_stub::value) {
ram54288 0:a2cb7295a1f7 196 value.append_raw((char*)m2mresourceinstance_stub::value, m2mresourceinstance_stub::int_value);
ram54288 0:a2cb7295a1f7 197 }
ram54288 0:a2cb7295a1f7 198
ram54288 0:a2cb7295a1f7 199 return value;
ram54288 0:a2cb7295a1f7 200 }
ram54288 0:a2cb7295a1f7 201
ram54288 0:a2cb7295a1f7 202 uint8_t* M2MResourceInstance::value() const
ram54288 0:a2cb7295a1f7 203 {
ram54288 0:a2cb7295a1f7 204 return m2mresourceinstance_stub::value;
ram54288 0:a2cb7295a1f7 205 }
ram54288 0:a2cb7295a1f7 206
ram54288 0:a2cb7295a1f7 207 uint32_t M2MResourceInstance::value_length() const
ram54288 0:a2cb7295a1f7 208 {
ram54288 0:a2cb7295a1f7 209 return m2mresourceinstance_stub::int_value;
ram54288 0:a2cb7295a1f7 210 }
ram54288 0:a2cb7295a1f7 211
ram54288 0:a2cb7295a1f7 212 sn_coap_hdr_s* M2MResourceInstance::handle_get_request(nsdl_s *,
ram54288 0:a2cb7295a1f7 213 sn_coap_hdr_s *,
ram54288 0:a2cb7295a1f7 214 M2MObservationHandler *)
ram54288 0:a2cb7295a1f7 215 {
ram54288 0:a2cb7295a1f7 216 return m2mresourceinstance_stub::header;
ram54288 0:a2cb7295a1f7 217 }
ram54288 0:a2cb7295a1f7 218
ram54288 0:a2cb7295a1f7 219 sn_coap_hdr_s* M2MResourceInstance::handle_put_request(nsdl_s *,
ram54288 0:a2cb7295a1f7 220 sn_coap_hdr_s *,
ram54288 0:a2cb7295a1f7 221 M2MObservationHandler *,
ram54288 0:a2cb7295a1f7 222 bool &)
ram54288 0:a2cb7295a1f7 223 {
ram54288 0:a2cb7295a1f7 224 return m2mresourceinstance_stub::header;
ram54288 0:a2cb7295a1f7 225 }
ram54288 0:a2cb7295a1f7 226
ram54288 0:a2cb7295a1f7 227 void M2MResourceInstance::set_resource_observer(M2MResourceCallback *callback)
ram54288 0:a2cb7295a1f7 228 {
ram54288 0:a2cb7295a1f7 229
ram54288 0:a2cb7295a1f7 230 }
ram54288 0:a2cb7295a1f7 231
ram54288 0:a2cb7295a1f7 232 uint16_t M2MResourceInstance::object_instance_id() const
ram54288 0:a2cb7295a1f7 233 {
ram54288 0:a2cb7295a1f7 234 return m2mresourceinstance_stub::int_value;
ram54288 0:a2cb7295a1f7 235 }
ram54288 0:a2cb7295a1f7 236
ram54288 0:a2cb7295a1f7 237 void M2MResourceInstance::set_execute_function(execute_callback_2 callback)
ram54288 0:a2cb7295a1f7 238 {
ram54288 0:a2cb7295a1f7 239 }
ram54288 0:a2cb7295a1f7 240
ram54288 0:a2cb7295a1f7 241 M2MBlockMessage* M2MResourceInstance::block_message() const
ram54288 0:a2cb7295a1f7 242 {
ram54288 0:a2cb7295a1f7 243
ram54288 0:a2cb7295a1f7 244 }
ram54288 0:a2cb7295a1f7 245
ram54288 0:a2cb7295a1f7 246 void M2MResourceInstance::set_incoming_block_message_callback(incoming_block_message_callback callback)
ram54288 0:a2cb7295a1f7 247 {
ram54288 0:a2cb7295a1f7 248 }
ram54288 0:a2cb7295a1f7 249
ram54288 0:a2cb7295a1f7 250 void M2MResourceInstance::set_outgoing_block_message_callback(outgoing_block_message_callback callback)
ram54288 0:a2cb7295a1f7 251 {
ram54288 0:a2cb7295a1f7 252
ram54288 0:a2cb7295a1f7 253 }
ram54288 0:a2cb7295a1f7 254
ram54288 0:a2cb7295a1f7 255 void M2MResourceInstance::set_notification_sent_callback(notification_sent_callback callback)
ram54288 0:a2cb7295a1f7 256 {
ram54288 0:a2cb7295a1f7 257 }
ram54288 0:a2cb7295a1f7 258
ram54288 0:a2cb7295a1f7 259 void M2MResourceInstance::set_notification_sent_callback(notification_sent_callback_2 callback)
ram54288 0:a2cb7295a1f7 260 {
ram54288 0:a2cb7295a1f7 261 }
ram54288 0:a2cb7295a1f7 262
ram54288 0:a2cb7295a1f7 263 void M2MResourceInstance::notification_sent()
ram54288 0:a2cb7295a1f7 264 {
ram54288 0:a2cb7295a1f7 265 }
ram54288 0:a2cb7295a1f7 266
ram54288 0:a2cb7295a1f7 267 const char* M2MResourceInstance::object_name() const
ram54288 0:a2cb7295a1f7 268 {
ram54288 0:a2cb7295a1f7 269
ram54288 0:a2cb7295a1f7 270 }