北海道情報専門学校 ライフハック研究所のエンベデッドUSBチーム松葉和仁により開発されたUSBSecのmbedに使用するソースコード by 和仁
Dependencies: SDFileSystem MusicEngine
Fork of mbed-os-example-ble-LED by
北海道情報専門学校 ライフハック研究所 エンベデッドUSB USBSec用mbedプログラム
松葉和仁
source/INITService.h@37:dcb097426442, 2017-02-08 (annotated)
- 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?
User | Revision | Line number | New 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__ */ |