AndroidのBLEラジコンプロポアプリ「BLEPropo」と接続し、RCサーボとDCモータを制御するプログラムです。 BLE Nanoで動作を確認しています。 BLEPropo → https://github.com/lipoyang/BLEPropo

Dependencies:   BLE_API mbed

BLEを使ったAndroid用ラジコンプロポアプリ「BLEPropo」に対応するBLE Nano用ファームウェアです。
BLEPropoは、GitHubにて公開中。
https://github.com/lipoyang/BLEPropo
/media/uploads/lipoyang/blepropo_ui.png
ラジコンは、mbed HRM1017とRCサーボやDCモータを組み合わせて作ります。
/media/uploads/lipoyang/ministeer3.jpg
回路図
/media/uploads/lipoyang/ministeer3.pdf

Committer:
lipoyang
Date:
Sat Mar 14 12:02:48 2015 +0000
Revision:
5:7f89fca19a9e
-convert nRF51822 library to a folder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lipoyang 5:7f89fca19a9e 1 /**************************************************************************/
lipoyang 5:7f89fca19a9e 2 /*!
lipoyang 5:7f89fca19a9e 3 @file ble_error.h
lipoyang 5:7f89fca19a9e 4 @author hathach (tinyusb.org)
lipoyang 5:7f89fca19a9e 5
lipoyang 5:7f89fca19a9e 6 @section LICENSE
lipoyang 5:7f89fca19a9e 7
lipoyang 5:7f89fca19a9e 8 Software License Agreement (BSD License)
lipoyang 5:7f89fca19a9e 9
lipoyang 5:7f89fca19a9e 10 Copyright (c) 2013, K. Townsend (microBuilder.eu)
lipoyang 5:7f89fca19a9e 11 All rights reserved.
lipoyang 5:7f89fca19a9e 12
lipoyang 5:7f89fca19a9e 13 Redistribution and use in source and binary forms, with or without
lipoyang 5:7f89fca19a9e 14 modification, are permitted provided that the following conditions are met:
lipoyang 5:7f89fca19a9e 15 1. Redistributions of source code must retain the above copyright
lipoyang 5:7f89fca19a9e 16 notice, this list of conditions and the following disclaimer.
lipoyang 5:7f89fca19a9e 17 2. Redistributions in binary form must reproduce the above copyright
lipoyang 5:7f89fca19a9e 18 notice, this list of conditions and the following disclaimer in the
lipoyang 5:7f89fca19a9e 19 documentation and/or other materials provided with the distribution.
lipoyang 5:7f89fca19a9e 20 3. Neither the name of the copyright holders nor the
lipoyang 5:7f89fca19a9e 21 names of its contributors may be used to endorse or promote products
lipoyang 5:7f89fca19a9e 22 derived from this software without specific prior written permission.
lipoyang 5:7f89fca19a9e 23
lipoyang 5:7f89fca19a9e 24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
lipoyang 5:7f89fca19a9e 25 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
lipoyang 5:7f89fca19a9e 26 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
lipoyang 5:7f89fca19a9e 27 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
lipoyang 5:7f89fca19a9e 28 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
lipoyang 5:7f89fca19a9e 29 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
lipoyang 5:7f89fca19a9e 30 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
lipoyang 5:7f89fca19a9e 31 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
lipoyang 5:7f89fca19a9e 32 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
lipoyang 5:7f89fca19a9e 33 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
lipoyang 5:7f89fca19a9e 34 */
lipoyang 5:7f89fca19a9e 35 /**************************************************************************/
lipoyang 5:7f89fca19a9e 36
lipoyang 5:7f89fca19a9e 37 /** \file
lipoyang 5:7f89fca19a9e 38 * \brief Error Header
lipoyang 5:7f89fca19a9e 39 *
lipoyang 5:7f89fca19a9e 40 * \note TBD
lipoyang 5:7f89fca19a9e 41 */
lipoyang 5:7f89fca19a9e 42
lipoyang 5:7f89fca19a9e 43 /** \ingroup Group_Common
lipoyang 5:7f89fca19a9e 44 * \defgroup Group_Error Error Codes
lipoyang 5:7f89fca19a9e 45 * @{
lipoyang 5:7f89fca19a9e 46 */
lipoyang 5:7f89fca19a9e 47
lipoyang 5:7f89fca19a9e 48 #ifndef _BLE_ERROR_H_
lipoyang 5:7f89fca19a9e 49 #define _BLE_ERROR_H_
lipoyang 5:7f89fca19a9e 50
lipoyang 5:7f89fca19a9e 51 #include "projectconfig.h"
lipoyang 5:7f89fca19a9e 52
lipoyang 5:7f89fca19a9e 53 #ifdef __cplusplus
lipoyang 5:7f89fca19a9e 54 extern "C" {
lipoyang 5:7f89fca19a9e 55 #endif
lipoyang 5:7f89fca19a9e 56
lipoyang 5:7f89fca19a9e 57 typedef enum
lipoyang 5:7f89fca19a9e 58 {
lipoyang 5:7f89fca19a9e 59 /*=======================================================================
lipoyang 5:7f89fca19a9e 60 NORDIC GLOBAL ERRORS 0x0000 .. 0x00FF
lipoyang 5:7f89fca19a9e 61 -----------------------------------------------------------------------
lipoyang 5:7f89fca19a9e 62 Errors mapped from nrf_error.h
lipoyang 5:7f89fca19a9e 63 -----------------------------------------------------------------------*/
lipoyang 5:7f89fca19a9e 64 ERROR_NONE = 0x0000 , ///< Successful command
lipoyang 5:7f89fca19a9e 65 ERROR_SVC_HANDLER_MISSING = 0x0001 , ///< SVC handler is missing
lipoyang 5:7f89fca19a9e 66 ERROR_SOFTDEVICE_NOT_ENABLED = 0x0002 , ///< SoftDevice has not been enabled
lipoyang 5:7f89fca19a9e 67 ERROR_INTERNAL = 0x0003 , ///< Internal Error
lipoyang 5:7f89fca19a9e 68 ERROR_NO_MEM = 0x0004 , ///< No Memory for operation
lipoyang 5:7f89fca19a9e 69 ERROR_NOT_FOUND = 0x0005 , ///< Not found
lipoyang 5:7f89fca19a9e 70 ERROR_NOT_SUPPORTED = 0x0006 , ///< Not supported
lipoyang 5:7f89fca19a9e 71 ERROR_INVALID_PARAM = 0x0007 , ///< Invalid Parameter
lipoyang 5:7f89fca19a9e 72 ERROR_INVALID_STATE = 0x0008 , ///< Invalid state, operation disallowed in this state
lipoyang 5:7f89fca19a9e 73 ERROR_INVALID_LENGTH = 0x0009 , ///< Invalid Length
lipoyang 5:7f89fca19a9e 74 ERROR_INVALID_FLAGS = 0x000A , ///< Invalid Flags
lipoyang 5:7f89fca19a9e 75 ERROR_INVALID_DATA = 0x000B , ///< Invalid Data
lipoyang 5:7f89fca19a9e 76 ERROR_DATA_SIZE = 0x000C , ///< Data size exceeds limit
lipoyang 5:7f89fca19a9e 77 ERROR_TIMEOUT = 0x000D , ///< Operation timed out
lipoyang 5:7f89fca19a9e 78 ERROR_NULL = 0x000E , ///< Null Pointer
lipoyang 5:7f89fca19a9e 79 ERROR_FORBIDDEN = 0x000F , ///< Forbidden Operation
lipoyang 5:7f89fca19a9e 80 ERROR_INVALID_ADDR = 0x0010 , ///< Bad Memory Address
lipoyang 5:7f89fca19a9e 81 ERROR_BUSY = 0x0011 , ///< Busy
lipoyang 5:7f89fca19a9e 82 /*=======================================================================*/
lipoyang 5:7f89fca19a9e 83
lipoyang 5:7f89fca19a9e 84 ERROR_INVALIDPARAMETER = 0x0100 , /**< An invalid parameter value was provided */
lipoyang 5:7f89fca19a9e 85 ERROR_I2C_XFER_FAILED = 0x0101 , /**< an failed attempt to make I2C transfer */
lipoyang 5:7f89fca19a9e 86
lipoyang 5:7f89fca19a9e 87 /*=======================================================================
lipoyang 5:7f89fca19a9e 88 SIMPLE BINARY PROTOCOL ERRORS 0x0120 .. 0x013F
lipoyang 5:7f89fca19a9e 89 -----------------------------------------------------------------------
lipoyang 5:7f89fca19a9e 90 Errors relating to the simple binary protocol (/src//protocol)
lipoyang 5:7f89fca19a9e 91 -----------------------------------------------------------------------*/
lipoyang 5:7f89fca19a9e 92 ERROR_PROT_INVALIDMSGTYPE = 0x121, /**< Unexpected msg type encountered */
lipoyang 5:7f89fca19a9e 93 ERROR_PROT_INVALIDCOMMANDID = 0x122, /**< Unknown or out of range command ID */
lipoyang 5:7f89fca19a9e 94 ERROR_PROT_INVALIDPAYLOAD = 0x123, /**< Message payload has a problem (invalid len, etc.) */
lipoyang 5:7f89fca19a9e 95 /*=======================================================================*/
lipoyang 5:7f89fca19a9e 96
lipoyang 5:7f89fca19a9e 97 //------------- based on Nordic SDM nrf_error_sdm.h -------------//
lipoyang 5:7f89fca19a9e 98 ERROR_SDM_LFCLK_SOURCE_UNKNOWN = 0x1000 , ///< Unknown lfclk source
lipoyang 5:7f89fca19a9e 99 ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION = 0x1001 , ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts)
lipoyang 5:7f89fca19a9e 100 ERROR_SDM_INCORRECT_CLENR0 = 0x1002 , ///< Incorrect CLENR0 (can be caused by erronous SoftDevice flashing)
lipoyang 5:7f89fca19a9e 101
lipoyang 5:7f89fca19a9e 102 //------------- based on Nordic SOC nrf_error_soc.h -------------//
lipoyang 5:7f89fca19a9e 103 /* Mutex Errors */
lipoyang 5:7f89fca19a9e 104 ERROR_SOC_MUTEX_ALREADY_TAKEN = 0x2000 , ///< Mutex already taken
lipoyang 5:7f89fca19a9e 105
lipoyang 5:7f89fca19a9e 106 /* NVIC errors */
lipoyang 5:7f89fca19a9e 107 ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE = 0x2001 , ///< NVIC interrupt not available
lipoyang 5:7f89fca19a9e 108 ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED = 0x2002 , ///< NVIC interrupt priority not allowed
lipoyang 5:7f89fca19a9e 109 ERROR_SOC_NVIC_SHOULD_NOT_RETURN = 0x2003 , ///< NVIC should not return
lipoyang 5:7f89fca19a9e 110
lipoyang 5:7f89fca19a9e 111 /* Power errors */
lipoyang 5:7f89fca19a9e 112 ERROR_SOC_POWER_MODE_UNKNOWN = 0x2004 , ///< Power mode unknown
lipoyang 5:7f89fca19a9e 113 ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN = 0x2005 , ///< Power POF threshold unknown
lipoyang 5:7f89fca19a9e 114 ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN = 0x2006 , ///< Power off should not return
lipoyang 5:7f89fca19a9e 115
lipoyang 5:7f89fca19a9e 116 /* Rand errors */
lipoyang 5:7f89fca19a9e 117 ERROR_SOC_RAND_NOT_ENOUGH_VALUES = 0x2007 , ///< RAND not enough values
lipoyang 5:7f89fca19a9e 118
lipoyang 5:7f89fca19a9e 119 /* PPI errors */
lipoyang 5:7f89fca19a9e 120 ERROR_SOC_PPI_INVALID_CHANNEL = 0x2008 , ///< Invalid PPI Channel
lipoyang 5:7f89fca19a9e 121 ERROR_SOC_PPI_INVALID_GROUP = 0x2009 , ///< Invalid PPI Group
lipoyang 5:7f89fca19a9e 122
lipoyang 5:7f89fca19a9e 123 //------------- based on Nordic STK (ble) ble_err.h -------------//
lipoyang 5:7f89fca19a9e 124 ERROR_BLE_INVALID_CONN_HANDLE = 0x3001 , /**< Invalid connection handle. */
lipoyang 5:7f89fca19a9e 125 ERROR_BLE_INVALID_ATTR_HANDLE = 0x3002 , /**< Invalid attribute handle. */
lipoyang 5:7f89fca19a9e 126 ERROR_BLE_NO_TX_BUFFERS = 0x3003 , /**< Buffer capacity exceeded. */
lipoyang 5:7f89fca19a9e 127
lipoyang 5:7f89fca19a9e 128 // L2CAP
lipoyang 5:7f89fca19a9e 129 ERROR_BLE_L2CAP_CID_IN_USE = 0x3100 , /**< CID already in use. */
lipoyang 5:7f89fca19a9e 130
lipoyang 5:7f89fca19a9e 131 // GAP
lipoyang 5:7f89fca19a9e 132 ERROR_BLE_GAP_UUID_LIST_MISMATCH = 0x3200 , /**< UUID list does not contain an integral number of UUIDs. */
lipoyang 5:7f89fca19a9e 133 ERROR_BLE_GAP_DISCOVERABLE_WITH_WHITELIST = 0x3201 , /**< Use of Whitelist not permitted with discoverable advertising. */
lipoyang 5:7f89fca19a9e 134 ERROR_BLE_GAP_INVALID_BLE_ADDR = 0x3202 , /**< The upper two bits of the address do not correspond to the specified address type. */
lipoyang 5:7f89fca19a9e 135
lipoyang 5:7f89fca19a9e 136 // GATTC
lipoyang 5:7f89fca19a9e 137 ERROR_BLE_GATTC_PROC_NOT_PERMITTED = 0x3300 ,
lipoyang 5:7f89fca19a9e 138
lipoyang 5:7f89fca19a9e 139 // GATTS
lipoyang 5:7f89fca19a9e 140 ERROR_BLEGATTS_INVALID_ATTR_TYPE = 0x3400 , /**< Invalid attribute type. */
lipoyang 5:7f89fca19a9e 141 ERROR_BLEGATTS_SYS_ATTR_MISSING = 0x3401 , /**< System Attributes missing. */
lipoyang 5:7f89fca19a9e 142
lipoyang 5:7f89fca19a9e 143 }error_t;
lipoyang 5:7f89fca19a9e 144
lipoyang 5:7f89fca19a9e 145 #ifdef __cplusplus
lipoyang 5:7f89fca19a9e 146 }
lipoyang 5:7f89fca19a9e 147 #endif
lipoyang 5:7f89fca19a9e 148
lipoyang 5:7f89fca19a9e 149 #endif /* _BLE_ERROR_H_ */
lipoyang 5:7f89fca19a9e 150
lipoyang 5:7f89fca19a9e 151 /** @} */