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 DataWrapper.cpp
Osamu Nakamura 0:7d720671e6dc 3 * @brief mbed CoAP Endpoint Resource Data Wrapper
Osamu Nakamura 0:7d720671e6dc 4 * @author Doug Anson
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/DataWrapper.h"
Osamu Nakamura 0:7d720671e6dc 25
Osamu Nakamura 0:7d720671e6dc 26 // constructor
Osamu Nakamura 0:7d720671e6dc 27 DataWrapper::DataWrapper(uint8_t *data,int data_length) {
Osamu Nakamura 0:7d720671e6dc 28 this->m_data = data;
Osamu Nakamura 0:7d720671e6dc 29 this->m_data_length = 0;
Osamu Nakamura 0:7d720671e6dc 30 this->m_data_length_max = data_length;
Osamu Nakamura 0:7d720671e6dc 31 this->m_alloced = false;
Osamu Nakamura 0:7d720671e6dc 32 this->reset();
Osamu Nakamura 0:7d720671e6dc 33 }
Osamu Nakamura 0:7d720671e6dc 34
Osamu Nakamura 0:7d720671e6dc 35 // constructor (alloc)
Osamu Nakamura 0:7d720671e6dc 36 DataWrapper::DataWrapper(int data_length) {
Osamu Nakamura 0:7d720671e6dc 37 this->m_data = (uint8_t *)malloc(data_length+1);
Osamu Nakamura 0:7d720671e6dc 38 memset(this->m_data,0,data_length+1);
Osamu Nakamura 0:7d720671e6dc 39 this->m_data_length = 0;
Osamu Nakamura 0:7d720671e6dc 40 this->m_data_length_max = data_length;
Osamu Nakamura 0:7d720671e6dc 41 this->m_alloced = true;
Osamu Nakamura 0:7d720671e6dc 42 }
Osamu Nakamura 0:7d720671e6dc 43
Osamu Nakamura 0:7d720671e6dc 44 // copy constructor
Osamu Nakamura 0:7d720671e6dc 45 DataWrapper::DataWrapper(const DataWrapper &data) {
Osamu Nakamura 0:7d720671e6dc 46 this->m_data = data.m_data;
Osamu Nakamura 0:7d720671e6dc 47 this->m_data_length = data.m_data_length;
Osamu Nakamura 0:7d720671e6dc 48 this->m_data_length_max = data.m_data_length_max;
Osamu Nakamura 0:7d720671e6dc 49 this->m_alloced = data.m_alloced;
Osamu Nakamura 0:7d720671e6dc 50 }
Osamu Nakamura 0:7d720671e6dc 51
Osamu Nakamura 0:7d720671e6dc 52 // destructor
Osamu Nakamura 0:7d720671e6dc 53 DataWrapper::~DataWrapper() {
Osamu Nakamura 0:7d720671e6dc 54 if (this->m_alloced && this->m_data != NULL) free(this->m_data);
Osamu Nakamura 0:7d720671e6dc 55 }
Osamu Nakamura 0:7d720671e6dc 56
Osamu Nakamura 0:7d720671e6dc 57 // wrap
Osamu Nakamura 0:7d720671e6dc 58 void DataWrapper::wrap(uint8_t *data,int data_length) {
Osamu Nakamura 0:7d720671e6dc 59 this->reset();
Osamu Nakamura 0:7d720671e6dc 60 if (data != NULL && data_length > 0) {
Osamu Nakamura 0:7d720671e6dc 61 int length = data_length;
Osamu Nakamura 0:7d720671e6dc 62 if (length > this->m_data_length_max) length = this->m_data_length_max;
Osamu Nakamura 0:7d720671e6dc 63 memcpy(this->m_data,data,length);
Osamu Nakamura 0:7d720671e6dc 64 this->m_data_length = length;
Osamu Nakamura 0:7d720671e6dc 65 }
Osamu Nakamura 0:7d720671e6dc 66 }
Osamu Nakamura 0:7d720671e6dc 67
Osamu Nakamura 0:7d720671e6dc 68 // unwrap
Osamu Nakamura 0:7d720671e6dc 69 void DataWrapper::unwrap(uint8_t *data,int data_length) {
Osamu Nakamura 0:7d720671e6dc 70 this->reset();
Osamu Nakamura 0:7d720671e6dc 71 if (data != NULL && data_length > 0) {
Osamu Nakamura 0:7d720671e6dc 72 int length = data_length;
Osamu Nakamura 0:7d720671e6dc 73 if (length > this->m_data_length_max) length = this->m_data_length_max;
Osamu Nakamura 0:7d720671e6dc 74 memcpy(this->m_data,data,length);
Osamu Nakamura 0:7d720671e6dc 75 this->m_data_length = length;
Osamu Nakamura 0:7d720671e6dc 76 }
Osamu Nakamura 0:7d720671e6dc 77 }
Osamu Nakamura 0:7d720671e6dc 78
Osamu Nakamura 0:7d720671e6dc 79 // reset
Osamu Nakamura 0:7d720671e6dc 80 void DataWrapper::reset() {
Osamu Nakamura 0:7d720671e6dc 81 if (this->m_data != NULL && this->m_data_length_max > 0)
Osamu Nakamura 0:7d720671e6dc 82 memset(this->m_data,0,this->m_data_length_max);
Osamu Nakamura 0:7d720671e6dc 83 this->m_data_length = 0;
Osamu Nakamura 0:7d720671e6dc 84 }
Osamu Nakamura 0:7d720671e6dc 85
Osamu Nakamura 0:7d720671e6dc 86 // set the app key
Osamu Nakamura 0:7d720671e6dc 87 void DataWrapper::setAppKey(uint8_t * /* appkey */,int /* appkey_length */) {
Osamu Nakamura 0:7d720671e6dc 88 // do nothing in the base class
Osamu Nakamura 0:7d720671e6dc 89 ;
Osamu Nakamura 0:7d720671e6dc 90 }
Osamu Nakamura 0:7d720671e6dc 91
Osamu Nakamura 0:7d720671e6dc 92