This is an example of BLE GATT Client, which receives broadcast data from BLE_Server_BME280 ( a GATT server) , then transfers values up to mbed Device Connector (cloud).

Please refer details about BLEClient_mbedDevConn below. https://github.com/soramame21/BLEClient_mbedDevConn

The location of required BLE GATT server, BLE_Server_BME280, is at here. https://developer.mbed.org/users/edamame22/code/BLE_Server_BME280/

Committer:
Ren Boting
Date:
Tue Sep 05 11:56:13 2017 +0900
Revision:
2:b894b3508057
Parent:
0:29983394c6b6
Update all libraries and reform main.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edamame22 0:29983394c6b6 1 /*
edamame22 0:29983394c6b6 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
edamame22 0:29983394c6b6 3 * SPDX-License-Identifier: Apache-2.0
edamame22 0:29983394c6b6 4 * Licensed under the Apache License, Version 2.0 (the License); you may
edamame22 0:29983394c6b6 5 * not use this file except in compliance with the License.
edamame22 0:29983394c6b6 6 * You may obtain a copy of the License at
edamame22 0:29983394c6b6 7 *
edamame22 0:29983394c6b6 8 * http://www.apache.org/licenses/LICENSE-2.0
edamame22 0:29983394c6b6 9 *
edamame22 0:29983394c6b6 10 * Unless required by applicable law or agreed to in writing, software
edamame22 0:29983394c6b6 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
edamame22 0:29983394c6b6 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
edamame22 0:29983394c6b6 13 * See the License for the specific language governing permissions and
edamame22 0:29983394c6b6 14 * limitations under the License.
edamame22 0:29983394c6b6 15 */
edamame22 0:29983394c6b6 16 #include <string.h>
edamame22 0:29983394c6b6 17 #include <stdlib.h>
edamame22 0:29983394c6b6 18 #include <stdarg.h>
edamame22 0:29983394c6b6 19
edamame22 0:29983394c6b6 20 //libServices
edamame22 0:29983394c6b6 21 #include "ns_types.h"
edamame22 0:29983394c6b6 22 #include "ns_cmdline.h"
edamame22 0:29983394c6b6 23 #include "cmd_lwm2m.h"
edamame22 0:29983394c6b6 24 #include "lwm2mtest.h"
edamame22 0:29983394c6b6 25
edamame22 0:29983394c6b6 26 #define CMD_MAN_LWM2M_CLIENT "lwm2m-client <cmd> [options] LWM2M mbed Client API\n"\
edamame22 0:29983394c6b6 27 "setup <p> [options] Set up the LWM2M Interface\n"\
edamame22 0:29983394c6b6 28 "<p>:\n"\
edamame22 0:29983394c6b6 29 " Options for setup command\n"\
edamame22 0:29983394c6b6 30 " --endpoint <name> Endpoint Name (mandatory)\n"\
edamame22 0:29983394c6b6 31 " --type <name> Resource Type\n"\
edamame22 0:29983394c6b6 32 " --lifetime <n> Lifetime in seconds, default is -1 means not included\n"\
edamame22 0:29983394c6b6 33 " --port <n> Listen port, default is 5683\n"\
edamame22 0:29983394c6b6 34 " --domain <name> Domain for mbed Device Server, default is empty\n"\
edamame22 0:29983394c6b6 35 " --binding_mode <n> Binding Mode, NOT_SET = 0|UDP = 1(default)|QUEUE = 2|SMS = 4\n"\
edamame22 0:29983394c6b6 36 " --network_interface <n> Network Interface, Uninitialized = 0 ,LwIP_IPv4 = 1(default), LwIP_IPv6 = 2, Nanostack_IPv6 = 4\n"\
edamame22 0:29983394c6b6 37 "bootstrap_object <p> [options]\n"\
edamame22 0:29983394c6b6 38 "<p>:\n"\
edamame22 0:29983394c6b6 39 " Options for bootstrap object command\n"\
edamame22 0:29983394c6b6 40 " --address <name> Bootstrap server address, format is coap://192.168.0.1:5683\n"\
edamame22 0:29983394c6b6 41 "bootstrap Issues Bootstrap command\n"\
edamame22 0:29983394c6b6 42 "object <p> [options]\n"\
edamame22 0:29983394c6b6 43 "<p>:\n"\
edamame22 0:29983394c6b6 44 " Options for custom object\n"\
edamame22 0:29983394c6b6 45 " --name <name> Object name\n"\
edamame22 0:29983394c6b6 46 " --new_instance <n> If you need new instance 0=false(default), 1=true\n"\
edamame22 0:29983394c6b6 47 " --object_observable <n> Object is observable false=0(default), true=1\n"\
edamame22 0:29983394c6b6 48 " --object_instance_observable <n> Object Instance is observable false=0(default), true=1\n"\
edamame22 0:29983394c6b6 49 " --object_instance_id <n> Instance id of object instance 0=(default)\n"\
edamame22 0:29983394c6b6 50 " --object_operation <n> Operation Mode, Default is 0, NOT_ALLOWED = 0, GET_ALLOWED = 1,\n"\
edamame22 0:29983394c6b6 51 "PUT_ALLOWED = 2, GET_PUT_ALLOWED = 3, POST_ALLOWED = 4,GET_POST_ALLOWED = 5,\n"\
edamame22 0:29983394c6b6 52 "PUT_POST_ALLOWED = 6, GET_PUT_POST_ALLOWED = 7, DELETE_ALLOWED = 8\n"\
edamame22 0:29983394c6b6 53 " --object_instance_operation <n> Operation Mode, Default is 0, NOT_ALLOWED = 0, GET_ALLOWED = 1,\n"\
edamame22 0:29983394c6b6 54 "PUT_ALLOWED = 2, GET_PUT_ALLOWED = 3, POST_ALLOWED = 4,GET_POST_ALLOWED = 5,\n"\
edamame22 0:29983394c6b6 55 "PUT_POST_ALLOWED = 6, GET_PUT_POST_ALLOWED = 7, DELETE_ALLOWED = 8\n"\
edamame22 0:29983394c6b6 56 "static_resource <p> [options]\n"\
edamame22 0:29983394c6b6 57 "<p>:\n"\
edamame22 0:29983394c6b6 58 " Options for static resource\n"\
edamame22 0:29983394c6b6 59 " --object_instance <n> Instance Id of the object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 60 " --name <name> Resource name\n"\
edamame22 0:29983394c6b6 61 " --value <name> Resource value\n"\
edamame22 0:29983394c6b6 62 " --value_type <n> Value Type String=0, Integer=1\n"\
edamame22 0:29983394c6b6 63 " --multiple_instance <n> Supports multiple instances, false=0(default), true=1\n"\
edamame22 0:29983394c6b6 64 "dynamic_resource <p> [options]\n"\
edamame22 0:29983394c6b6 65 "<p>:\n"\
edamame22 0:29983394c6b6 66 " Options for dynamic resource\n"\
edamame22 0:29983394c6b6 67 " --object_instance <n> Instance Id of the object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 68 " --name <name> Resource name\n"\
edamame22 0:29983394c6b6 69 " --observable <n> Resource is observable false=0(default), true=1\n"\
edamame22 0:29983394c6b6 70 " --multiple_instance <n> Supports multiple instances, false=0(default), true=1\n"\
edamame22 0:29983394c6b6 71 " --resource_operation <n> Operation Mode, Default is 1, NOT_ALLOWED = 0, GET_ALLOWED = 1,\n"\
edamame22 0:29983394c6b6 72 "PUT_ALLOWED = 2, GET_PUT_ALLOWED = 3, POST_ALLOWED = 4,GET_POST_ALLOWED = 5,\n"\
edamame22 0:29983394c6b6 73 "PUT_POST_ALLOWED = 6, GET_PUT_POST_ALLOWED = 7, DELETE_ALLOWED = 8\n"\
edamame22 0:29983394c6b6 74 "dynamic_resource <p> [options]\n"\
edamame22 0:29983394c6b6 75 "static_resource_instance <p> [options]\n"\
edamame22 0:29983394c6b6 76 "<p>:\n"\
edamame22 0:29983394c6b6 77 " Options for static resource instance\n"\
edamame22 0:29983394c6b6 78 " --object_instance <n> Instance Id of the object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 79 " --resource_instance <n> Instance Id of the resource associated with, default is 0\n"\
edamame22 0:29983394c6b6 80 " --name <name> Resource name\n"\
edamame22 0:29983394c6b6 81 " --value <name> Resource value\n"\
edamame22 0:29983394c6b6 82 " --value_type <n> Value Type String=0, Integer=1\n"\
edamame22 0:29983394c6b6 83 " --multiple_instance <n> Supports multiple instances, false=0(default), true=1\n"\
edamame22 0:29983394c6b6 84 "dynamic_resource <p> [options]\n"\
edamame22 0:29983394c6b6 85 "dynamic_resource_instance <p> [options]\n"\
edamame22 0:29983394c6b6 86 "<p>:\n"\
edamame22 0:29983394c6b6 87 " Options for dynamic resource instance\n"\
edamame22 0:29983394c6b6 88 " --object_instance <n> Instance Id of the object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 89 " --resource_instance <n> Instance Id of the resource associated with, default is 0\n"\
edamame22 0:29983394c6b6 90 " --name <name> Resource name\n"\
edamame22 0:29983394c6b6 91 " --value_type <n> Value Type String=0, Integer=1(default)\n"\
edamame22 0:29983394c6b6 92 " --observable <n> Resource is observable false=0(default), true=1\n"\
edamame22 0:29983394c6b6 93 " --multiple_instance <n> Supports multiple instances, false=0(default), true=1\n"\
edamame22 0:29983394c6b6 94 " --resource_instance_operation <n> Operation Mode, Default is 1, NOT_ALLOWED = 0, GET_ALLOWED = 1,\n"\
edamame22 0:29983394c6b6 95 "PUT_ALLOWED = 2, GET_PUT_ALLOWED = 3, POST_ALLOWED = 4,GET_POST_ALLOWED = 5,\n"\
edamame22 0:29983394c6b6 96 "PUT_POST_ALLOWED = 6, GET_PUT_POST_ALLOWED = 7, DELETE_ALLOWED = 8\n"\
edamame22 0:29983394c6b6 97 "dynamic_resource <p> [options]\n"\
edamame22 0:29983394c6b6 98 "device <p> [options]\n"\
edamame22 0:29983394c6b6 99 "<p>:\n"\
edamame22 0:29983394c6b6 100 " Options for device object \n"\
edamame22 0:29983394c6b6 101 " --manufacturer <name> Manufacturer name\n"\
edamame22 0:29983394c6b6 102 " --model_number <name> Model number\n"\
edamame22 0:29983394c6b6 103 " --serial_number <name> Serial number\n"\
edamame22 0:29983394c6b6 104 " --device_type <name> Device Type\n"\
edamame22 0:29983394c6b6 105 " --hardware_version <name> Hardware version\n"\
edamame22 0:29983394c6b6 106 " --software_version <name> Software version\n"\
edamame22 0:29983394c6b6 107 " --firmware_version <name> Firmware version\n"\
edamame22 0:29983394c6b6 108 " --available_power_sources <n> Number of available power sources, Must have Instance ID\n"\
edamame22 0:29983394c6b6 109 " --power_source_voltage <n> Power source voltage, Must have Instance ID\n"\
edamame22 0:29983394c6b6 110 " --power_source_current <n> Power source current, Must have Instance ID\n"\
edamame22 0:29983394c6b6 111 " --battery_level <n> Battery level\n"\
edamame22 0:29983394c6b6 112 " --battery_status <n> Battery status\n"\
edamame22 0:29983394c6b6 113 " --memory_free <n> Free memory, in bytes\n"\
edamame22 0:29983394c6b6 114 " --memory_total <n> Free memory in bytes\n"\
edamame22 0:29983394c6b6 115 " --error_code <n> Error Code, Must have Instance ID\n"\
edamame22 0:29983394c6b6 116 " --current_time <n> Current Time, EPOCH format\n"\
edamame22 0:29983394c6b6 117 " --utc_offset <name> UTC Format\n"\
edamame22 0:29983394c6b6 118 " --timezone <name> Time zone \n"\
edamame22 0:29983394c6b6 119 " --instance_id <n> Instance ID for multiple resources \n"\
edamame22 0:29983394c6b6 120 "firmware <p> [options]\n"\
edamame22 0:29983394c6b6 121 "<p>:\n"\
edamame22 0:29983394c6b6 122 " Options for firmware object \n"\
edamame22 0:29983394c6b6 123 " --package <name> Firmware package\n"\
edamame22 0:29983394c6b6 124 " --package_uri <name> URI from where the device can download package\n"\
edamame22 0:29983394c6b6 125 " --state <n> State of firmware update\n"\
edamame22 0:29983394c6b6 126 " --update_supported_objects <bool> Send update registration message after fw update\n"\
edamame22 0:29983394c6b6 127 " --update_results <n> Result of downloading or updating firmware\n"\
edamame22 0:29983394c6b6 128 " --package_name <name> Package name\n"\
edamame22 0:29983394c6b6 129 " --package_version <name> Package version\n"\
edamame22 0:29983394c6b6 130 "register_object <p> [options]\n"\
edamame22 0:29983394c6b6 131 "<p>:\n"\
edamame22 0:29983394c6b6 132 " Options for register command\n"\
edamame22 0:29983394c6b6 133 " --address <name> mbed Device Server address, format is coap://192.168.0.1:5683\n"\
edamame22 0:29983394c6b6 134 " --secure <number> 1 == secure mode, non-secure otherwise (remember: secure port is 5684)\n"\
edamame22 0:29983394c6b6 135 "register Issues Register command\n"\
edamame22 0:29983394c6b6 136 "update-register <p> [options] Issues Update registration command\n"\
edamame22 0:29983394c6b6 137 "<p>:\n"\
edamame22 0:29983394c6b6 138 " Options for update-register command\n"\
edamame22 0:29983394c6b6 139 " --lifetime <n> Lifetime value in seconds\n"\
edamame22 0:29983394c6b6 140 "unregister Issues Un-register command\n"\
edamame22 0:29983394c6b6 141 "set_value <p> [options]\n"\
edamame22 0:29983394c6b6 142 "<p>:\n"\
edamame22 0:29983394c6b6 143 " Options for set_value command \n"\
edamame22 0:29983394c6b6 144 " --name <name> Resource name (Mandatory)\n"\
edamame22 0:29983394c6b6 145 " --value <value> Resource value (Mandatory)\n"\
edamame22 0:29983394c6b6 146 " --object_instance <n> Instance ID of object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 147 "set_value_instance <p> [options]\n"\
edamame22 0:29983394c6b6 148 "<p>:\n"\
edamame22 0:29983394c6b6 149 " Options for set_value_instance command for Resource Instances\n"\
edamame22 0:29983394c6b6 150 " --name <name> Resource name (Mandatory)\n"\
edamame22 0:29983394c6b6 151 " --value <value> Resource value (Mandatory)\n"\
edamame22 0:29983394c6b6 152 " --object_instance <n> Instance ID of object this resource is associated with, default is 0\n"\
edamame22 0:29983394c6b6 153 " --resource_instance <n> Instance ID of object of the resource, default is 0\n"\
edamame22 0:29983394c6b6 154 "resource_value <p> [options]\n"\
edamame22 0:29983394c6b6 155 "<p>:\n"\
edamame22 0:29983394c6b6 156 " Options for resource_value command\n"\
edamame22 0:29983394c6b6 157 " --firmware <n> Resource instance id in Firmware object\n"\
edamame22 0:29983394c6b6 158
edamame22 0:29983394c6b6 159 #define EXIT_MANUAL "exit :closes the application\n"
edamame22 0:29983394c6b6 160
edamame22 0:29983394c6b6 161
edamame22 0:29983394c6b6 162 int lwm2m_client_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 163 int lwm2m_client_setup_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 164 int lwm2m_client_device_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 165 int lwm2m_client_object_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 166 int lwm2m_client_static_resource_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 167 int lwm2m_client_dynamic_resource_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 168 int lwm2m_client_static_resource_instance_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 169 int lwm2m_client_dynamic_resource_instance_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 170 int lwm2m_client_bootstrap_object_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 171 int lwm2m_client_bootstrap_command();
edamame22 0:29983394c6b6 172 int lwm2m_client_register_object_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 173 int lwm2m_client_register_command();
edamame22 0:29983394c6b6 174 int lwm2m_client_update_register_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 175 int lwm2m_client_unregister_command();
edamame22 0:29983394c6b6 176 int lwm2m_client_set_value_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 177 int lwm2m_client_set_value_instance_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 178 int lwm2m_client_firmware_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 179 int lwm2m_client_resource_value(int argc, char *argv[]);
edamame22 0:29983394c6b6 180 int exit_command(int argc, char *argv[]);
edamame22 0:29983394c6b6 181
edamame22 0:29983394c6b6 182 void lwm2m_command_init(void)
edamame22 0:29983394c6b6 183 {
edamame22 0:29983394c6b6 184 cmd_add("lwm2m-client", lwm2m_client_command, "LWM2M Client specific command", CMD_MAN_LWM2M_CLIENT);
edamame22 0:29983394c6b6 185 cmd_alias_add("lwm2m-client-test-setup", "lwm2m-client setup --endpoint lwm2m-endpoint --type test --lifetime 3600");
edamame22 0:29983394c6b6 186 cmd_alias_add("lwm2m-client-test-device", "lwm2m-client device --manufacturer ARM --model_number 2015 --serial_number 12345");
edamame22 0:29983394c6b6 187 cmd_alias_add("lwm2m-client-test-bootstrap-object", "lwm2m-client bootstrap_object --address coap://10.45.3.10:5693");
edamame22 0:29983394c6b6 188 cmd_alias_add("lwm2m-client-test-register-object", "lwm2m-client register_object --address coap://10.45.3.10:5683");
edamame22 0:29983394c6b6 189 cmd_alias_add("lwm2m-client-test-object", "lwm2m-client object --name 10 --object_observable 1 --object_instance_observable 1 --object_operation 3 --object_instance_operation 3");
edamame22 0:29983394c6b6 190 cmd_alias_add("lwm2m-client-test-dynamic_resource", "lwm2m-client dynamic_resource --name 1 --resource_operation 3 --observable 0");
edamame22 0:29983394c6b6 191 cmd_alias_add("lwm2m-client-test-secure-register-object", "lwm2m-client register_object --address coap://10.45.3.10:5684 --secure 1");
edamame22 0:29983394c6b6 192 cmd_add("exit", exit_command, "exit command", EXIT_MANUAL);
edamame22 0:29983394c6b6 193 }
edamame22 0:29983394c6b6 194 char *test_mem_block = 0;
edamame22 0:29983394c6b6 195 int test_timer;
edamame22 0:29983394c6b6 196 M2MLWClient lwm2m_client;
edamame22 0:29983394c6b6 197
edamame22 0:29983394c6b6 198 int lwm2m_client_command(int argc, char *argv[])
edamame22 0:29983394c6b6 199 {
edamame22 0:29983394c6b6 200 if( strcmp(argv[1], "setup") == 0 )
edamame22 0:29983394c6b6 201 {
edamame22 0:29983394c6b6 202 return lwm2m_client_setup_command(argc, argv);
edamame22 0:29983394c6b6 203 }
edamame22 0:29983394c6b6 204 else if( strcmp(argv[1], "bootstrap_object") == 0 )
edamame22 0:29983394c6b6 205 {
edamame22 0:29983394c6b6 206 return lwm2m_client_bootstrap_object_command(argc, argv);
edamame22 0:29983394c6b6 207 }
edamame22 0:29983394c6b6 208 else if( strcmp(argv[1], "bootstrap") == 0 )
edamame22 0:29983394c6b6 209 {
edamame22 0:29983394c6b6 210 return lwm2m_client_bootstrap_command();
edamame22 0:29983394c6b6 211 }
edamame22 0:29983394c6b6 212 else if( strcmp(argv[1], "device") == 0 )
edamame22 0:29983394c6b6 213 {
edamame22 0:29983394c6b6 214 return lwm2m_client_device_command(argc, argv);
edamame22 0:29983394c6b6 215 }
edamame22 0:29983394c6b6 216 else if( strcmp(argv[1], "firmware") == 0 )
edamame22 0:29983394c6b6 217 {
edamame22 0:29983394c6b6 218 return lwm2m_client_firmware_command(argc, argv);
edamame22 0:29983394c6b6 219 }
edamame22 0:29983394c6b6 220 else if( strcmp(argv[1], "resource_value") == 0 )
edamame22 0:29983394c6b6 221 {
edamame22 0:29983394c6b6 222 return lwm2m_client_resource_value(argc, argv);
edamame22 0:29983394c6b6 223 }
edamame22 0:29983394c6b6 224 else if( strcmp(argv[1], "object") == 0 )
edamame22 0:29983394c6b6 225 {
edamame22 0:29983394c6b6 226 return lwm2m_client_object_command(argc, argv);
edamame22 0:29983394c6b6 227 }
edamame22 0:29983394c6b6 228 else if( strcmp(argv[1], "static_resource") == 0 )
edamame22 0:29983394c6b6 229 {
edamame22 0:29983394c6b6 230 return lwm2m_client_static_resource_command(argc, argv);
edamame22 0:29983394c6b6 231 }
edamame22 0:29983394c6b6 232 else if( strcmp(argv[1], "dynamic_resource") == 0 )
edamame22 0:29983394c6b6 233 {
edamame22 0:29983394c6b6 234 return lwm2m_client_dynamic_resource_command(argc, argv);
edamame22 0:29983394c6b6 235 }
edamame22 0:29983394c6b6 236 else if( strcmp(argv[1], "static_resource_instance") == 0 )
edamame22 0:29983394c6b6 237 {
edamame22 0:29983394c6b6 238 return lwm2m_client_static_resource_instance_command(argc, argv);
edamame22 0:29983394c6b6 239 }
edamame22 0:29983394c6b6 240 else if( strcmp(argv[1], "dynamic_resource_instance") == 0 )
edamame22 0:29983394c6b6 241 {
edamame22 0:29983394c6b6 242 return lwm2m_client_dynamic_resource_instance_command(argc, argv);
edamame22 0:29983394c6b6 243 }
edamame22 0:29983394c6b6 244 else if( strcmp(argv[1], "register_object") == 0 )
edamame22 0:29983394c6b6 245 {
edamame22 0:29983394c6b6 246 return lwm2m_client_register_object_command(argc, argv);
edamame22 0:29983394c6b6 247 }
edamame22 0:29983394c6b6 248 else if( strcmp(argv[1], "register") == 0 )
edamame22 0:29983394c6b6 249 {
edamame22 0:29983394c6b6 250 return lwm2m_client_register_command();
edamame22 0:29983394c6b6 251 }
edamame22 0:29983394c6b6 252 else if( strcmp(argv[1], "update-register") == 0 )
edamame22 0:29983394c6b6 253 {
edamame22 0:29983394c6b6 254 return lwm2m_client_update_register_command(argc, argv);
edamame22 0:29983394c6b6 255 }
edamame22 0:29983394c6b6 256 else if( strcmp(argv[1], "unregister") == 0 )
edamame22 0:29983394c6b6 257 {
edamame22 0:29983394c6b6 258 return lwm2m_client_unregister_command();
edamame22 0:29983394c6b6 259 }
edamame22 0:29983394c6b6 260 else if ( strcmp(argv[1], "set_value") == 0)
edamame22 0:29983394c6b6 261 {
edamame22 0:29983394c6b6 262 return lwm2m_client_set_value_command(argc, argv);
edamame22 0:29983394c6b6 263 }
edamame22 0:29983394c6b6 264 else if ( strcmp(argv[1], "set_value_instance") == 0)
edamame22 0:29983394c6b6 265 {
edamame22 0:29983394c6b6 266 return lwm2m_client_set_value_instance_command(argc, argv);
edamame22 0:29983394c6b6 267 }
edamame22 0:29983394c6b6 268 //:TODO what another commands should be there ?
edamame22 0:29983394c6b6 269 return CMDLINE_RETCODE_COMMAND_NOT_IMPLEMENTED;
edamame22 0:29983394c6b6 270 }
edamame22 0:29983394c6b6 271
edamame22 0:29983394c6b6 272 int lwm2m_client_setup_command(int argc, char *argv[])
edamame22 0:29983394c6b6 273 {
edamame22 0:29983394c6b6 274 char *endpoint = 0;
edamame22 0:29983394c6b6 275 char *type = 0;
edamame22 0:29983394c6b6 276 int lifetime = -1;
edamame22 0:29983394c6b6 277 int32_t port = 5683;
edamame22 0:29983394c6b6 278 char *domain = 0;
edamame22 0:29983394c6b6 279 int32_t binding_mode = 1;
edamame22 0:29983394c6b6 280 int32_t network_interface = 1;
edamame22 0:29983394c6b6 281
edamame22 0:29983394c6b6 282 if (!cmd_parameter_val(argc, argv, "--endpoint", &endpoint)) {
edamame22 0:29983394c6b6 283 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 284 }
edamame22 0:29983394c6b6 285 int opt_params = 0;
edamame22 0:29983394c6b6 286 cmd_parameter_val(argc, argv, "--type", &type);
edamame22 0:29983394c6b6 287 if (cmd_parameter_int(argc, argv, "--lifetime", &lifetime)) {
edamame22 0:29983394c6b6 288 if (opt_params != 0) {
edamame22 0:29983394c6b6 289 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 290 }
edamame22 0:29983394c6b6 291 else {
edamame22 0:29983394c6b6 292 opt_params += 1;
edamame22 0:29983394c6b6 293 }
edamame22 0:29983394c6b6 294 }
edamame22 0:29983394c6b6 295 if (cmd_parameter_int(argc, argv, "--port", &port)) {
edamame22 0:29983394c6b6 296 if (port > UINT16_MAX || opt_params != 1) {
edamame22 0:29983394c6b6 297 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 298 }
edamame22 0:29983394c6b6 299 else {
edamame22 0:29983394c6b6 300 opt_params += 1;
edamame22 0:29983394c6b6 301 }
edamame22 0:29983394c6b6 302 }
edamame22 0:29983394c6b6 303 if (cmd_parameter_val(argc, argv, "--domain", &domain)) {
edamame22 0:29983394c6b6 304 if (opt_params != 2) {
edamame22 0:29983394c6b6 305 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 306 }
edamame22 0:29983394c6b6 307 else {
edamame22 0:29983394c6b6 308 opt_params += 1;
edamame22 0:29983394c6b6 309 }
edamame22 0:29983394c6b6 310 }
edamame22 0:29983394c6b6 311 if (cmd_parameter_int(argc, argv, "--binding_mode", &binding_mode)) {
edamame22 0:29983394c6b6 312 if (opt_params != 3) {
edamame22 0:29983394c6b6 313 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 314 }
edamame22 0:29983394c6b6 315 else {
edamame22 0:29983394c6b6 316 opt_params += 1;
edamame22 0:29983394c6b6 317 }
edamame22 0:29983394c6b6 318 }
edamame22 0:29983394c6b6 319 if (cmd_parameter_int(argc, argv, "--network_interface", &network_interface)) {
edamame22 0:29983394c6b6 320 if (opt_params != 4) {
edamame22 0:29983394c6b6 321 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 322 }
edamame22 0:29983394c6b6 323 else {
edamame22 0:29983394c6b6 324 opt_params += 1;
edamame22 0:29983394c6b6 325 }
edamame22 0:29983394c6b6 326 }
edamame22 0:29983394c6b6 327
edamame22 0:29983394c6b6 328 bool success = false;
edamame22 0:29983394c6b6 329 if (lwm2m_client.create_interface(opt_params,
edamame22 0:29983394c6b6 330 endpoint,
edamame22 0:29983394c6b6 331 type,
edamame22 0:29983394c6b6 332 lifetime,
edamame22 0:29983394c6b6 333 port,
edamame22 0:29983394c6b6 334 domain,
edamame22 0:29983394c6b6 335 binding_mode,
edamame22 0:29983394c6b6 336 network_interface)) {
edamame22 0:29983394c6b6 337 return CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 338 }
edamame22 0:29983394c6b6 339
edamame22 0:29983394c6b6 340 return CMDLINE_RETCODE_FAIL;
edamame22 0:29983394c6b6 341 }
edamame22 0:29983394c6b6 342
edamame22 0:29983394c6b6 343 int lwm2m_client_device_command(int argc, char *argv[])
edamame22 0:29983394c6b6 344 {
edamame22 0:29983394c6b6 345 int return_code = CMDLINE_RETCODE_SUCCESS;// CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 346 char *manufacturer = 0;
edamame22 0:29983394c6b6 347 char *model_number = 0;
edamame22 0:29983394c6b6 348 char *serial_number = 0;
edamame22 0:29983394c6b6 349 char *device_type = 0;
edamame22 0:29983394c6b6 350 char *hardware_version = 0;
edamame22 0:29983394c6b6 351 char *software_version = 0;
edamame22 0:29983394c6b6 352 char *firmware_version = 0;
edamame22 0:29983394c6b6 353 char *utc_offset = 0;
edamame22 0:29983394c6b6 354 char *timezone = 0;
edamame22 0:29983394c6b6 355 int32_t current_time = 0;
edamame22 0:29983394c6b6 356 int32_t available_power_sources = 0;
edamame22 0:29983394c6b6 357 int32_t power_source_voltage = 0;
edamame22 0:29983394c6b6 358 int32_t power_source_current = 0;
edamame22 0:29983394c6b6 359 int32_t battery_status = 0;
edamame22 0:29983394c6b6 360 int32_t battery_level = 0;
edamame22 0:29983394c6b6 361 int32_t memory_free = 0;
edamame22 0:29983394c6b6 362 int32_t memory_total = 0;
edamame22 0:29983394c6b6 363 int32_t error_code = 0;
edamame22 0:29983394c6b6 364 int32_t instance_id = 0;
edamame22 0:29983394c6b6 365
edamame22 0:29983394c6b6 366 lwm2m_client.create_device_object();
edamame22 0:29983394c6b6 367
edamame22 0:29983394c6b6 368 if(cmd_parameter_val(argc, argv, "--manufacturer", &manufacturer)) {
edamame22 0:29983394c6b6 369 if(!lwm2m_client.create_device_object(M2MDevice::Manufacturer,
edamame22 0:29983394c6b6 370 manufacturer)) {
edamame22 0:29983394c6b6 371 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 372 }
edamame22 0:29983394c6b6 373 }
edamame22 0:29983394c6b6 374 if(cmd_parameter_val(argc, argv, "--model_number", &model_number)) {
edamame22 0:29983394c6b6 375 if(!lwm2m_client.create_device_object(M2MDevice::ModelNumber,
edamame22 0:29983394c6b6 376 model_number)) {
edamame22 0:29983394c6b6 377 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 378 }
edamame22 0:29983394c6b6 379 }
edamame22 0:29983394c6b6 380 if(cmd_parameter_val(argc, argv, "--serial_number", &serial_number)){
edamame22 0:29983394c6b6 381 if(!lwm2m_client.create_device_object(M2MDevice::SerialNumber,
edamame22 0:29983394c6b6 382 serial_number)) {
edamame22 0:29983394c6b6 383 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 384 }
edamame22 0:29983394c6b6 385 }
edamame22 0:29983394c6b6 386 if(cmd_parameter_val(argc, argv, "--device_type", &device_type)){
edamame22 0:29983394c6b6 387 if(!lwm2m_client.create_device_object(M2MDevice::DeviceType,
edamame22 0:29983394c6b6 388 device_type)) {
edamame22 0:29983394c6b6 389 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 390 }
edamame22 0:29983394c6b6 391 }
edamame22 0:29983394c6b6 392 if(cmd_parameter_val(argc, argv, "--hardware_version", &hardware_version)){
edamame22 0:29983394c6b6 393 if(!lwm2m_client.create_device_object(M2MDevice::HardwareVersion,
edamame22 0:29983394c6b6 394 hardware_version)) {
edamame22 0:29983394c6b6 395 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 396 }
edamame22 0:29983394c6b6 397 }
edamame22 0:29983394c6b6 398 if(cmd_parameter_val(argc, argv, "--software_version", &software_version)){
edamame22 0:29983394c6b6 399 if(!lwm2m_client.create_device_object(M2MDevice::SoftwareVersion,
edamame22 0:29983394c6b6 400 software_version)) {
edamame22 0:29983394c6b6 401 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 402 }
edamame22 0:29983394c6b6 403 }
edamame22 0:29983394c6b6 404 if(cmd_parameter_val(argc, argv, "--firmware_version", &firmware_version)){
edamame22 0:29983394c6b6 405 if(!lwm2m_client.create_device_object(M2MDevice::FirmwareVersion,
edamame22 0:29983394c6b6 406 firmware_version)) {
edamame22 0:29983394c6b6 407 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 408 }
edamame22 0:29983394c6b6 409 }
edamame22 0:29983394c6b6 410 if(cmd_parameter_int(argc, argv, "--available_power_sources", &available_power_sources)){
edamame22 0:29983394c6b6 411 if(cmd_parameter_int(argc, argv, "--instance_id", &instance_id)) {
edamame22 0:29983394c6b6 412 if(!lwm2m_client.create_device_object(M2MDevice::AvailablePowerSources,
edamame22 0:29983394c6b6 413 available_power_sources,instance_id)) {
edamame22 0:29983394c6b6 414 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 415 }
edamame22 0:29983394c6b6 416 }
edamame22 0:29983394c6b6 417 }
edamame22 0:29983394c6b6 418 if(cmd_parameter_int(argc, argv, "--power_source_voltage", &power_source_voltage)){
edamame22 0:29983394c6b6 419 if(cmd_parameter_int(argc, argv, "--instance_id", &instance_id)) {
edamame22 0:29983394c6b6 420 if(!lwm2m_client.create_device_object(M2MDevice::PowerSourceVoltage,
edamame22 0:29983394c6b6 421 power_source_voltage,instance_id)) {
edamame22 0:29983394c6b6 422 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 423 }
edamame22 0:29983394c6b6 424 }
edamame22 0:29983394c6b6 425 }
edamame22 0:29983394c6b6 426 if(cmd_parameter_int(argc, argv, "--power_source_current", &power_source_current)){
edamame22 0:29983394c6b6 427 if(cmd_parameter_int(argc, argv, "--instance_id", &instance_id)) {
edamame22 0:29983394c6b6 428 if(!lwm2m_client.create_device_object(M2MDevice::PowerSourceCurrent,
edamame22 0:29983394c6b6 429 power_source_current,instance_id)) {
edamame22 0:29983394c6b6 430 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 431 }
edamame22 0:29983394c6b6 432 }
edamame22 0:29983394c6b6 433 }
edamame22 0:29983394c6b6 434 if(cmd_parameter_int(argc, argv, "--battery_level", &battery_level)){
edamame22 0:29983394c6b6 435 if(!lwm2m_client.create_device_object(M2MDevice::BatteryLevel,
edamame22 0:29983394c6b6 436 battery_level)) {
edamame22 0:29983394c6b6 437 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 438 }
edamame22 0:29983394c6b6 439 }
edamame22 0:29983394c6b6 440 if(cmd_parameter_int(argc, argv, "--battery_status", &battery_status)){
edamame22 0:29983394c6b6 441 if(!lwm2m_client.create_device_object(M2MDevice::BatteryStatus,
edamame22 0:29983394c6b6 442 battery_status)) {
edamame22 0:29983394c6b6 443 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 444 }
edamame22 0:29983394c6b6 445 }
edamame22 0:29983394c6b6 446 if(cmd_parameter_int(argc, argv, "--memory_free", &memory_free)){
edamame22 0:29983394c6b6 447 if(!lwm2m_client.create_device_object(M2MDevice::MemoryFree,
edamame22 0:29983394c6b6 448 memory_free)) {
edamame22 0:29983394c6b6 449 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 450 }
edamame22 0:29983394c6b6 451 }
edamame22 0:29983394c6b6 452 if(cmd_parameter_int(argc, argv, "--memory_total", &memory_total)){
edamame22 0:29983394c6b6 453 if(!lwm2m_client.create_device_object(M2MDevice::MemoryTotal,
edamame22 0:29983394c6b6 454 memory_total)) {
edamame22 0:29983394c6b6 455 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 456 }
edamame22 0:29983394c6b6 457 }
edamame22 0:29983394c6b6 458 if(cmd_parameter_int(argc, argv, "--error_code", &error_code)){
edamame22 0:29983394c6b6 459 if(cmd_parameter_int(argc, argv, "--instance_id", &instance_id)) {
edamame22 0:29983394c6b6 460 if(!lwm2m_client.create_device_object(M2MDevice::ErrorCode,
edamame22 0:29983394c6b6 461 error_code,instance_id)) {
edamame22 0:29983394c6b6 462 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 463 }
edamame22 0:29983394c6b6 464 }
edamame22 0:29983394c6b6 465 }
edamame22 0:29983394c6b6 466 if(cmd_parameter_int(argc, argv, "--current_time", &current_time)){
edamame22 0:29983394c6b6 467 if(!lwm2m_client.create_device_object(M2MDevice::CurrentTime,
edamame22 0:29983394c6b6 468 current_time)) {
edamame22 0:29983394c6b6 469 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 470 }
edamame22 0:29983394c6b6 471 }
edamame22 0:29983394c6b6 472 if(cmd_parameter_val(argc, argv, "--utc_offset", &utc_offset)){
edamame22 0:29983394c6b6 473 if(!lwm2m_client.create_device_object(M2MDevice::UTCOffset,
edamame22 0:29983394c6b6 474 utc_offset)) {
edamame22 0:29983394c6b6 475 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 476 }
edamame22 0:29983394c6b6 477 }
edamame22 0:29983394c6b6 478 if(cmd_parameter_val(argc, argv, "--timezone", &timezone)){
edamame22 0:29983394c6b6 479 if(!lwm2m_client.create_device_object(M2MDevice::Timezone,
edamame22 0:29983394c6b6 480 timezone)) {
edamame22 0:29983394c6b6 481 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 482 }
edamame22 0:29983394c6b6 483 }
edamame22 0:29983394c6b6 484
edamame22 0:29983394c6b6 485 return return_code;
edamame22 0:29983394c6b6 486 }
edamame22 0:29983394c6b6 487
edamame22 0:29983394c6b6 488 int lwm2m_client_firmware_command(int argc, char *argv[])
edamame22 0:29983394c6b6 489 {
edamame22 0:29983394c6b6 490 int return_code = CMDLINE_RETCODE_SUCCESS;// CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 491 char *package = 0;
edamame22 0:29983394c6b6 492 char *package_uri = 0;
edamame22 0:29983394c6b6 493 char *package_name = 0;
edamame22 0:29983394c6b6 494 char *package_version = 0;
edamame22 0:29983394c6b6 495 int32_t state = 1;
edamame22 0:29983394c6b6 496 int32_t update_result = 0;
edamame22 0:29983394c6b6 497 int32_t update_supported_objects = 0;
edamame22 0:29983394c6b6 498
edamame22 0:29983394c6b6 499 lwm2m_client.create_firmware_object();
edamame22 0:29983394c6b6 500
edamame22 0:29983394c6b6 501 if(cmd_parameter_val(argc, argv, "--package", &package)) {
edamame22 0:29983394c6b6 502 uint16_t length = (uint16_t)sizeof(package);
edamame22 0:29983394c6b6 503 if(!lwm2m_client.create_firmware_object(M2MFirmware::Package,
edamame22 0:29983394c6b6 504 (const uint8_t*)package, length)) {
edamame22 0:29983394c6b6 505 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 506 }
edamame22 0:29983394c6b6 507 }
edamame22 0:29983394c6b6 508
edamame22 0:29983394c6b6 509 if(cmd_parameter_val(argc, argv, "--package_uri", &package_uri)) {
edamame22 0:29983394c6b6 510 if(!lwm2m_client.create_firmware_object(M2MFirmware::PackageUri,
edamame22 0:29983394c6b6 511 package_uri)) {
edamame22 0:29983394c6b6 512 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 513 }
edamame22 0:29983394c6b6 514 }
edamame22 0:29983394c6b6 515 if(cmd_parameter_int(argc, argv, "--state", &state)) {
edamame22 0:29983394c6b6 516 if(!lwm2m_client.create_firmware_object(M2MFirmware::State,
edamame22 0:29983394c6b6 517 state)) {
edamame22 0:29983394c6b6 518 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 519 }
edamame22 0:29983394c6b6 520 }
edamame22 0:29983394c6b6 521 if(cmd_parameter_int(argc, argv, "--update_supported_objects", &update_supported_objects)) {
edamame22 0:29983394c6b6 522 if(!lwm2m_client.create_firmware_object(M2MFirmware::UpdateSupportedObjects,
edamame22 0:29983394c6b6 523 update_supported_objects)) {
edamame22 0:29983394c6b6 524 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 525 }
edamame22 0:29983394c6b6 526 }
edamame22 0:29983394c6b6 527 if(cmd_parameter_int(argc, argv, "--update_results", &update_result)) {
edamame22 0:29983394c6b6 528 if(!lwm2m_client.create_firmware_object(M2MFirmware::UpdateResult,
edamame22 0:29983394c6b6 529 update_result)) {
edamame22 0:29983394c6b6 530 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 531 }
edamame22 0:29983394c6b6 532 }
edamame22 0:29983394c6b6 533 if(cmd_parameter_val(argc, argv, "--package_name", &package_name)) {
edamame22 0:29983394c6b6 534 if(!lwm2m_client.create_firmware_object(M2MFirmware::PackageName,
edamame22 0:29983394c6b6 535 package_name)) {
edamame22 0:29983394c6b6 536 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 537 }
edamame22 0:29983394c6b6 538 }
edamame22 0:29983394c6b6 539 if(cmd_parameter_val(argc, argv, "--package_version", &package_version)) {
edamame22 0:29983394c6b6 540 if(!lwm2m_client.create_firmware_object(M2MFirmware::PackageVersion,
edamame22 0:29983394c6b6 541 package_version)) {
edamame22 0:29983394c6b6 542 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 543 }
edamame22 0:29983394c6b6 544 }
edamame22 0:29983394c6b6 545 lwm2m_client.set_fw_execute_function();
edamame22 0:29983394c6b6 546 return return_code;
edamame22 0:29983394c6b6 547 }
edamame22 0:29983394c6b6 548
edamame22 0:29983394c6b6 549 int lwm2m_client_resource_value(int argc, char *argv[])
edamame22 0:29983394c6b6 550 {
edamame22 0:29983394c6b6 551 int resource = 0;
edamame22 0:29983394c6b6 552 if(cmd_parameter_int(argc, argv, "--firmware", &resource)) {
edamame22 0:29983394c6b6 553 if (resource == 3 || resource == 4 || resource == 5) {
edamame22 0:29983394c6b6 554 lwm2m_client.firmware_resource_int(resource);
edamame22 0:29983394c6b6 555 }
edamame22 0:29983394c6b6 556 else if (resource == 0) {
edamame22 0:29983394c6b6 557 lwm2m_client.firmware_resource_buffer();
edamame22 0:29983394c6b6 558 }
edamame22 0:29983394c6b6 559 else {
edamame22 0:29983394c6b6 560 lwm2m_client.firmware_resource_string(resource);
edamame22 0:29983394c6b6 561 }
edamame22 0:29983394c6b6 562 }
edamame22 0:29983394c6b6 563 return CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 564 }
edamame22 0:29983394c6b6 565
edamame22 0:29983394c6b6 566 int lwm2m_client_object_command(int argc, char *argv[])
edamame22 0:29983394c6b6 567 {
edamame22 0:29983394c6b6 568 int return_code = CMDLINE_RETCODE_SUCCESS;// CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 569 char *object_name = 0;
edamame22 0:29983394c6b6 570 int32_t new_instance = 0;
edamame22 0:29983394c6b6 571 int32_t object_operation = 0;
edamame22 0:29983394c6b6 572 int32_t object_instance_operation = 0;
edamame22 0:29983394c6b6 573 int32_t object_instance_id = 0;
edamame22 0:29983394c6b6 574 int32_t object_observable = 0;
edamame22 0:29983394c6b6 575 int32_t object_instance_observable = 0;
edamame22 0:29983394c6b6 576
edamame22 0:29983394c6b6 577 if(cmd_parameter_val(argc, argv, "--name", &object_name)) {
edamame22 0:29983394c6b6 578 cmd_parameter_int(argc, argv, "--new_instance", &new_instance);
edamame22 0:29983394c6b6 579 cmd_parameter_int(argc, argv, "--object_operation", &object_operation);
edamame22 0:29983394c6b6 580 cmd_parameter_int(argc, argv, "--object_instance_operation", &object_instance_operation);
edamame22 0:29983394c6b6 581 cmd_parameter_int(argc, argv, "--object_instance_id", &object_instance_id);
edamame22 0:29983394c6b6 582 cmd_parameter_int(argc, argv, "--object_observable", &object_observable);
edamame22 0:29983394c6b6 583 cmd_parameter_int(argc, argv, "--object_instance_observable", &object_instance_observable);
edamame22 0:29983394c6b6 584
edamame22 0:29983394c6b6 585 if(!lwm2m_client.create_object(object_name,
edamame22 0:29983394c6b6 586 new_instance,
edamame22 0:29983394c6b6 587 object_operation,
edamame22 0:29983394c6b6 588 object_instance_operation,
edamame22 0:29983394c6b6 589 object_instance_id,
edamame22 0:29983394c6b6 590 object_observable,
edamame22 0:29983394c6b6 591 object_instance_observable)) {
edamame22 0:29983394c6b6 592 return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 593 }
edamame22 0:29983394c6b6 594 }
edamame22 0:29983394c6b6 595 return return_code;
edamame22 0:29983394c6b6 596 }
edamame22 0:29983394c6b6 597
edamame22 0:29983394c6b6 598 int lwm2m_client_static_resource_command(int argc, char *argv[])
edamame22 0:29983394c6b6 599 {
edamame22 0:29983394c6b6 600 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 601 char *name = 0;
edamame22 0:29983394c6b6 602 char *value_string = 0;
edamame22 0:29983394c6b6 603 int32_t value_int = 0;
edamame22 0:29983394c6b6 604 int32_t value_type = -1;
edamame22 0:29983394c6b6 605 int32_t multiple_instance = 0;
edamame22 0:29983394c6b6 606 int32_t object_instance = 0;
edamame22 0:29983394c6b6 607
edamame22 0:29983394c6b6 608 cmd_parameter_int(argc, argv, "--multiple_instance", &multiple_instance);
edamame22 0:29983394c6b6 609 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 610
edamame22 0:29983394c6b6 611
edamame22 0:29983394c6b6 612 if(cmd_parameter_int(argc, argv, "--value_type", &value_type)) {
edamame22 0:29983394c6b6 613 if(0 == value_type){
edamame22 0:29983394c6b6 614 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 615 cmd_parameter_val(argc, argv, "--value", &value_string)) {
edamame22 0:29983394c6b6 616 if(lwm2m_client.create_static_resource_string(name,value_string,
edamame22 0:29983394c6b6 617 multiple_instance,object_instance)) {
edamame22 0:29983394c6b6 618 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 619 }
edamame22 0:29983394c6b6 620 }
edamame22 0:29983394c6b6 621 } else if(1 == value_type){
edamame22 0:29983394c6b6 622 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 623 cmd_parameter_int(argc, argv, "--value", &value_int)) {
edamame22 0:29983394c6b6 624 if(lwm2m_client.create_static_resource_int(name,value_int,
edamame22 0:29983394c6b6 625 multiple_instance,object_instance)) {
edamame22 0:29983394c6b6 626 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 627 }
edamame22 0:29983394c6b6 628 }
edamame22 0:29983394c6b6 629 }
edamame22 0:29983394c6b6 630 }
edamame22 0:29983394c6b6 631 return return_code;
edamame22 0:29983394c6b6 632 }
edamame22 0:29983394c6b6 633
edamame22 0:29983394c6b6 634 int lwm2m_client_dynamic_resource_command(int argc, char *argv[])
edamame22 0:29983394c6b6 635 {
edamame22 0:29983394c6b6 636 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 637 char *name = 0;
edamame22 0:29983394c6b6 638 int32_t multiple_instance = 0;
edamame22 0:29983394c6b6 639 int32_t object_instance = 0;
edamame22 0:29983394c6b6 640 int32_t observable = 0;
edamame22 0:29983394c6b6 641 int32_t resource_operation = 1;
edamame22 0:29983394c6b6 642 int32_t value_type = -1;
edamame22 0:29983394c6b6 643
edamame22 0:29983394c6b6 644 cmd_parameter_int(argc, argv, "--value_type", &value_type);
edamame22 0:29983394c6b6 645 cmd_parameter_int(argc, argv, "--multiple_instance", &multiple_instance);
edamame22 0:29983394c6b6 646 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 647 cmd_parameter_int(argc, argv, "--observable", &observable);
edamame22 0:29983394c6b6 648 cmd_parameter_int(argc, argv, "--resource_operation", &resource_operation);
edamame22 0:29983394c6b6 649 if(-1 == value_type){
edamame22 0:29983394c6b6 650 value_type = 1;
edamame22 0:29983394c6b6 651 }
edamame22 0:29983394c6b6 652
edamame22 0:29983394c6b6 653 if(cmd_parameter_val(argc, argv, "--name", &name)) {
edamame22 0:29983394c6b6 654 if(0 == value_type) {
edamame22 0:29983394c6b6 655 if(lwm2m_client.create_dynamic_resource_string(name,observable,
edamame22 0:29983394c6b6 656 multiple_instance,
edamame22 0:29983394c6b6 657 object_instance,
edamame22 0:29983394c6b6 658 resource_operation)) {
edamame22 0:29983394c6b6 659 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 660 }
edamame22 0:29983394c6b6 661 }
edamame22 0:29983394c6b6 662 else if(1 == value_type){
edamame22 0:29983394c6b6 663 if(lwm2m_client.create_dynamic_resource_int(name,observable,
edamame22 0:29983394c6b6 664 multiple_instance,
edamame22 0:29983394c6b6 665 object_instance,
edamame22 0:29983394c6b6 666 resource_operation)) {
edamame22 0:29983394c6b6 667 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 668 }
edamame22 0:29983394c6b6 669 }
edamame22 0:29983394c6b6 670
edamame22 0:29983394c6b6 671 }
edamame22 0:29983394c6b6 672 return return_code;
edamame22 0:29983394c6b6 673 }
edamame22 0:29983394c6b6 674
edamame22 0:29983394c6b6 675 int lwm2m_client_static_resource_instance_command(int argc, char *argv[])
edamame22 0:29983394c6b6 676 {
edamame22 0:29983394c6b6 677 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 678 char *name = 0;
edamame22 0:29983394c6b6 679 char *value_string = 0;
edamame22 0:29983394c6b6 680 int32_t value_int = 0;
edamame22 0:29983394c6b6 681 int32_t value_type = -1;
edamame22 0:29983394c6b6 682 int32_t multiple_instance = 0;
edamame22 0:29983394c6b6 683 int32_t object_instance = 0;
edamame22 0:29983394c6b6 684 int32_t resource_instance = 0;
edamame22 0:29983394c6b6 685
edamame22 0:29983394c6b6 686 cmd_parameter_int(argc, argv, "--multiple_instance", &multiple_instance);
edamame22 0:29983394c6b6 687 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 688 cmd_parameter_int(argc, argv, "--resource_instance", &resource_instance);
edamame22 0:29983394c6b6 689
edamame22 0:29983394c6b6 690 if(cmd_parameter_int(argc, argv, "--value_type", &value_type)) {
edamame22 0:29983394c6b6 691 if(0 == value_type){
edamame22 0:29983394c6b6 692 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 693 cmd_parameter_val(argc, argv, "--value", &value_string)) {
edamame22 0:29983394c6b6 694 if(lwm2m_client.create_static_resource_instance_string(name,value_string,
edamame22 0:29983394c6b6 695 multiple_instance,
edamame22 0:29983394c6b6 696 object_instance,
edamame22 0:29983394c6b6 697 resource_instance)) {
edamame22 0:29983394c6b6 698 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 699 }
edamame22 0:29983394c6b6 700 }
edamame22 0:29983394c6b6 701 } else if(1 == value_type){
edamame22 0:29983394c6b6 702 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 703 cmd_parameter_int(argc, argv, "--value", &value_int)) {
edamame22 0:29983394c6b6 704 if(lwm2m_client.create_static_resource_instance_int(name,value_int,
edamame22 0:29983394c6b6 705 multiple_instance,
edamame22 0:29983394c6b6 706 object_instance,
edamame22 0:29983394c6b6 707 resource_instance)) {
edamame22 0:29983394c6b6 708 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 709 }
edamame22 0:29983394c6b6 710 }
edamame22 0:29983394c6b6 711 }
edamame22 0:29983394c6b6 712 }
edamame22 0:29983394c6b6 713 return return_code;
edamame22 0:29983394c6b6 714 }
edamame22 0:29983394c6b6 715
edamame22 0:29983394c6b6 716 int lwm2m_client_dynamic_resource_instance_command(int argc, char *argv[])
edamame22 0:29983394c6b6 717 {
edamame22 0:29983394c6b6 718 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 719 char *name = 0;
edamame22 0:29983394c6b6 720 int32_t multiple_instance = 0;
edamame22 0:29983394c6b6 721 int32_t object_instance = 0;
edamame22 0:29983394c6b6 722 int32_t resource_instance = 0;
edamame22 0:29983394c6b6 723 int32_t observable = 0;
edamame22 0:29983394c6b6 724 int32_t resource_instance_operation = 1;
edamame22 0:29983394c6b6 725 int32_t value_type = -1;
edamame22 0:29983394c6b6 726
edamame22 0:29983394c6b6 727 cmd_parameter_int(argc, argv, "--value_type", &value_type);
edamame22 0:29983394c6b6 728 cmd_parameter_int(argc, argv, "--multiple_instance", &multiple_instance);
edamame22 0:29983394c6b6 729 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 730 cmd_parameter_int(argc, argv, "--resource_instance", &resource_instance);
edamame22 0:29983394c6b6 731 cmd_parameter_int(argc, argv, "--observable", &observable);
edamame22 0:29983394c6b6 732 cmd_parameter_int(argc, argv, "--resource_instance_operation", &resource_instance_operation);
edamame22 0:29983394c6b6 733 if(-1 == value_type){
edamame22 0:29983394c6b6 734 value_type = 1;
edamame22 0:29983394c6b6 735 }
edamame22 0:29983394c6b6 736
edamame22 0:29983394c6b6 737 if(cmd_parameter_val(argc, argv, "--name", &name)) {
edamame22 0:29983394c6b6 738 if(0 == value_type){
edamame22 0:29983394c6b6 739 if(lwm2m_client.create_dynamic_resource_instance_string(name,observable,
edamame22 0:29983394c6b6 740 multiple_instance,
edamame22 0:29983394c6b6 741 object_instance,
edamame22 0:29983394c6b6 742 resource_instance,
edamame22 0:29983394c6b6 743 resource_instance_operation)) {
edamame22 0:29983394c6b6 744 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 745 }
edamame22 0:29983394c6b6 746 }
edamame22 0:29983394c6b6 747 else if(1 == value_type){
edamame22 0:29983394c6b6 748 if(lwm2m_client.create_dynamic_resource_instance_int(name,observable,
edamame22 0:29983394c6b6 749 multiple_instance,
edamame22 0:29983394c6b6 750 object_instance,
edamame22 0:29983394c6b6 751 resource_instance,
edamame22 0:29983394c6b6 752 resource_instance_operation)) {
edamame22 0:29983394c6b6 753 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 754 }
edamame22 0:29983394c6b6 755 }
edamame22 0:29983394c6b6 756 }
edamame22 0:29983394c6b6 757 return return_code;
edamame22 0:29983394c6b6 758 }
edamame22 0:29983394c6b6 759
edamame22 0:29983394c6b6 760 int lwm2m_client_bootstrap_object_command(int argc, char *argv[])
edamame22 0:29983394c6b6 761 {
edamame22 0:29983394c6b6 762 int return_code = CMDLINE_RETCODE_FAIL;
edamame22 0:29983394c6b6 763 char *address = 0;
edamame22 0:29983394c6b6 764
edamame22 0:29983394c6b6 765 if( cmd_parameter_val(argc, argv, "--address", &address) ){
edamame22 0:29983394c6b6 766 if(lwm2m_client.create_bootstrap_object(address)){
edamame22 0:29983394c6b6 767 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 768 }
edamame22 0:29983394c6b6 769 } else {
edamame22 0:29983394c6b6 770 return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 771 }
edamame22 0:29983394c6b6 772 return return_code;
edamame22 0:29983394c6b6 773 }
edamame22 0:29983394c6b6 774
edamame22 0:29983394c6b6 775 int lwm2m_client_bootstrap_command()
edamame22 0:29983394c6b6 776 {
edamame22 0:29983394c6b6 777 int return_code = CMDLINE_RETCODE_FAIL;
edamame22 0:29983394c6b6 778
edamame22 0:29983394c6b6 779 if(lwm2m_client.test_bootstrap()){
edamame22 0:29983394c6b6 780 return_code = CMDLINE_RETCODE_EXCUTING_CONTINUE;
edamame22 0:29983394c6b6 781 }
edamame22 0:29983394c6b6 782 return return_code;
edamame22 0:29983394c6b6 783 }
edamame22 0:29983394c6b6 784
edamame22 0:29983394c6b6 785 int lwm2m_client_register_object_command(int argc, char *argv[])
edamame22 0:29983394c6b6 786 {
edamame22 0:29983394c6b6 787 char *address = 0;
edamame22 0:29983394c6b6 788 cmd_parameter_val(argc, argv, "--address", &address);
edamame22 0:29983394c6b6 789
edamame22 0:29983394c6b6 790 int useSecureConn = 0;
edamame22 0:29983394c6b6 791 if( !cmd_parameter_int(argc, argv, "--secure", &useSecureConn) ){
edamame22 0:29983394c6b6 792 useSecureConn = 0;
edamame22 0:29983394c6b6 793 }
edamame22 0:29983394c6b6 794
edamame22 0:29983394c6b6 795 if(lwm2m_client.create_register_object(address, useSecureConn == 1)) {
edamame22 0:29983394c6b6 796 return CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 797 }
edamame22 0:29983394c6b6 798 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 799 }
edamame22 0:29983394c6b6 800
edamame22 0:29983394c6b6 801 int lwm2m_client_register_command()
edamame22 0:29983394c6b6 802 {
edamame22 0:29983394c6b6 803 if(lwm2m_client.test_register()) {
edamame22 0:29983394c6b6 804 return CMDLINE_RETCODE_EXCUTING_CONTINUE;
edamame22 0:29983394c6b6 805 }
edamame22 0:29983394c6b6 806 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 807 }
edamame22 0:29983394c6b6 808
edamame22 0:29983394c6b6 809 int lwm2m_client_update_register_command(int argc, char *argv[])
edamame22 0:29983394c6b6 810 {
edamame22 0:29983394c6b6 811 int ret_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 812 int32_t lifetime = 0;
edamame22 0:29983394c6b6 813
edamame22 0:29983394c6b6 814 cmd_parameter_int(argc, argv, "--lifetime", &lifetime);
edamame22 0:29983394c6b6 815
edamame22 0:29983394c6b6 816 if(lifetime >= 0) {
edamame22 0:29983394c6b6 817 if(lwm2m_client.test_update_register(lifetime)) {
edamame22 0:29983394c6b6 818 ret_code = CMDLINE_RETCODE_EXCUTING_CONTINUE;
edamame22 0:29983394c6b6 819 }
edamame22 0:29983394c6b6 820 }
edamame22 0:29983394c6b6 821 return ret_code;
edamame22 0:29983394c6b6 822 }
edamame22 0:29983394c6b6 823
edamame22 0:29983394c6b6 824 int lwm2m_client_unregister_command()
edamame22 0:29983394c6b6 825 {
edamame22 0:29983394c6b6 826 if(lwm2m_client.test_unregister()) {
edamame22 0:29983394c6b6 827 return CMDLINE_RETCODE_EXCUTING_CONTINUE;
edamame22 0:29983394c6b6 828 }
edamame22 0:29983394c6b6 829 return CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 830 }
edamame22 0:29983394c6b6 831
edamame22 0:29983394c6b6 832 int lwm2m_client_set_value_command(int argc, char *argv[])
edamame22 0:29983394c6b6 833 {
edamame22 0:29983394c6b6 834 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 835 char *name = 0;
edamame22 0:29983394c6b6 836 int32_t value = 0;
edamame22 0:29983394c6b6 837 int32_t object_instance = 0;
edamame22 0:29983394c6b6 838
edamame22 0:29983394c6b6 839 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 840
edamame22 0:29983394c6b6 841 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 842 cmd_parameter_int(argc, argv, "--value", &value)) {
edamame22 0:29983394c6b6 843 if(lwm2m_client.set_resource_value(name,value,object_instance)) {
edamame22 0:29983394c6b6 844 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 845 }
edamame22 0:29983394c6b6 846 }
edamame22 0:29983394c6b6 847 return return_code;
edamame22 0:29983394c6b6 848 }
edamame22 0:29983394c6b6 849
edamame22 0:29983394c6b6 850 int lwm2m_client_set_value_instance_command(int argc, char *argv[])
edamame22 0:29983394c6b6 851 {
edamame22 0:29983394c6b6 852 int return_code = CMDLINE_RETCODE_INVALID_PARAMETERS;
edamame22 0:29983394c6b6 853 char *name = 0;
edamame22 0:29983394c6b6 854 int32_t value = 0;
edamame22 0:29983394c6b6 855 int32_t object_instance = 0;
edamame22 0:29983394c6b6 856 int32_t resource_instance = 0;
edamame22 0:29983394c6b6 857
edamame22 0:29983394c6b6 858 cmd_parameter_int(argc, argv, "--object_instance", &object_instance);
edamame22 0:29983394c6b6 859 cmd_parameter_int(argc, argv, "--resource_instance", &resource_instance);
edamame22 0:29983394c6b6 860
edamame22 0:29983394c6b6 861 if(cmd_parameter_val(argc, argv, "--name", &name) &&
edamame22 0:29983394c6b6 862 cmd_parameter_int(argc, argv, "--value", &value)) {
edamame22 0:29983394c6b6 863 if(lwm2m_client.set_resource_instance_value(name,value,
edamame22 0:29983394c6b6 864 object_instance,
edamame22 0:29983394c6b6 865 resource_instance)) {
edamame22 0:29983394c6b6 866 return_code = CMDLINE_RETCODE_SUCCESS;
edamame22 0:29983394c6b6 867 }
edamame22 0:29983394c6b6 868 }
edamame22 0:29983394c6b6 869 return return_code;
edamame22 0:29983394c6b6 870 }
edamame22 0:29983394c6b6 871
edamame22 0:29983394c6b6 872 int exit_command(int argc, char *argv[])
edamame22 0:29983394c6b6 873 {
edamame22 0:29983394c6b6 874 exit(1);
edamame22 0:29983394c6b6 875 }