北海道情報専門学校 ライフハック研究所のエンベデッドUSBチーム松葉和仁により開発されたUSBSecのmbedに使用するソースコード by 和仁

Dependencies:   SDFileSystem MusicEngine

Fork of mbed-os-example-ble-LED by mbed-os-examples

北海道情報専門学校 ライフハック研究所 エンベデッドUSB USBSec用mbedプログラム

松葉和仁

Committer:
kazu0o2
Date:
Wed Feb 08 03:00:32 2017 +0000
Revision:
37:dcb097426442
Parent:
14:be4e43ce1578
term debug console

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kazu0o2 14:be4e43ce1578 1 #ifndef __BLE_INIT_SERVICE_H__
kazu0o2 14:be4e43ce1578 2 #define __BLE_INIT_SERVICE_H__
kazu0o2 14:be4e43ce1578 3
kazu0o2 14:be4e43ce1578 4 class INITService {
kazu0o2 14:be4e43ce1578 5 public:
kazu0o2 14:be4e43ce1578 6 const static uint16_t INIT_SERVICE_UUID = 0xA001;
kazu0o2 14:be4e43ce1578 7 const static uint16_t SET_STATE_CHARACTERISTIC_UUID = 0xA011;
kazu0o2 14:be4e43ce1578 8 const static uint16_t GET_STATE_CHARACTERISTIC_UUID = 0xA012;
kazu0o2 14:be4e43ce1578 9
kazu0o2 14:be4e43ce1578 10 INITService(BLEDevice &_ble, char initialValueForSETCharacteristic[], char initialValueForGETCharacteristic) :
kazu0o2 14:be4e43ce1578 11 ble(_ble), setState(SET_STATE_CHARACTERISTIC_UUID, &initialValueForSETCharacteristic[0]),//配列の最初のアドレスを指定する
kazu0o2 14:be4e43ce1578 12 getState(GET_STATE_CHARACTERISTIC_UUID, &initialValueForGETCharacteristic)
kazu0o2 14:be4e43ce1578 13 {
kazu0o2 14:be4e43ce1578 14 GattCharacteristic *charTable[] = {&setState,&getState};
kazu0o2 14:be4e43ce1578 15 GattService initService(INIT_SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *));
kazu0o2 14:be4e43ce1578 16 ble.addService(initService);
kazu0o2 14:be4e43ce1578 17 }
kazu0o2 14:be4e43ce1578 18
kazu0o2 14:be4e43ce1578 19 GattAttribute::Handle_t getValueHandle() const
kazu0o2 14:be4e43ce1578 20 {
kazu0o2 14:be4e43ce1578 21 return setState.getValueHandle();
kazu0o2 14:be4e43ce1578 22 }
kazu0o2 14:be4e43ce1578 23
kazu0o2 14:be4e43ce1578 24 GattAttribute::Handle_t getGETValueHandle() const
kazu0o2 14:be4e43ce1578 25 {
kazu0o2 14:be4e43ce1578 26 return getState.getValueHandle();
kazu0o2 14:be4e43ce1578 27 }
kazu0o2 14:be4e43ce1578 28
kazu0o2 14:be4e43ce1578 29 /**
kazu0o2 14:be4e43ce1578 30 *サービスの値を更新する
kazu0o2 14:be4e43ce1578 31 *http://flogics.com/wp/2015/03/mbed-%E3%81%A7-ble-%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%BF%E3%82%8B2/
kazu0o2 14:be4e43ce1578 32 *http://bril-tech.blogspot.jp/2014/06/bluetoothsmartmbed-4.html
kazu0o2 14:be4e43ce1578 33 */
kazu0o2 14:be4e43ce1578 34 void stateUpdate(char val) {
kazu0o2 14:be4e43ce1578 35 ble.updateCharacteristicValue(getGETValueHandle(),
kazu0o2 14:be4e43ce1578 36 (uint8_t *) &val,
kazu0o2 14:be4e43ce1578 37 sizeof(val));
kazu0o2 14:be4e43ce1578 38 }
kazu0o2 14:be4e43ce1578 39
kazu0o2 14:be4e43ce1578 40 private:
kazu0o2 14:be4e43ce1578 41 BLEDevice &ble;
kazu0o2 14:be4e43ce1578 42 WriteOnlyArrayGattCharacteristic<char,6> setState;
kazu0o2 14:be4e43ce1578 43 ReadOnlyGattCharacteristic<char> getState;
kazu0o2 14:be4e43ce1578 44 };
kazu0o2 14:be4e43ce1578 45
kazu0o2 14:be4e43ce1578 46 #endif /* #ifndef __BLE_INIT_SERVICE_H__ */