Kris Scholte Lubberink
/
SSS_Ble
Ble for smart sOlutions
source/BleDeviceCentral.h@10:d845189d146e, 2019-06-14 (annotated)
- Committer:
- kris@kris-X682X
- Date:
- Fri Jun 14 10:24:57 2019 +0200
- Revision:
- 10:d845189d146e
- Parent:
- 9:92d861703f96
- Child:
- 11:d6ed1437c2ee
WS2801 working, fancy lightshows
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kris@kris-X682X | 6:ee9c86f06eae | 1 | // |
kris@kris-X682X | 6:ee9c86f06eae | 2 | // Created by kris on 20-4-19. |
kris@kris-X682X | 6:ee9c86f06eae | 3 | // |
kris@kris-X682X | 6:ee9c86f06eae | 4 | |
kris@kris-X682X | 6:ee9c86f06eae | 5 | #ifndef SSS_BLE_BLEDEVICECENTRAL_H |
kris@kris-X682X | 6:ee9c86f06eae | 6 | #define SSS_BLE_BLEDEVICECENTRAL_H |
kris@kris-X682X | 6:ee9c86f06eae | 7 | |
kris@kris-X682X | 6:ee9c86f06eae | 8 | #include <AdvertisingDataParser.h> |
kris@kris-X682X | 6:ee9c86f06eae | 9 | #include "BleDevice.h" |
kris@kris-X682X | 8:369b80cef5ae | 10 | |
kris@kris-X682X | 8:369b80cef5ae | 11 | |
kris@kris-X682X | 6:ee9c86f06eae | 12 | #include "list" |
kris@kris-X682X | 10:d845189d146e | 13 | #include "MyStripSingleton.h" |
kris@kris-X682X | 10:d845189d146e | 14 | |
kris@kris-X682X | 6:ee9c86f06eae | 15 | class BleDeviceCentral : public BleDevice { |
kris@kris-X682X | 6:ee9c86f06eae | 16 | public: |
kris@kris-X682X | 6:ee9c86f06eae | 17 | BleDeviceCentral(BLE &ble, events::EventQueue &event_queue) |
kris@kris-X682X | 9:92d861703f96 | 18 | : BleDevice(ble, event_queue) { |
kris@kris-X682X | 9:92d861703f96 | 19 | |
kris@kris-X682X | 9:92d861703f96 | 20 | } |
kris@kris-X682X | 6:ee9c86f06eae | 21 | std::list<ble::address_t::byte_array_t> addresses ; |
kris@kris-X682X | 6:ee9c86f06eae | 22 | |
kris@kris-X682X | 6:ee9c86f06eae | 23 | virtual void start() |
kris@kris-X682X | 6:ee9c86f06eae | 24 | { |
kris@kris-X682X | 8:369b80cef5ae | 25 | printf("[CENTRAL]\t Scan started\r\n"); |
kris@kris-X682X | 10:d845189d146e | 26 | MyStripSingleton::getInstance()->resetCrawl(); |
kris@kris-X682X | 6:ee9c86f06eae | 27 | ble::ScanParameters params; |
kris@kris-X682X | 6:ee9c86f06eae | 28 | ble_error_t error = _ble.gap().setScanParameters(params); |
kris@kris-X682X | 6:ee9c86f06eae | 29 | |
kris@kris-X682X | 6:ee9c86f06eae | 30 | if (error) { |
kris@kris-X682X | 6:ee9c86f06eae | 31 | print_error(error, "Error in Gap::startScan %d\r\n"); |
kris@kris-X682X | 6:ee9c86f06eae | 32 | return; |
kris@kris-X682X | 6:ee9c86f06eae | 33 | } |
kris@kris-X682X | 6:ee9c86f06eae | 34 | // |
kris@kris-X682X | 6:ee9c86f06eae | 35 | // /* start scanning, results will be handled by onAdvertisingReport */ |
kris@kris-X682X | 6:ee9c86f06eae | 36 | error = _ble.gap().startScan(); |
kris@kris-X682X | 6:ee9c86f06eae | 37 | |
kris@kris-X682X | 6:ee9c86f06eae | 38 | if (error) { |
kris@kris-X682X | 6:ee9c86f06eae | 39 | print_error(error, "Error in Gap::startScan %d\r\n"); |
kris@kris-X682X | 6:ee9c86f06eae | 40 | return; |
kris@kris-X682X | 6:ee9c86f06eae | 41 | } |
kris@kris-X682X | 8:369b80cef5ae | 42 | |
kris@kris-X682X | 6:ee9c86f06eae | 43 | } |
kris@kris-X682X | 6:ee9c86f06eae | 44 | virtual void stop(){ |
kris@kris-X682X | 6:ee9c86f06eae | 45 | printf("[CENTRAL]\t Stopping \r\n"); |
kris@kris-X682X | 10:d845189d146e | 46 | MyStripSingleton::getInstance()->resetColor(); |
kris@kris-X682X | 8:369b80cef5ae | 47 | |
kris@kris-X682X | 6:ee9c86f06eae | 48 | addresses.clear(); |
kris@kris-X682X | 6:ee9c86f06eae | 49 | _ble.gap().stopScan(); |
kris@kris-X682X | 6:ee9c86f06eae | 50 | if (_ble.hasInitialized()) { |
kris@kris-X682X | 6:ee9c86f06eae | 51 | _ble.shutdown(); |
kris@kris-X682X | 6:ee9c86f06eae | 52 | } |
kris@kris-X682X | 6:ee9c86f06eae | 53 | } |
kris@kris-X682X | 6:ee9c86f06eae | 54 | |
kris@kris-X682X | 8:369b80cef5ae | 55 | public: |
kris@kris-X682X | 6:ee9c86f06eae | 56 | /** Look at scan payload to find a peer device and connect to it */ |
kris@kris-X682X | 10:d845189d146e | 57 | virtual void onAdvertisingReport(const ble::AdvertisingReportEvent &event); |
kris@kris-X682X | 6:ee9c86f06eae | 58 | }; |
kris@kris-X682X | 6:ee9c86f06eae | 59 | |
kris@kris-X682X | 6:ee9c86f06eae | 60 | |
kris@kris-X682X | 6:ee9c86f06eae | 61 | #endif //SSS_BLE_BLEDEVICECENTRAL_H |