diff --git a/src/helpers/AdvertDataHelpers.cpp b/src/helpers/AdvertDataHelpers.cpp index 5972bce2..f1aff21f 100644 --- a/src/helpers/AdvertDataHelpers.cpp +++ b/src/helpers/AdvertDataHelpers.cpp @@ -8,8 +8,6 @@ memcpy(&app_data[i], &_lat, 4); i += 4; memcpy(&app_data[i], &_lon, 4); i += 4; } - // TODO: BATTERY encoding - // TODO: TEMPERATURE encoding if (_name && *_name != 0) { app_data[0] |= ADV_NAME_MASK; const char* sp = _name; @@ -31,12 +29,6 @@ memcpy(&_lat, &app_data[i], 4); i += 4; memcpy(&_lon, &app_data[i], 4); i += 4; } - if (_flags & ADV_BATTERY_MASK) { - /* TODO: somewhere to store battery volts? */ i += 2; - } - if (_flags & ADV_TEMPERATURE_MASK) { - /* TODO: somewhere to store temperature? */ i += 2; - } if (app_data_len >= i) { int nlen = 0; diff --git a/src/helpers/AdvertDataHelpers.h b/src/helpers/AdvertDataHelpers.h index a8a24a0a..f41996eb 100644 --- a/src/helpers/AdvertDataHelpers.h +++ b/src/helpers/AdvertDataHelpers.h @@ -11,8 +11,8 @@ //FUTURE: 4..15 #define ADV_LATLON_MASK 0x10 -#define ADV_BATTERY_MASK 0x20 -#define ADV_TEMPERATURE_MASK 0x40 +#define ADV_FEAT1_MASK 0x20 // FUTURE +#define ADV_FEAT2_MASK 0x40 // FUTURE #define ADV_NAME_MASK 0x80 class AdvertDataBuilder { @@ -25,6 +25,9 @@ public: AdvertDataBuilder(uint8_t adv_type, const char* name, double lat, double lon) : _type(adv_type), _name(name), _lat(lat * 1E6), _lon(lon * 1E6) { } + void setFeat1(bool enabled) { if (enabled) _type |= ADV_FEAT1_MASK; else _type &= ~ADV_FEAT1_MASK; } + void setFeat2(bool enabled) { if (enabled) _type |= ADV_FEAT2_MASK; else _type &= ~ADV_FEAT2_MASK; } + /** * \brief encode the given advertisement data. * \param app_data dest array, must be MAX_ADVERT_DATA_SIZE @@ -43,6 +46,8 @@ public: bool isValid() const { return _valid; } uint8_t getType() const { return _flags & 0x0F; } + bool hasFeat1() const { return (_flags & ADV_FEAT1_MASK) != 0; } + bool hasFeat2() const { return (_flags & ADV_FEAT2_MASK) != 0; } bool hasName() const { return _name[0] != 0; } const char* getName() const { return _name; }