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 * Minimal configuration for using mbedtls as part of mbed-client
edamame22 0:29983394c6b6 3 *
edamame22 0:29983394c6b6 4 * NOTE! This is an optimized, minimal configuration for mbed Client.
edamame22 0:29983394c6b6 5 * We know it works with mbed Client but if you want to add more
edamame22 0:29983394c6b6 6 * services/communications to the application yourself - please ensure
edamame22 0:29983394c6b6 7 * you update this configuration accordingly. The default configuration
edamame22 0:29983394c6b6 8 * can be found from mbedTLS Github:
edamame22 0:29983394c6b6 9 *
edamame22 0:29983394c6b6 10 * https://github.com/ARMmbed/mbedtls/blob/development/include/mbedtls/config.h
edamame22 0:29983394c6b6 11 *
edamame22 0:29983394c6b6 12 *
edamame22 0:29983394c6b6 13 * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved
edamame22 0:29983394c6b6 14 * SPDX-License-Identifier: Apache-2.0
edamame22 0:29983394c6b6 15 *
edamame22 0:29983394c6b6 16 * Licensed under the Apache License, Version 2.0 (the "License"); you may
edamame22 0:29983394c6b6 17 * not use this file except in compliance with the License.
edamame22 0:29983394c6b6 18 * You may obtain a copy of the License at
edamame22 0:29983394c6b6 19 *
edamame22 0:29983394c6b6 20 * http://www.apache.org/licenses/LICENSE-2.0
edamame22 0:29983394c6b6 21 *
edamame22 0:29983394c6b6 22 * Unless required by applicable law or agreed to in writing, software
edamame22 0:29983394c6b6 23 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
edamame22 0:29983394c6b6 24 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
edamame22 0:29983394c6b6 25 * See the License for the specific language governing permissions and
edamame22 0:29983394c6b6 26 * limitations under the License.
edamame22 0:29983394c6b6 27 *
edamame22 0:29983394c6b6 28 * This file is part of mbed TLS (https://tls.mbed.org)
edamame22 0:29983394c6b6 29 */
edamame22 0:29983394c6b6 30
edamame22 0:29983394c6b6 31
edamame22 0:29983394c6b6 32 #ifndef MBEDTLS_CUSTOM_CONFIG_H
edamame22 0:29983394c6b6 33 #define MBEDTLS_CUSTOM_CONFIG_H
edamame22 0:29983394c6b6 34
edamame22 0:29983394c6b6 35 /* System support */
edamame22 0:29983394c6b6 36 #define MBEDTLS_HAVE_ASM
edamame22 0:29983394c6b6 37
edamame22 0:29983394c6b6 38 /* mbed TLS feature support */
edamame22 0:29983394c6b6 39 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
edamame22 0:29983394c6b6 40 #define MBEDTLS_ECP_NIST_OPTIM
edamame22 0:29983394c6b6 41 #define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
edamame22 0:29983394c6b6 42 #define MBEDTLS_SSL_PROTO_TLS1_2
edamame22 0:29983394c6b6 43 #define MBEDTLS_SSL_PROTO_DTLS
edamame22 0:29983394c6b6 44 #define MBEDTLS_SSL_DTLS_ANTI_REPLAY
edamame22 0:29983394c6b6 45 #define MBEDTLS_SSL_DTLS_HELLO_VERIFY
edamame22 0:29983394c6b6 46 #define MBEDTLS_SSL_EXPORT_KEYS
edamame22 0:29983394c6b6 47
edamame22 0:29983394c6b6 48 /* mbed TLS modules */
edamame22 0:29983394c6b6 49 #define MBEDTLS_AES_C
edamame22 0:29983394c6b6 50 #define MBEDTLS_ASN1_PARSE_C
edamame22 0:29983394c6b6 51 #define MBEDTLS_ASN1_WRITE_C
edamame22 0:29983394c6b6 52 #define MBEDTLS_BIGNUM_C
edamame22 0:29983394c6b6 53 #define MBEDTLS_CIPHER_C
edamame22 0:29983394c6b6 54 #define MBEDTLS_CTR_DRBG_C
edamame22 0:29983394c6b6 55 #define MBEDTLS_ECP_C
edamame22 0:29983394c6b6 56 #define MBEDTLS_ENTROPY_C
edamame22 0:29983394c6b6 57 #define MBEDTLS_MD_C
edamame22 0:29983394c6b6 58 #define MBEDTLS_OID_C
edamame22 0:29983394c6b6 59 #define MBEDTLS_PK_C
edamame22 0:29983394c6b6 60 #define MBEDTLS_PK_PARSE_C
edamame22 0:29983394c6b6 61 #define MBEDTLS_SHA256_C
edamame22 0:29983394c6b6 62 #define MBEDTLS_SSL_COOKIE_C
edamame22 0:29983394c6b6 63 #define MBEDTLS_SSL_CLI_C
edamame22 0:29983394c6b6 64 #define MBEDTLS_SSL_SRV_C
edamame22 0:29983394c6b6 65 #define MBEDTLS_SSL_TLS_C
edamame22 0:29983394c6b6 66
edamame22 0:29983394c6b6 67 // XXX mbedclient needs these: mbedtls_x509_crt_free, mbedtls_x509_crt_init, mbedtls_x509_crt_parse
edamame22 0:29983394c6b6 68 #define MBEDTLS_X509_USE_C
edamame22 0:29983394c6b6 69 #define MBEDTLS_X509_CRT_PARSE_C
edamame22 0:29983394c6b6 70
edamame22 0:29983394c6b6 71 // XXX: clean these up!!
edamame22 0:29983394c6b6 72 #define MBEDTLS_SHA512_C
edamame22 0:29983394c6b6 73 #define MBEDTLS_ECDH_C
edamame22 0:29983394c6b6 74 #define MBEDTLS_GCM_C
edamame22 0:29983394c6b6 75
edamame22 0:29983394c6b6 76 #define MBEDTLS_ECDH_C
edamame22 0:29983394c6b6 77 #define MBEDTLS_ECDSA_C
edamame22 0:29983394c6b6 78 #define MBEDTLS_X509_CRT_PARSE_C
edamame22 0:29983394c6b6 79
edamame22 0:29983394c6b6 80 // Remove RSA, save 20KB at total
edamame22 0:29983394c6b6 81 #undef MBEDTLS_RSA_C
edamame22 0:29983394c6b6 82 #undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
edamame22 0:29983394c6b6 83
edamame22 0:29983394c6b6 84 // Remove error messages, save 10KB of ROM
edamame22 0:29983394c6b6 85 #undef MBEDTLS_ERROR_C
edamame22 0:29983394c6b6 86
edamame22 0:29983394c6b6 87 // Remove selftesting and save 11KB of ROM
edamame22 0:29983394c6b6 88 #undef MBEDTLS_SELF_TEST
edamame22 0:29983394c6b6 89
edamame22 0:29983394c6b6 90 // Reduces ROM size by 30 kB
edamame22 0:29983394c6b6 91 #undef MBEDTLS_ERROR_STRERROR_DUMMY
edamame22 0:29983394c6b6 92 #undef MBEDTLS_VERSION_FEATURES
edamame22 0:29983394c6b6 93 #undef MBEDTLS_DEBUG_C
edamame22 0:29983394c6b6 94
edamame22 0:29983394c6b6 95 // needed for parsing the certificates
edamame22 0:29983394c6b6 96 #define MBEDTLS_PEM_PARSE_C
edamame22 0:29983394c6b6 97 // dep of the previous
edamame22 0:29983394c6b6 98 #define MBEDTLS_BASE64_C
edamame22 0:29983394c6b6 99
edamame22 0:29983394c6b6 100 // Reduce IO buffer to save RAM, default is 16KB
edamame22 0:29983394c6b6 101 #define MBEDTLS_SSL_MAX_CONTENT_LEN 2048
edamame22 0:29983394c6b6 102
edamame22 0:29983394c6b6 103 // define to save 8KB RAM at the expense of ROM
edamame22 0:29983394c6b6 104 #undef MBEDTLS_AES_ROM_TABLES
edamame22 0:29983394c6b6 105
edamame22 0:29983394c6b6 106 // Save ROM and a few bytes of RAM by specifying our own ciphersuite list
edamame22 0:29983394c6b6 107 #define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
edamame22 0:29983394c6b6 108
edamame22 0:29983394c6b6 109 #include "mbedtls/check_config.h"
edamame22 0:29983394c6b6 110
edamame22 0:29983394c6b6 111 #endif /* MBEDTLS_CUSTOM_CONFIG_H */