Skip to content

Commit 8db3f2e

Browse files
committed
use BLEAdafruitSensor as base class for other services
1 parent 603447a commit 8db3f2e

10 files changed

+42
-56
lines changed

libraries/Bluefruit52Lib/src/services/BLEAdafruitAccel.cpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,28 +55,21 @@ const uint8_t BLEAdafruitAccel::UUID128_CHR_DATA[16] =
5555

5656
// Constructor
5757
BLEAdafruitAccel::BLEAdafruitAccel(void)
58-
: BLEService(UUID128_SERVICE), Accel(UUID128_CHR_DATA), Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
58+
: BLEAdafruitSensor(UUID128_SERVICE), Accel(UUID128_CHR_DATA)
5959
{
6060

6161
}
6262

6363
err_t BLEAdafruitAccel::begin (void)
6464
{
65-
// Invoke base class begin()
66-
VERIFY_STATUS( BLEService::begin() );
65+
// Invoke base class begin(), this will add service and Period chr
66+
VERIFY_STATUS( BLEAdafruitSensor::begin(1000) );
6767

6868
// Add Characteristic
6969
Accel.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
7070
Accel.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
7171
Accel.setFixedLen(4*3);
7272
VERIFY_STATUS( Accel.begin() );
7373

74-
// Add Characteristic
75-
Period.setProperties(CHR_PROPS_READ | CHR_PROPS_WRITE);
76-
Period.setPermission(SECMODE_OPEN, SECMODE_OPEN);
77-
Period.setFixedLen(4);
78-
VERIFY_STATUS( Period.begin() );
79-
Period.write32(10);
80-
8174
return ERROR_NONE;
8275
}

libraries/Bluefruit52Lib/src/services/BLEAdafruitAccel.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@
3030
#include "BLECharacteristic.h"
3131
#include "BLEService.h"
3232

33-
class BLEAdafruitAccel : public BLEService
33+
#include "BLEAdafruitSensor.h"
34+
35+
class BLEAdafruitAccel : public BLEAdafruitSensor
3436
{
3537
public:
3638
static const uint8_t UUID128_SERVICE[16];
3739
static const uint8_t UUID128_CHR_DATA[16];
3840

3941
BLECharacteristic Accel;
40-
BLECharacteristic Period;
4142

4243
BLEAdafruitAccel(void);
4344
virtual err_t begin(void);

libraries/Bluefruit52Lib/src/services/BLEAdafruitButton.cpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,28 +55,21 @@ const uint8_t BLEAdafruitButton::UUID128_CHR_DATA[16] =
5555

5656
// Constructor
5757
BLEAdafruitButton::BLEAdafruitButton(void)
58-
: BLEService(UUID128_SERVICE), Button(UUID128_CHR_DATA), Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
58+
: BLEAdafruitSensor(UUID128_SERVICE), Button(UUID128_CHR_DATA)
5959
{
6060

6161
}
6262

6363
err_t BLEAdafruitButton::begin (void)
6464
{
65-
// Invoke base class begin()
66-
VERIFY_STATUS( BLEService::begin() );
65+
// Invoke base class begin(), this will add service and Period chr
66+
VERIFY_STATUS( BLEAdafruitSensor::begin(100) );
6767

6868
// Add Characteristic
6969
Button.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
7070
Button.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
7171
Button.setFixedLen(4);
7272
VERIFY_STATUS( Button.begin() );
7373

74-
// Add Characteristic
75-
Period.setProperties(CHR_PROPS_READ | CHR_PROPS_WRITE);
76-
Period.setPermission(SECMODE_OPEN, SECMODE_OPEN);
77-
Period.setFixedLen(4);
78-
VERIFY_STATUS( Period.begin() );
79-
Period.write32(10);
80-
8174
return ERROR_NONE;
8275
}

libraries/Bluefruit52Lib/src/services/BLEAdafruitButton.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@
2929

3030
#include "BLECharacteristic.h"
3131
#include "BLEService.h"
32+
#include "BLEAdafruitSensor.h"
3233

33-
class BLEAdafruitButton : public BLEService
34+
class BLEAdafruitButton : public BLEAdafruitSensor
3435
{
3536
public:
3637
static const uint8_t UUID128_SERVICE[16];
3738
static const uint8_t UUID128_CHR_DATA[16];
3839

3940
BLECharacteristic Button;
40-
BLECharacteristic Period;
4141

4242
BLEAdafruitButton(void);
4343
virtual err_t begin(void);

libraries/Bluefruit52Lib/src/services/BLEAdafruitLightSensor.cpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,28 +55,21 @@ const uint8_t BLEAdafruitLightSensor::UUID128_CHR_DATA[16] =
5555

5656
// Constructor
5757
BLEAdafruitLightSensor::BLEAdafruitLightSensor(void)
58-
: BLEService(UUID128_SERVICE), Lux(UUID128_CHR_DATA), Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
58+
: BLEAdafruitSensor(UUID128_SERVICE), Lux(UUID128_CHR_DATA)
5959
{
6060

6161
}
6262

6363
err_t BLEAdafruitLightSensor::begin (void)
6464
{
65-
// Invoke base class begin()
66-
VERIFY_STATUS( BLEService::begin() );
65+
// Invoke base class begin(), this will add service and Period chr
66+
VERIFY_STATUS( BLEAdafruitSensor::begin(1000) );
6767

6868
// Add Characteristic
6969
Lux.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
7070
Lux.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
7171
Lux.setFixedLen(4);
7272
VERIFY_STATUS( Lux.begin() );
7373

74-
// Add Characteristic
75-
Period.setProperties(CHR_PROPS_READ | CHR_PROPS_WRITE);
76-
Period.setPermission(SECMODE_OPEN, SECMODE_OPEN);
77-
Period.setFixedLen(4);
78-
VERIFY_STATUS( Period.begin() );
79-
Period.write32(10);
80-
8174
return ERROR_NONE;
8275
}

libraries/Bluefruit52Lib/src/services/BLEAdafruitLightSensor.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@
3030
#include "BLECharacteristic.h"
3131
#include "BLEService.h"
3232

33-
class BLEAdafruitLightSensor : public BLEService
33+
#include "BLEAdafruitSensor.h"
34+
35+
class BLEAdafruitLightSensor : public BLEAdafruitSensor
3436
{
3537
public:
3638
static const uint8_t UUID128_SERVICE[16];
3739
static const uint8_t UUID128_CHR_DATA[16];
3840

3941
BLECharacteristic Lux;
40-
BLECharacteristic Period;
4142

4243
BLEAdafruitLightSensor(void);
4344
virtual err_t begin(void);

libraries/Bluefruit52Lib/src/services/BLEAdafruitSensor.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
// MACRO TYPEDEF CONSTANT ENUM DECLARATION
3030
//--------------------------------------------------------------------+
3131

32-
BLEAdafruitSensor::BLEAdafruitSensor(void) :
33-
Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
32+
BLEAdafruitSensor::BLEAdafruitSensor(BLEUuid bleuuid)
33+
: BLEService(bleuuid), Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
3434
{
3535
_measure_cb = NULL;
3636
}
@@ -40,7 +40,7 @@ void BLEAdafruitSensor::setMeasureCallback(measure_callback_t fp)
4040
_measure_cb = fp;
4141
}
4242

43-
bool BLEAdafruitSensor::begin(int32_t ms)
43+
err_t BLEAdafruitSensor::begin(int32_t ms)
4444
{
4545
// Invoke base class begin()
4646
VERIFY_STATUS( BLEService::begin() );
@@ -56,9 +56,18 @@ bool BLEAdafruitSensor::begin(int32_t ms)
5656
// setup timer
5757
_timer.begin(ms, sensor_timer_cb, this, true);
5858

59-
return true;
59+
return ERROR_NONE;
6060
}
6161

62+
void BLEAdafruitSensor::startMeasuring(void)
63+
{
64+
_timer.start();
65+
}
66+
67+
void BLEAdafruitSensor::stopMeasuring(void)
68+
{
69+
_timer.stop();
70+
}
6271

6372
void BLEAdafruitSensor::sensor_timer_cb(TimerHandle_t xTimer)
6473
{

libraries/Bluefruit52Lib/src/services/BLEAdafruitSensor.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,19 @@ class BLEAdafruitSensor : public BLEService
3535
public:
3636
typedef void (*measure_callback_t )(void);
3737

38-
BLEAdafruitSensor(void);
39-
virtual bool begin(int32_t ms);
38+
BLEAdafruitSensor(BLEUuid bleuuid);
39+
virtual err_t begin(int32_t ms);
4040

4141
void setMeasureCallback(measure_callback_t fp);
42+
void startMeasuring(void);
43+
void stopMeasuring(void);
44+
45+
BLECharacteristic Period;
4246

4347
protected:
4448
measure_callback_t _measure_cb;
4549
SoftwareTimer _timer;
4650

47-
BLECharacteristic Period;
4851

4952
static void sensor_timer_cb(TimerHandle_t xTimer);
5053
static void sensor_period_write_cb(uint16_t conn_hdl, BLECharacteristic* chr, uint8_t* data, uint16_t len);

libraries/Bluefruit52Lib/src/services/BLEAdafruitTemperature.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,29 +54,21 @@ const uint8_t BLEAdafruitTemperature::UUID128_CHR_TEMPERATURE[16] =
5454

5555
// Constructor
5656
BLEAdafruitTemperature::BLEAdafruitTemperature(void)
57-
: BLEService(UUID128_SERVICE), Temperature(UUID128_CHR_TEMPERATURE), Period(UUID128_CHR_ADAFRUIT_MEASUREMENT_PERIOD)
57+
: BLEAdafruitSensor(UUID128_SERVICE), Temperature(UUID128_CHR_TEMPERATURE)
5858
{
5959

6060
}
6161

6262
err_t BLEAdafruitTemperature::begin (void)
6363
{
64-
// Invoke base class begin()
65-
VERIFY_STATUS( BLEService::begin() );
64+
// Invoke base class begin(), this will add service and Period chr
65+
VERIFY_STATUS( BLEAdafruitSensor::begin(1000) );
6666

6767
// Add Temperature Characteristic
6868
Temperature.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
6969
Temperature.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
7070
Temperature.setFixedLen(4);
7171
VERIFY_STATUS( Temperature.begin() );
7272

73-
// Add Measurement Interval Characteristic
74-
Period.setProperties(CHR_PROPS_READ | CHR_PROPS_WRITE);
75-
Period.setPermission(SECMODE_OPEN, SECMODE_OPEN);
76-
Period.setFixedLen(4);
77-
VERIFY_STATUS( Period.begin() );
78-
79-
Period.write32(30); // measure every 30 seconds
80-
8173
return ERROR_NONE;
8274
}

libraries/Bluefruit52Lib/src/services/BLEAdafruitTemperature.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@
3030
#include "BLECharacteristic.h"
3131
#include "BLEService.h"
3232

33-
class BLEAdafruitTemperature : public BLEService
33+
#include "BLEAdafruitSensor.h"
34+
35+
class BLEAdafruitTemperature : public BLEAdafruitSensor
3436
{
3537
public:
3638
static const uint8_t UUID128_SERVICE[16];
3739
static const uint8_t UUID128_CHR_TEMPERATURE[16];
3840

3941
BLECharacteristic Temperature;
40-
BLECharacteristic Period;
4142

4243
BLEAdafruitTemperature();
4344
virtual err_t begin(void);

0 commit comments

Comments
 (0)