This is the sample program that can see the decode result of barcode data on Watson IoT.

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

Committer:
Osamu Nakamura
Date:
Thu Nov 10 20:23:55 2016 +0900
Revision:
1:67f8b5cfde75
Parent:
0:7d720671e6dc
Revised the initial value of /888/0/7700

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Osamu Nakamura 0:7d720671e6dc 1 /**
Osamu Nakamura 0:7d720671e6dc 2 * @file StaticResource.h
Osamu Nakamura 0:7d720671e6dc 3 * @brief mbed CoAP Endpoint Static Resource class
Osamu Nakamura 0:7d720671e6dc 4 * @author Doug Anson/Chris Paola
Osamu Nakamura 0:7d720671e6dc 5 * @version 1.0
Osamu Nakamura 0:7d720671e6dc 6 * @see
Osamu Nakamura 0:7d720671e6dc 7 *
Osamu Nakamura 0:7d720671e6dc 8 * Copyright (c) 2014
Osamu Nakamura 0:7d720671e6dc 9 *
Osamu Nakamura 0:7d720671e6dc 10 * Licensed under the Apache License, Version 2.0 (the "License");
Osamu Nakamura 0:7d720671e6dc 11 * you may not use this file except in compliance with the License.
Osamu Nakamura 0:7d720671e6dc 12 * You may obtain a copy of the License at
Osamu Nakamura 0:7d720671e6dc 13 *
Osamu Nakamura 0:7d720671e6dc 14 * http://www.apache.org/licenses/LICENSE-2.0
Osamu Nakamura 0:7d720671e6dc 15 *
Osamu Nakamura 0:7d720671e6dc 16 * Unless required by applicable law or agreed to in writing, software
Osamu Nakamura 0:7d720671e6dc 17 * distributed under the License is distributed on an "AS IS" BASIS,
Osamu Nakamura 0:7d720671e6dc 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Osamu Nakamura 0:7d720671e6dc 19 * See the License for the specific language governing permissions and
Osamu Nakamura 0:7d720671e6dc 20 * limitations under the License.
Osamu Nakamura 0:7d720671e6dc 21 */
Osamu Nakamura 0:7d720671e6dc 22
Osamu Nakamura 0:7d720671e6dc 23 // Class support
Osamu Nakamura 0:7d720671e6dc 24 #include "mbed-connector-interface/StaticResource.h"
Osamu Nakamura 0:7d720671e6dc 25
Osamu Nakamura 0:7d720671e6dc 26 // Endpoint
Osamu Nakamura 0:7d720671e6dc 27 #include "mbed-connector-interface/ConnectorEndpoint.h"
Osamu Nakamura 0:7d720671e6dc 28
Osamu Nakamura 0:7d720671e6dc 29 // Constructor
Osamu Nakamura 0:7d720671e6dc 30 StaticResource::StaticResource(const Logger *logger,const char *obj_name,const char *res_name, const char *value) : Resource<string>(logger,string(obj_name),string(res_name),string(value)), m_data_wrapper()
Osamu Nakamura 0:7d720671e6dc 31 {
Osamu Nakamura 0:7d720671e6dc 32 this->m_data_wrapper = NULL;
Osamu Nakamura 0:7d720671e6dc 33 this->m_res = NULL;
Osamu Nakamura 0:7d720671e6dc 34 }
Osamu Nakamura 0:7d720671e6dc 35
Osamu Nakamura 0:7d720671e6dc 36 // Constructor
Osamu Nakamura 0:7d720671e6dc 37 StaticResource::StaticResource(const Logger *logger,const char *obj_name,const char *res_name,const string value) : Resource<string>(logger,string(obj_name),string(res_name),string(value))
Osamu Nakamura 0:7d720671e6dc 38 {
Osamu Nakamura 0:7d720671e6dc 39 this->m_data_wrapper = NULL;
Osamu Nakamura 0:7d720671e6dc 40 this->m_res = NULL;
Osamu Nakamura 0:7d720671e6dc 41 }
Osamu Nakamura 0:7d720671e6dc 42
Osamu Nakamura 0:7d720671e6dc 43 // Constructor with buffer lengths
Osamu Nakamura 0:7d720671e6dc 44 StaticResource::StaticResource(const Logger *logger,const string obj_name,const string res_name,const string value) : Resource<string>(logger,string(obj_name),string(res_name),string(value))
Osamu Nakamura 0:7d720671e6dc 45 {
Osamu Nakamura 0:7d720671e6dc 46 this->m_data_wrapper = NULL;
Osamu Nakamura 0:7d720671e6dc 47 this->m_res = NULL;
Osamu Nakamura 0:7d720671e6dc 48 }
Osamu Nakamura 0:7d720671e6dc 49
Osamu Nakamura 0:7d720671e6dc 50 // Copy constructor
Osamu Nakamura 0:7d720671e6dc 51 StaticResource::StaticResource(const StaticResource &resource) : Resource<string>((const Resource<string> &)resource)
Osamu Nakamura 0:7d720671e6dc 52 {
Osamu Nakamura 0:7d720671e6dc 53 this->m_data_wrapper = resource.m_data_wrapper;
Osamu Nakamura 0:7d720671e6dc 54 this->m_res = resource.m_res;
Osamu Nakamura 0:7d720671e6dc 55 }
Osamu Nakamura 0:7d720671e6dc 56
Osamu Nakamura 0:7d720671e6dc 57 // Destructor
Osamu Nakamura 0:7d720671e6dc 58 StaticResource::~StaticResource() {
Osamu Nakamura 0:7d720671e6dc 59 }
Osamu Nakamura 0:7d720671e6dc 60
Osamu Nakamura 0:7d720671e6dc 61 // bind CoAP Resource..
Osamu Nakamura 0:7d720671e6dc 62 void StaticResource::bind(void *ep) {
Osamu Nakamura 0:7d720671e6dc 63 // Static Resources nailed to STRING type...
Osamu Nakamura 0:7d720671e6dc 64 int type = (int)M2MResourceInstance::STRING;
Osamu Nakamura 0:7d720671e6dc 65
Osamu Nakamura 0:7d720671e6dc 66 // check our Endpoint instance...
Osamu Nakamura 0:7d720671e6dc 67 if (ep != NULL) {
Osamu Nakamura 0:7d720671e6dc 68 // cast
Osamu Nakamura 0:7d720671e6dc 69 Connector::Endpoint *endpoint = (Connector::Endpoint *)ep;
Osamu Nakamura 0:7d720671e6dc 70
Osamu Nakamura 0:7d720671e6dc 71 // get our ObjectInstanceManager
Osamu Nakamura 0:7d720671e6dc 72 ObjectInstanceManager *oim = endpoint->getObjectInstanceManager();
Osamu Nakamura 0:7d720671e6dc 73
Osamu Nakamura 0:7d720671e6dc 74 if (this->getDataWrapper() != NULL) {
Osamu Nakamura 0:7d720671e6dc 75 // wrap the data...
Osamu Nakamura 0:7d720671e6dc 76 this->getDataWrapper()->wrap((uint8_t *)this->getValue().c_str(),(int)this->getValue().size());
Osamu Nakamura 0:7d720671e6dc 77
Osamu Nakamura 0:7d720671e6dc 78 // Create our Resource
Osamu Nakamura 0:7d720671e6dc 79 this->m_res = (M2MResource *)oim->createStaticResourceInstance((char *)this->getObjName().c_str(),(char *)this->getResName().c_str(),(char *)"StaticResource",(int)type,(void *)this->getDataWrapper()->get(),(int)this->getDataWrapper()->length());
Osamu Nakamura 0:7d720671e6dc 80 if (this->m_res != NULL) {
Osamu Nakamura 0:7d720671e6dc 81 // Record our Instance Number
Osamu Nakamura 0:7d720671e6dc 82 this->setInstanceNumber(oim->getLastCreatedInstanceNumber());
Osamu Nakamura 0:7d720671e6dc 83
Osamu Nakamura 0:7d720671e6dc 84 // DEBUG
Osamu Nakamura 0:7d720671e6dc 85 this->logger()->logging("StaticResource: [%s] value: [%s] bound",this->getFullName().c_str(),this->getDataWrapper()->get());
Osamu Nakamura 0:7d720671e6dc 86 }
Osamu Nakamura 0:7d720671e6dc 87 }
Osamu Nakamura 0:7d720671e6dc 88 else {
Osamu Nakamura 0:7d720671e6dc 89 // Create our Resource
Osamu Nakamura 0:7d720671e6dc 90 this->m_res = (M2MResource *)oim->createStaticResourceInstance((char *)this->getObjName().c_str(),(char *)this->getResName().c_str(),(char *)"StaticResource",(int)type,(void *)this->getValue().c_str(),(int)this->getValue().size());
Osamu Nakamura 0:7d720671e6dc 91 if (this->m_res != NULL) {
Osamu Nakamura 0:7d720671e6dc 92 // Record our Instance Number
Osamu Nakamura 0:7d720671e6dc 93 this->setInstanceNumber(oim->getLastCreatedInstanceNumber());
Osamu Nakamura 0:7d720671e6dc 94
Osamu Nakamura 0:7d720671e6dc 95 // DEBUG
Osamu Nakamura 0:7d720671e6dc 96 this->logger()->logging("StaticResource: [%s] value: [%s] bound",this->getFullName().c_str(),this->getValue().c_str());
Osamu Nakamura 0:7d720671e6dc 97 }
Osamu Nakamura 0:7d720671e6dc 98 }
Osamu Nakamura 0:7d720671e6dc 99 }
Osamu Nakamura 0:7d720671e6dc 100 else {
Osamu Nakamura 0:7d720671e6dc 101 // no instance pointer to our endpoint
Osamu Nakamura 0:7d720671e6dc 102 this->logger()->logging("%s: NULL endpoint instance pointer in bind() request...",this->getFullName().c_str());
Osamu Nakamura 0:7d720671e6dc 103 }
Osamu Nakamura 0:7d720671e6dc 104 }