Skip to content

Commit

Permalink
for NimBLE-Arduino
Browse files Browse the repository at this point in the history
  • Loading branch information
wakwak-koba committed Oct 6, 2020
1 parent 138f67a commit c90d623
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
8 changes: 2 additions & 6 deletions BleConnectionStatus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@
BleConnectionStatus::BleConnectionStatus(void) {
}

void BleConnectionStatus::onConnect(BLEServer* pServer)
void BleConnectionStatus::onConnect(NimBLEServer* pServer)
{
this->connected = true;
BLE2902* desc = (BLE2902*)this->inputMouse->getDescriptorByUUID(BLEUUID((uint16_t)0x2902));
desc->setNotifications(true);
}

void BleConnectionStatus::onDisconnect(BLEServer* pServer)
void BleConnectionStatus::onDisconnect(NimBLEServer* pServer)
{
this->connected = false;
BLE2902* desc = (BLE2902*)this->inputMouse->getDescriptorByUUID(BLEUUID((uint16_t)0x2902));
desc->setNotifications(false);
}
13 changes: 6 additions & 7 deletions BleConnectionStatus.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@
#include "sdkconfig.h"
#if defined(CONFIG_BT_ENABLED)

#include <BLEServer.h>
#include "BLE2902.h"
#include "BLECharacteristic.h"
#include <NimBLEServer.h>
#include "NimBLECharacteristic.h"

class BleConnectionStatus : public BLEServerCallbacks
class BleConnectionStatus : public NimBLEServerCallbacks
{
public:
BleConnectionStatus(void);
bool connected = false;
void onConnect(BLEServer* pServer);
void onDisconnect(BLEServer* pServer);
BLECharacteristic* inputMouse;
void onConnect(NimBLEServer* pServer);
void onDisconnect(NimBLEServer* pServer);
NimBLECharacteristic* inputMouse;
};

#endif // CONFIG_BT_ENABLED
Expand Down
22 changes: 11 additions & 11 deletions BleMouse.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#include "BLE2902.h"
#include "BLEHIDDevice.h"
#include <NimBLEDevice.h>
#include <NimBLEUtils.h>
#include <NimBLEServer.h>
#include "NimBLEHIDDevice.h"
#include "HIDTypes.h"
#include "HIDKeyboardTypes.h"
#include <driver/adc.h>
Expand All @@ -16,7 +15,7 @@
#define LOG_TAG ""
#else
#include "esp_log.h"
static const char* LOG_TAG = "BLEDevice";
static const char* LOG_TAG = "NimBLEDevice";
#endif

static const uint8_t _hidReportDescriptor[] = {
Expand Down Expand Up @@ -141,11 +140,12 @@ void BleMouse::setBatteryLevel(uint8_t level) {

void BleMouse::taskServer(void* pvParameter) {
BleMouse* bleMouseInstance = (BleMouse *) pvParameter; //static_cast<BleMouse *>(pvParameter);
BLEDevice::init(bleMouseInstance->deviceName);
BLEServer *pServer = BLEDevice::createServer();
NimBLEDevice::init(bleMouseInstance->deviceName);

NimBLEServer *pServer = NimBLEDevice::createServer();
pServer->setCallbacks(bleMouseInstance->connectionStatus);

bleMouseInstance->hid = new BLEHIDDevice(pServer);
bleMouseInstance->hid = new NimBLEHIDDevice(pServer);
bleMouseInstance->inputMouse = bleMouseInstance->hid->inputReport(1); // <-- input REPORTID from report map
bleMouseInstance->connectionStatus->inputMouse = bleMouseInstance->inputMouse;

Expand All @@ -154,7 +154,7 @@ void BleMouse::taskServer(void* pvParameter) {
bleMouseInstance->hid->pnp(0x02, 0xe502, 0xa111, 0x0210);
bleMouseInstance->hid->hidInfo(0x00,0x02);

BLESecurity *pSecurity = new BLESecurity();
BLESecurity *pSecurity = new NimBLESecurity();

pSecurity->setAuthenticationMode(ESP_LE_AUTH_BOND);

Expand All @@ -163,7 +163,7 @@ void BleMouse::taskServer(void* pvParameter) {

bleMouseInstance->onStarted(pServer);

BLEAdvertising *pAdvertising = pServer->getAdvertising();
NimBLEAdvertising *pAdvertising = pServer->getAdvertising();
pAdvertising->setAppearance(HID_MOUSE);
pAdvertising->addServiceUUID(bleMouseInstance->hid->hidService()->getUUID());
pAdvertising->start();
Expand Down
12 changes: 6 additions & 6 deletions BleMouse.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#if defined(CONFIG_BT_ENABLED)

#include "BleConnectionStatus.h"
#include "BLEHIDDevice.h"
#include "BLECharacteristic.h"
#include "NimBLEHIDDevice.h"
#include "NimBLECharacteristic.h"

#define MOUSE_LEFT 1
#define MOUSE_RIGHT 2
Expand All @@ -18,13 +18,13 @@ class BleMouse {
private:
uint8_t _buttons;
BleConnectionStatus* connectionStatus;
BLEHIDDevice* hid;
BLECharacteristic* inputMouse;
NimBLEHIDDevice* hid;
NimBLECharacteristic* inputMouse;
void buttons(uint8_t b);
void rawAction(uint8_t msg[], char msgSize);
static void taskServer(void* pvParameter);
public:
BleMouse(std::string deviceName = "ESP32 Bluetooth Mouse", std::string deviceManufacturer = "Espressif", uint8_t batteryLevel = 100);
BleMouse(std::string deviceName = "ESP32-Mouse", std::string deviceManufacturer = "Espressif", uint8_t batteryLevel = 100);
void begin(void);
void end(void);
void click(uint8_t b = MOUSE_LEFT);
Expand All @@ -38,7 +38,7 @@ class BleMouse {
std::string deviceManufacturer;
std::string deviceName;
protected:
virtual void onStarted(BLEServer *pServer) { };
virtual void onStarted(NimBLEServer *pServer) { };
};

#endif // CONFIG_BT_ENABLED
Expand Down

0 comments on commit c90d623

Please sign in to comment.