HW layer for the Nucleo board, it only work with old BLE_API

Dependents:   Hello_BLE F446RE-BLE

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
hemddabral
Date:
Tue Oct 07 10:13:02 2014 +0000
Revision:
58:027c65a54097
Parent:
18:6d5f4c638f6a
code cleanup and indentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hemddabral 12:a5d7db4a1e49 1 /* mbed Microcontroller Library
hemddabral 58:027c65a54097 2 * Copyright (c) 2006-2013 ARM Limited
hemddabral 58:027c65a54097 3 *
hemddabral 58:027c65a54097 4 * Licensed under the Apache License, Version 2.0 (the "License");
hemddabral 58:027c65a54097 5 * you may not use this file except in compliance with the License.
hemddabral 58:027c65a54097 6 * You may obtain a copy of the License at
hemddabral 58:027c65a54097 7 *
hemddabral 58:027c65a54097 8 * http://www.apache.org/licenses/LICENSE-2.0
hemddabral 58:027c65a54097 9 *
hemddabral 58:027c65a54097 10 * Unless required by applicable law or agreed to in writing, software
hemddabral 58:027c65a54097 11 * distributed under the License is distributed on an "AS IS" BASIS,
hemddabral 58:027c65a54097 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
hemddabral 58:027c65a54097 13 * See the License for the specific language governing permissions and
hemddabral 58:027c65a54097 14 * limitations under the License.
hemddabral 58:027c65a54097 15 */
hemddabral 12:a5d7db4a1e49 16
hemddabral 12:a5d7db4a1e49 17 #include <Payload.h>
hemddabral 58:027c65a54097 18
hemddabral 58:027c65a54097 19 Payload::Payload() {
hemddabral 58:027c65a54097 20 stringLength = 0;
hemddabral 58:027c65a54097 21 payloadUnitCount = 0;
hemddabral 58:027c65a54097 22 payload = NULL;
hemddabral 58:027c65a54097 23 }
hemddabral 58:027c65a54097 24
hemddabral 58:027c65a54097 25 Payload::Payload(const uint8_t *tokenString, uint8_t string_ength) {
hemddabral 58:027c65a54097 26 // initialize private data members
hemddabral 58:027c65a54097 27 stringLength = string_ength;
hemddabral 58:027c65a54097 28 payloadUnitCount = 0;
hemddabral 58:027c65a54097 29 payload = NULL;
hemddabral 58:027c65a54097 30
hemddabral 58:027c65a54097 31 int index = 0;
hemddabral 58:027c65a54097 32 while( index!=stringLength) {
hemddabral 58:027c65a54097 33 int len=tokenString[index];
hemddabral 58:027c65a54097 34 index=index+1+len;
hemddabral 58:027c65a54097 35 payloadUnitCount++;
hemddabral 12:a5d7db4a1e49 36 }
hemddabral 12:a5d7db4a1e49 37
hemddabral 58:027c65a54097 38 UnitPayload *obj = new UnitPayload[payloadUnitCount];
hemddabral 58:027c65a54097 39 int i=0;
hemddabral 58:027c65a54097 40 int c=0;
hemddabral 58:027c65a54097 41 int j,k;
hemddabral 58:027c65a54097 42
hemddabral 58:027c65a54097 43 while(i<payloadUnitCount)
hemddabral 58:027c65a54097 44 {
hemddabral 58:027c65a54097 45 obj[i].length=tokenString[c];
hemddabral 58:027c65a54097 46 obj[i].id=tokenString[c+1];
hemddabral 12:a5d7db4a1e49 47
hemddabral 58:027c65a54097 48 obj[i].data = new uint8_t[obj[i].length];
hemddabral 58:027c65a54097 49 for(j=c+2,k=0;(j<(c+obj[i].length+1))&&(k<obj[i].length-1);j++,k++)
hemddabral 58:027c65a54097 50 {
hemddabral 58:027c65a54097 51 obj[i].data[k]=tokenString[j];
hemddabral 58:027c65a54097 52
hemddabral 58:027c65a54097 53 }
hemddabral 58:027c65a54097 54
hemddabral 58:027c65a54097 55 c=c+obj[i].length+1;
hemddabral 58:027c65a54097 56 i++;
hemddabral 12:a5d7db4a1e49 57
hemddabral 12:a5d7db4a1e49 58 }
hemddabral 58:027c65a54097 59 payload = obj;
hemddabral 58:027c65a54097 60 }
hemddabral 12:a5d7db4a1e49 61
hemddabral 12:a5d7db4a1e49 62 uint8_t Payload::getPayloadUnitCount() {
hemddabral 12:a5d7db4a1e49 63 return payloadUnitCount;
hemddabral 12:a5d7db4a1e49 64 }
hemddabral 12:a5d7db4a1e49 65
hemddabral 12:a5d7db4a1e49 66 uint8_t Payload::getIDAtIndex(int index) {
hemddabral 12:a5d7db4a1e49 67 return payload[index].get_id();
hemddabral 12:a5d7db4a1e49 68 }
hemddabral 12:a5d7db4a1e49 69
hemddabral 12:a5d7db4a1e49 70 uint8_t Payload::getLengthAtIndex(int index) {
hemddabral 12:a5d7db4a1e49 71 return payload[index].get_length();
hemddabral 12:a5d7db4a1e49 72 }
hemddabral 12:a5d7db4a1e49 73
hemddabral 12:a5d7db4a1e49 74 uint8_t* Payload::getDataAtIndex(int index) {
hemddabral 12:a5d7db4a1e49 75 return payload[index].get_data();
hemddabral 12:a5d7db4a1e49 76 }
hemddabral 12:a5d7db4a1e49 77
hemddabral 12:a5d7db4a1e49 78 int8_t Payload::getInt8AtIndex(int index) {
hemddabral 12:a5d7db4a1e49 79 uint8_t* str = payload[index].get_data();
hemddabral 12:a5d7db4a1e49 80 int8_t value = (int8_t)str[0];
hemddabral 12:a5d7db4a1e49 81 return value;
hemddabral 14:baa7a1464517 82 }
hemddabral 14:baa7a1464517 83
hemddabral 14:baa7a1464517 84 uint16_t Payload::getUint16AtIndex(int index) {
hemddabral 14:baa7a1464517 85 uint16_t* str = (uint16_t*)payload[index].get_data();
hemddabral 14:baa7a1464517 86 uint16_t value = str[0];
hemddabral 14:baa7a1464517 87 return value;
hemddabral 58:027c65a54097 88 }
hemddabral 58:027c65a54097 89
hemddabral 18:6d5f4c638f6a 90 uint8_t* Payload::getSerializedAdDataAtIndex(int index) {
hemddabral 18:6d5f4c638f6a 91 uint8_t length = payload[index].get_length();
hemddabral 18:6d5f4c638f6a 92 uint8_t* data = payload[index].get_data();
hemddabral 18:6d5f4c638f6a 93 uint8_t id = payload[index].get_id();
hemddabral 18:6d5f4c638f6a 94 uint8_t *serializedAdData = new uint8_t[length];
hemddabral 18:6d5f4c638f6a 95
hemddabral 18:6d5f4c638f6a 96 serializedAdData[0] = id;
hemddabral 18:6d5f4c638f6a 97 for(int i=0; i<length-1; i++) {
hemddabral 58:027c65a54097 98 serializedAdData[i+1] = data[i];
hemddabral 58:027c65a54097 99 }
hemddabral 18:6d5f4c638f6a 100 return serializedAdData;
hemddabral 58:027c65a54097 101 }