Sample program showing how to connect GR-PEACH into Watson IoT through mbed Connector and Watson's Connector Bridge

Dependencies:   AsciiFont DisplayApp GR-PEACH_video LCD_shield_config LWIPBP3595Interface_STA_for_mbed-os USBDevice

Overview

This sample program shows how to connect GR-PEACH into Watson IoT through mbed Connector and Watson's Connector Bridge. Note that this program is derived from https://github.com/ARMmbed/mbed-ethernet-sample-techcon2016.

In this program, at first, the barcode data input from camera is decoded on GR-PEACH using ZXing which is an open-source, multi-format 1D/2D barcode image processing library. Then, the decoded string is sent to Watson IoT via mbed Device Connector and Watson's Connector Bridge. At last, the delivered string is confirmed via NodeRED flow.

Required hardware

Application setup

  1. Select the connection type. For details, please refer to the following wiki:
    https://developer.mbed.org/teams/Renesas/code/mbed-os_Watson-IoT_ZXing_sample/wiki/Connection-type.
  2. Set the client credentials. For details, please refer to the following wiki:
    https://developer.mbed.org/teams/Renesas/code/mbed-os_Watson-IoT_ZXing_sample/wiki/Client-credentials.
  3. Change Ethernet settings. For details, please refer to the following wiki:
    https://developer.mbed.org/teams/Renesas/code/mbed-os_Watson-IoT_ZXing_sample/wiki/Ethernet-settings.
  4. Change Wifi settings. For details, please refer to the following wiki:
    https://developer.mbed.org/teams/Renesas/code/mbed-os_Watson-IoT_ZXing_sample/wiki/Wifi-settings.

Building this sample program

  1. Import this sample program onto mbed Compiler.
  2. Configure this sample program in accordance with Application setup.
  3. Compile the example on mbed Compiler and download the resultant binary file.
  4. Plug the Ethernet cable into GR-PEACH if you are using Ethernet mode. /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen7.png
  5. Plug the micro-USB cable into the OpenSDA port with lies on the next to the RESET button.
  6. Copy the binary previously downloaded to your PC to GR-PEACH to flash this sample program. When the copy is successfully completed, the board is ready to work.
  7. Press the RESET button on the board to run this sample program.
  8. For verification, please refer to the following wiki:
    https://developer.mbed.org/teams/Renesas/code/mbed-os_Watson-IoT_ZXing_sample/wiki/Monitoring-the-application.

Application resources

This sample program exposes two resources listed below:

  1. /311/0/5850 : Trigger to toggle LED on GR-PEACH (PUT). When "1" is sent to this resource by PUT method, LED should be turned off. Otherwise, LED should be turned on.
  2. /888/0/7700: Decode result of barcode data input from camera (GET)

Setup of Watson IoT

  1. You should create Watson IoT Instance by the following procedure:
    • Login IBM Bluemix from https://console.ng.bluemix.net/ and login it.
    • Select Services as follows: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen6.png
    • Select Internet of Things" as follows: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen7_1.png
    • Press Get Started as follows: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen8.png
    • Configure Watson IoT Instance
      • Leave unbound /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen9.png
      • Select the Free plan, then click Create /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen10.png

  2. You should create Watson IoT Application Credentials Once you successfully create Watson IoT Instance, you should see the following Watson IoT dashboard: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen11.png
    • On dashboard, launch the Connect your devices dashboard /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen12.png
    • Click APPS /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen13.png
    • Click Generate API Key /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen14_1.png
    • Record the API Key and Authenticatoin Token. Then click Generate after adding a comment /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen15.png Note that these two values will be needed in the later step.
  3. Watson IoT NodeRED Application should be created in accordance with the following procedure:
    • Go back to your Bluemix Dashboard: https://console.ng.bluemix.net
    • Click Create Application /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen16.png
    • Select Node-RED Starter /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen17.png
    • Enter a unique App name and Click Create /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen18.png
    • Application will Stage after a few minutes
    • Application will report app is running when the staging has completed
  4. Watson NodeRED Application should be binded to Watson IoT instance
    • You can now see the dashboard below: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen19.png
    • Click Connections. Then, press Connect Existing /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen20.png
    • Click on Watson IoT Instance badge. Then, press Connect /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen21.png
    • NodeRED application will restage. This will take a while. Please wait for Your app is running state /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen22.png /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen23.png
  5. You should acquire mbed Device Connector DOMAIN value
    • Go to the mbed Device Connector Dashboard: https://connector.mbed.com and log in /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen41.png
    • Select Access Key in order to create a new token /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen42.png
    • Click CREATE NEW ACCESS KEY and enter a unique name. Then, push ADD bution /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen43.png
    • an API token is generated. Need to save the generated string for later steps /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen44.png
  1. You should configure Watson IoT ARM mbed Connector Bridge
    • Go back to the Watson IoT Dashboard and select Extensions /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen24.png
    • Press Add Extension /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen25.png
    • Add ARM mbed Connector /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen26_1.png
    • Setup the bridge /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen27.png
    • Enter your Connector API Token to Access Key and MBED_DOMAIN to Domain Id, respectively. Then, click Check Connection /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen28.png
    • If the connection is successfully established, you can see Connection Established. Then, press Done /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen29.png
  2. NodeRED Flow Example should be imported
    • Open NODEFLOW_GR-PEACH.txt
    • Navigate to the URL that you recorded earlier for your Watson IoT NodeRED Application (i.e. http://<app name>.mybluemix.net) and Select Go to your NodeRED flow editor /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen30.png
    • Select menu, Import and Clipboard /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen31.png
    • Paste the entire contents of JSON code described in NODEFLOW_GR-PEACH.txt and click Import /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen32.png
  3. Watson IoT Application Node Flow should be configured
    • Double-click input node and link them to your Watson IoT instance. /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen33.png
    • Click on the edit button /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen34.png
    • First enter arbitrary name. Then, Watson API Key and Watson Auth Token previously acquired. Finally, press Add to save /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen35.png
    • Enter MBED_ENDPOINT_NAME in security.h as Device ID. Then, press Done to save /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen36.png
    • Double-click output node /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen37.png
    • Edit API Key and Device Id in the same manner as that for input node
    • Click LED OFF and LED ON node and replace MBED_ENDPOINT_NAME_GOES_HERE with MBED_ENDPOINT_NAME as shown below: /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen38.png
    • Click Deproy to deploy NodeRED application /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen39.png
  4. Invoke sample program
    • Press the reset button on GR-PEACH
    • The decode result of barcode data should be shown in debug window /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen40_1.png
    • Also, you can toggle LED by clicking Turn LED OFF and Turn LED ON injection node /media/uploads/HinoNaka/mbed-os_watson-iot_zxing_sample_screen40_2.png
Committer:
Osamu Nakamura
Date:
Thu Nov 24 13:59:16 2016 +0900
Revision:
0:ad834d403a8c
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Osamu Nakamura 0:ad834d403a8c 1 /**
Osamu Nakamura 0:ad834d403a8c 2 * @file DeviceManager.h
Osamu Nakamura 0:ad834d403a8c 3 * @brief mbed CoAP Endpoint Device Management class
Osamu Nakamura 0:ad834d403a8c 4 * @author Doug Anson
Osamu Nakamura 0:ad834d403a8c 5 * @version 1.0
Osamu Nakamura 0:ad834d403a8c 6 * @see
Osamu Nakamura 0:ad834d403a8c 7 *
Osamu Nakamura 0:ad834d403a8c 8 * Copyright (c) 2016
Osamu Nakamura 0:ad834d403a8c 9 *
Osamu Nakamura 0:ad834d403a8c 10 * Licensed under the Apache License, Version 2.0 (the "License");
Osamu Nakamura 0:ad834d403a8c 11 * you may not use this file except in compliance with the License.
Osamu Nakamura 0:ad834d403a8c 12 * You may obtain a copy of the License at
Osamu Nakamura 0:ad834d403a8c 13 *
Osamu Nakamura 0:ad834d403a8c 14 * http://www.apache.org/licenses/LICENSE-2.0
Osamu Nakamura 0:ad834d403a8c 15 *
Osamu Nakamura 0:ad834d403a8c 16 * Unless required by applicable law or agreed to in writing, software
Osamu Nakamura 0:ad834d403a8c 17 * distributed under the License is distributed on an "AS IS" BASIS,
Osamu Nakamura 0:ad834d403a8c 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Osamu Nakamura 0:ad834d403a8c 19 * See the License for the specific language governing permissions and
Osamu Nakamura 0:ad834d403a8c 20 * limitations under the License.
Osamu Nakamura 0:ad834d403a8c 21 */
Osamu Nakamura 0:ad834d403a8c 22
Osamu Nakamura 0:ad834d403a8c 23 #ifndef __DEVICE_MANAGER_H__
Osamu Nakamura 0:ad834d403a8c 24 #define __DEVICE_MANAGER_H__
Osamu Nakamura 0:ad834d403a8c 25
Osamu Nakamura 0:ad834d403a8c 26 // mbed-client support
Osamu Nakamura 0:ad834d403a8c 27 #include "mbed-client/m2mconstants.h"
Osamu Nakamura 0:ad834d403a8c 28 #include "mbed-client/m2mdevice.h"
Osamu Nakamura 0:ad834d403a8c 29 #include "mbed-client/m2mfirmware.h"
Osamu Nakamura 0:ad834d403a8c 30
Osamu Nakamura 0:ad834d403a8c 31 // Action Resource: Device DeRegistration
Osamu Nakamura 0:ad834d403a8c 32 #include "mbed-connector-interface/DeviceDeRegisterResource.h"
Osamu Nakamura 0:ad834d403a8c 33
Osamu Nakamura 0:ad834d403a8c 34 // LWM2M Device Info # of Device Resources we support
Osamu Nakamura 0:ad834d403a8c 35 #define NUM_DEVICE_RESOURCES 9
Osamu Nakamura 0:ad834d403a8c 36
Osamu Nakamura 0:ad834d403a8c 37 // LWM2M Firmware Resources supported
Osamu Nakamura 0:ad834d403a8c 38 #define NUM_FIRMWARE_RESOURCES 7
Osamu Nakamura 0:ad834d403a8c 39
Osamu Nakamura 0:ad834d403a8c 40 // LWM2M DeRegistration Object ID
Osamu Nakamura 0:ad834d403a8c 41 #define LWM2M_DREGISTER_OBJ_ID "86"
Osamu Nakamura 0:ad834d403a8c 42
Osamu Nakamura 0:ad834d403a8c 43 // LWM2M Device DeRegistration Resource ID
Osamu Nakamura 0:ad834d403a8c 44 #define LWM2M_DEV_DEREGISTER_ID "1"
Osamu Nakamura 0:ad834d403a8c 45
Osamu Nakamura 0:ad834d403a8c 46 /** DeviceManager is the endpoint management class
Osamu Nakamura 0:ad834d403a8c 47 */
Osamu Nakamura 0:ad834d403a8c 48 class DeviceManager
Osamu Nakamura 0:ad834d403a8c 49 {
Osamu Nakamura 0:ad834d403a8c 50 public:
Osamu Nakamura 0:ad834d403a8c 51 // Optional Firmware Resource (indices)
Osamu Nakamura 0:ad834d403a8c 52 typedef enum {
Osamu Nakamura 0:ad834d403a8c 53 PackageName = 0,
Osamu Nakamura 0:ad834d403a8c 54 PackageVersion = 1,
Osamu Nakamura 0:ad834d403a8c 55 Update = 2,
Osamu Nakamura 0:ad834d403a8c 56 Package = 3,
Osamu Nakamura 0:ad834d403a8c 57 PackageURI = 4,
Osamu Nakamura 0:ad834d403a8c 58 State = 5,
Osamu Nakamura 0:ad834d403a8c 59 UpdateResult = 6
Osamu Nakamura 0:ad834d403a8c 60 } FirmwareResources;
Osamu Nakamura 0:ad834d403a8c 61
Osamu Nakamura 0:ad834d403a8c 62 // Optional Device Resource (indices)
Osamu Nakamura 0:ad834d403a8c 63 typedef enum {
Osamu Nakamura 0:ad834d403a8c 64 Manufacturer = 0,
Osamu Nakamura 0:ad834d403a8c 65 DeviceType = 1,
Osamu Nakamura 0:ad834d403a8c 66 ModelNumber = 2,
Osamu Nakamura 0:ad834d403a8c 67 SerialNumber = 3,
Osamu Nakamura 0:ad834d403a8c 68 FirmwareVersion = 4,
Osamu Nakamura 0:ad834d403a8c 69 HardwareVersion = 5,
Osamu Nakamura 0:ad834d403a8c 70 SoftwareVersion = 6,
Osamu Nakamura 0:ad834d403a8c 71 Reboot = 7,
Osamu Nakamura 0:ad834d403a8c 72 FactoryReset = 8,
Osamu Nakamura 0:ad834d403a8c 73 DeRegistration = 9
Osamu Nakamura 0:ad834d403a8c 74 } DeviceResources;
Osamu Nakamura 0:ad834d403a8c 75
Osamu Nakamura 0:ad834d403a8c 76 /**
Osamu Nakamura 0:ad834d403a8c 77 Default constructor
Osamu Nakamura 0:ad834d403a8c 78 @param logger input logger instance
Osamu Nakamura 0:ad834d403a8c 79 @param dm_responder input data management responder/processor
Osamu Nakamura 0:ad834d403a8c 80 @param mfg input endpoint manufacturer
Osamu Nakamura 0:ad834d403a8c 81 @param dev_type input the endpoint type
Osamu Nakamura 0:ad834d403a8c 82 @param model input the model of the endpoint
Osamu Nakamura 0:ad834d403a8c 83 @param serial input the serial of the endpoint
Osamu Nakamura 0:ad834d403a8c 84 @param fw_vers input the current firmware version
Osamu Nakamura 0:ad834d403a8c 85 @param hw_vers input the current hardware version
Osamu Nakamura 0:ad834d403a8c 86 @param sw_vers input the current software version
Osamu Nakamura 0:ad834d403a8c 87 */
Osamu Nakamura 0:ad834d403a8c 88 DeviceManager(const Logger *logger,const void *dm_responder=NULL,const char *mfg="ARM",const char *dev_type="mbed",const char *model="ARM" ,const char *serial="000000",const char *fw_ver="0.0.0",const char *hw_ver="0.0.0",const char *sw_ver="0.0.0");
Osamu Nakamura 0:ad834d403a8c 89
Osamu Nakamura 0:ad834d403a8c 90 /**
Osamu Nakamura 0:ad834d403a8c 91 Copy constructor
Osamu Nakamura 0:ad834d403a8c 92 @param resource input the DeviceManager that is to be deep copied
Osamu Nakamura 0:ad834d403a8c 93 */
Osamu Nakamura 0:ad834d403a8c 94 DeviceManager(const DeviceManager &manager);
Osamu Nakamura 0:ad834d403a8c 95
Osamu Nakamura 0:ad834d403a8c 96 /**
Osamu Nakamura 0:ad834d403a8c 97 Destructor
Osamu Nakamura 0:ad834d403a8c 98 */
Osamu Nakamura 0:ad834d403a8c 99 virtual ~DeviceManager();
Osamu Nakamura 0:ad834d403a8c 100
Osamu Nakamura 0:ad834d403a8c 101 /**
Osamu Nakamura 0:ad834d403a8c 102 install the device manager into the endpoint
Osamu Nakamura 0:ad834d403a8c 103 @param endpoint input the endpoint instance
Osamu Nakamura 0:ad834d403a8c 104 @param config input the endpoint configuration instance
Osamu Nakamura 0:ad834d403a8c 105 */
Osamu Nakamura 0:ad834d403a8c 106 void install(const void *endpoint,const void *config);
Osamu Nakamura 0:ad834d403a8c 107
Osamu Nakamura 0:ad834d403a8c 108 /**
Osamu Nakamura 0:ad834d403a8c 109 get the DeviceManagementResponder
Osamu Nakamura 0:ad834d403a8c 110 @return the DeviceManagementResponder or NULL
Osamu Nakamura 0:ad834d403a8c 111 */
Osamu Nakamura 0:ad834d403a8c 112 void *getResponder();
Osamu Nakamura 0:ad834d403a8c 113
Osamu Nakamura 0:ad834d403a8c 114 // LWM2M Device: Reboot Action Handler
Osamu Nakamura 0:ad834d403a8c 115 void process_reboot_action(void *args);
Osamu Nakamura 0:ad834d403a8c 116
Osamu Nakamura 0:ad834d403a8c 117 // LWM2M Device: Reset Action Handler
Osamu Nakamura 0:ad834d403a8c 118 void process_reset_action(void *args);
Osamu Nakamura 0:ad834d403a8c 119
Osamu Nakamura 0:ad834d403a8c 120 // LWM2M Firmware: Update
Osamu Nakamura 0:ad834d403a8c 121 void process_firmware_update_action(void *args);
Osamu Nakamura 0:ad834d403a8c 122
Osamu Nakamura 0:ad834d403a8c 123 // bind our device resources
Osamu Nakamura 0:ad834d403a8c 124 void bind();
Osamu Nakamura 0:ad834d403a8c 125
Osamu Nakamura 0:ad834d403a8c 126 // Get a specific Firmware Resource
Osamu Nakamura 0:ad834d403a8c 127 M2MResource *getFirmwareResource(FirmwareResources res);
Osamu Nakamura 0:ad834d403a8c 128
Osamu Nakamura 0:ad834d403a8c 129 // Get a specific Device Resource
Osamu Nakamura 0:ad834d403a8c 130 M2MResource *getDeviceResource(DeviceResources res);
Osamu Nakamura 0:ad834d403a8c 131
Osamu Nakamura 0:ad834d403a8c 132 // Get the Device Object
Osamu Nakamura 0:ad834d403a8c 133 M2MDevice *getDeviceObject();
Osamu Nakamura 0:ad834d403a8c 134
Osamu Nakamura 0:ad834d403a8c 135 // Get the Firmware Object
Osamu Nakamura 0:ad834d403a8c 136 M2MFirmware *getFirmwareObject();
Osamu Nakamura 0:ad834d403a8c 137
Osamu Nakamura 0:ad834d403a8c 138 // Process updated values
Osamu Nakamura 0:ad834d403a8c 139 void process(M2MBase *base, M2MBase::BaseType type);
Osamu Nakamura 0:ad834d403a8c 140
Osamu Nakamura 0:ad834d403a8c 141 private:
Osamu Nakamura 0:ad834d403a8c 142 Logger *m_logger;
Osamu Nakamura 0:ad834d403a8c 143 void *m_endpoint;
Osamu Nakamura 0:ad834d403a8c 144 void *m_config;
Osamu Nakamura 0:ad834d403a8c 145 char *m_dev_type;
Osamu Nakamura 0:ad834d403a8c 146 void *m_dm_responder;
Osamu Nakamura 0:ad834d403a8c 147 char *m_mfg;
Osamu Nakamura 0:ad834d403a8c 148 char *m_model;
Osamu Nakamura 0:ad834d403a8c 149 char *m_serial;
Osamu Nakamura 0:ad834d403a8c 150 char *m_fw_vers;
Osamu Nakamura 0:ad834d403a8c 151 char *m_hw_vers;
Osamu Nakamura 0:ad834d403a8c 152 char *m_sw_vers;
Osamu Nakamura 0:ad834d403a8c 153
Osamu Nakamura 0:ad834d403a8c 154 // LWM2M Firmware Data
Osamu Nakamura 0:ad834d403a8c 155 char *m_fw_manifest;
Osamu Nakamura 0:ad834d403a8c 156 uint32_t m_fw_manifest_length;
Osamu Nakamura 0:ad834d403a8c 157 void *m_fw_image;
Osamu Nakamura 0:ad834d403a8c 158 uint32_t m_fw_image_length;
Osamu Nakamura 0:ad834d403a8c 159
Osamu Nakamura 0:ad834d403a8c 160 // LWM2M Device Info Resources
Osamu Nakamura 0:ad834d403a8c 161 M2MDevice *m_device;
Osamu Nakamura 0:ad834d403a8c 162 M2MResource *m_dev_res[NUM_DEVICE_RESOURCES];
Osamu Nakamura 0:ad834d403a8c 163
Osamu Nakamura 0:ad834d403a8c 164 // LWM2M Firmware Resources
Osamu Nakamura 0:ad834d403a8c 165 M2MFirmware *m_firmware;
Osamu Nakamura 0:ad834d403a8c 166 M2MResource *m_fw_res[NUM_FIRMWARE_RESOURCES];
Osamu Nakamura 0:ad834d403a8c 167
Osamu Nakamura 0:ad834d403a8c 168 // DeRegistation Resource
Osamu Nakamura 0:ad834d403a8c 169 DeviceDeRegisterResource *m_deregister_resource;
Osamu Nakamura 0:ad834d403a8c 170
Osamu Nakamura 0:ad834d403a8c 171 // Memory utilities
Osamu Nakamura 0:ad834d403a8c 172 char *saveManifest(uint8_t *value,uint32_t length);
Osamu Nakamura 0:ad834d403a8c 173 void *saveImage(void *image,uint32_t image_length);
Osamu Nakamura 0:ad834d403a8c 174
Osamu Nakamura 0:ad834d403a8c 175 // Bind our Device Resources to our Device Object
Osamu Nakamura 0:ad834d403a8c 176 void bindDeviceResources();
Osamu Nakamura 0:ad834d403a8c 177
Osamu Nakamura 0:ad834d403a8c 178 // Bind our Firmware Resources to our Firmware Object
Osamu Nakamura 0:ad834d403a8c 179 void bindFirmwareResources();
Osamu Nakamura 0:ad834d403a8c 180
Osamu Nakamura 0:ad834d403a8c 181 // Bind our mbed Cloud Resource
Osamu Nakamura 0:ad834d403a8c 182 void bindMBEDCloudResources();
Osamu Nakamura 0:ad834d403a8c 183
Osamu Nakamura 0:ad834d403a8c 184 // Get the Device Reboot Resource from the Device Object
Osamu Nakamura 0:ad834d403a8c 185 M2MResource *getDeviceRebootResource();
Osamu Nakamura 0:ad834d403a8c 186
Osamu Nakamura 0:ad834d403a8c 187 // Get the Firmware Update Resource from the Firmware Object
Osamu Nakamura 0:ad834d403a8c 188 M2MResource *getFirmwareUpdateResource();
Osamu Nakamura 0:ad834d403a8c 189
Osamu Nakamura 0:ad834d403a8c 190 // Get the Firmware Package Resource from the Firmware Object
Osamu Nakamura 0:ad834d403a8c 191 M2MResource *getFirmwarePackageResource();
Osamu Nakamura 0:ad834d403a8c 192
Osamu Nakamura 0:ad834d403a8c 193 // Get the Firmware Package URI Resource from the Firmware Object
Osamu Nakamura 0:ad834d403a8c 194 M2MResource *getFirmwarePackageURIResource();
Osamu Nakamura 0:ad834d403a8c 195
Osamu Nakamura 0:ad834d403a8c 196 // Get the Firmware State Resource from the Firmware Object
Osamu Nakamura 0:ad834d403a8c 197 M2MResource *getFirmwareStateResource();
Osamu Nakamura 0:ad834d403a8c 198
Osamu Nakamura 0:ad834d403a8c 199 // Get the Firmware UpdateResult Resource from the Firmware Object
Osamu Nakamura 0:ad834d403a8c 200 M2MResource *getFirmwareUpdateResultResource();
Osamu Nakamura 0:ad834d403a8c 201
Osamu Nakamura 0:ad834d403a8c 202 // Get a specific resource from a given resource object
Osamu Nakamura 0:ad834d403a8c 203 M2MResource *getResourceFromObject(M2MObject *obj,int instanceID,int resID);
Osamu Nakamura 0:ad834d403a8c 204 };
Osamu Nakamura 0:ad834d403a8c 205
Osamu Nakamura 0:ad834d403a8c 206 #endif // __DEVICE_MANAGER_H__