テスト用

Fork of nRF51822 by Nordic Semiconductor

Committer:
bogdanm
Date:
Wed Mar 26 14:38:17 2014 +0000
Revision:
0:eff01767de02
Child:
1:f84abedbf4fb
Initial import of the nRF51822 code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:eff01767de02 1 /* mbed Microcontroller Library
bogdanm 0:eff01767de02 2 * Copyright (c) 2006-2013 ARM Limited
bogdanm 0:eff01767de02 3 *
bogdanm 0:eff01767de02 4 * Licensed under the Apache License, Version 2.0 (the "License");
bogdanm 0:eff01767de02 5 * you may not use this file except in compliance with the License.
bogdanm 0:eff01767de02 6 * You may obtain a copy of the License at
bogdanm 0:eff01767de02 7 *
bogdanm 0:eff01767de02 8 * http://www.apache.org/licenses/LICENSE-2.0
bogdanm 0:eff01767de02 9 *
bogdanm 0:eff01767de02 10 * Unless required by applicable law or agreed to in writing, software
bogdanm 0:eff01767de02 11 * distributed under the License is distributed on an "AS IS" BASIS,
bogdanm 0:eff01767de02 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
bogdanm 0:eff01767de02 13 * See the License for the specific language governing permissions and
bogdanm 0:eff01767de02 14 * limitations under the License.
bogdanm 0:eff01767de02 15 */
bogdanm 0:eff01767de02 16
bogdanm 0:eff01767de02 17 #ifndef __NRF51822_GATT_SERVER_H__
bogdanm 0:eff01767de02 18 #define __NRF51822_GATT_SERVER_H__
bogdanm 0:eff01767de02 19
bogdanm 0:eff01767de02 20 #include "mbed.h"
bogdanm 0:eff01767de02 21 #include "blecommon.h"
bogdanm 0:eff01767de02 22 #include "ble.h" /* nordic ble */
bogdanm 0:eff01767de02 23 #include "GattService.h"
bogdanm 0:eff01767de02 24 #include "hw/GattServer.h"
bogdanm 0:eff01767de02 25
bogdanm 0:eff01767de02 26 #define BLE_TOTAL_CHARACTERISTICS 10
bogdanm 0:eff01767de02 27
bogdanm 0:eff01767de02 28 /**************************************************************************/
bogdanm 0:eff01767de02 29 /*!
bogdanm 0:eff01767de02 30 \brief
bogdanm 0:eff01767de02 31
bogdanm 0:eff01767de02 32 */
bogdanm 0:eff01767de02 33 /**************************************************************************/
bogdanm 0:eff01767de02 34 class nRF51GattServer : public GattServer
bogdanm 0:eff01767de02 35 {
bogdanm 0:eff01767de02 36 public:
bogdanm 0:eff01767de02 37 static nRF51GattServer& getInstance()
bogdanm 0:eff01767de02 38 {
bogdanm 0:eff01767de02 39 static nRF51GattServer m_instance;
bogdanm 0:eff01767de02 40 return m_instance;
bogdanm 0:eff01767de02 41 }
bogdanm 0:eff01767de02 42
bogdanm 0:eff01767de02 43 /* Functions that must be implemented from GattServer */
bogdanm 0:eff01767de02 44 virtual ble_error_t addService(GattService &);
bogdanm 0:eff01767de02 45 virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t);
bogdanm 0:eff01767de02 46 virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t, bool localOnly = false);
bogdanm 0:eff01767de02 47
bogdanm 0:eff01767de02 48 /* nRF51 Functions */
bogdanm 0:eff01767de02 49 void eventCallback(void);
bogdanm 0:eff01767de02 50 void hwCallback(ble_evt_t * p_ble_evt);
bogdanm 0:eff01767de02 51
bogdanm 0:eff01767de02 52 uint16_t m_connectionHandle; // TODO move to private
bogdanm 0:eff01767de02 53
bogdanm 0:eff01767de02 54 private:
bogdanm 0:eff01767de02 55 GattCharacteristic* p_characteristics[BLE_TOTAL_CHARACTERISTICS];
bogdanm 0:eff01767de02 56 ble_gatts_char_handles_t nrfCharacteristicHandles[BLE_TOTAL_CHARACTERISTICS];
bogdanm 0:eff01767de02 57
bogdanm 0:eff01767de02 58 nRF51GattServer() { serviceCount = 0; characteristicCount = 0; m_connectionHandle = BLE_CONN_HANDLE_INVALID; };
bogdanm 0:eff01767de02 59
bogdanm 0:eff01767de02 60 nRF51GattServer(nRF51GattServer const&);
bogdanm 0:eff01767de02 61 void operator=(nRF51GattServer const&);
bogdanm 0:eff01767de02 62 };
bogdanm 0:eff01767de02 63
bogdanm 0:eff01767de02 64 #endif