Skip to content

Commit e00ee86

Browse files
committed
Add new BLEStringCharacateristic type
1 parent 46502f6 commit e00ee86

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed

Diff for: keywords.txt

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ BLELongCharacteristic KEYWORD1
2828
BLEUnsignedLongCharacteristic KEYWORD1
2929
BLEFloatCharacteristic KEYWORD1
3030
BLEDoubleCharacteristic KEYWORD1
31+
BLEStringCharacteristic KEYWORD1
3132

3233
#######################################
3334
# Methods and Functions (KEYWORD2)

Diff for: src/ArduinoBLE.h

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
#include "local/BLELocalDevice.h"
2424
#include "BLEProperty.h"
25+
#include "BLEStringCharacteristic.h"
2526
#include "BLETypedCharacteristics.h"
2627

2728
#endif

Diff for: src/BLEStringCharacteristic.cpp

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
This file is part of the ArduinoBLE library.
3+
Copyright (c) 2018 Arduino SA. All rights reserved.
4+
5+
This library is free software; you can redistribute it and/or
6+
modify it under the terms of the GNU Lesser General Public
7+
License as published by the Free Software Foundation; either
8+
version 2.1 of the License, or (at your option) any later version.
9+
10+
This library is distributed in the hope that it will be useful,
11+
but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13+
Lesser General Public License for more details.
14+
15+
You should have received a copy of the GNU Lesser General Public
16+
License along with this library; if not, write to the Free Software
17+
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18+
*/
19+
20+
#include "BLEStringCharacteristic.h"
21+
22+
BLEStringCharacteristic::BLEStringCharacteristic(const char* uuid, unsigned char properties, int valueSize) :
23+
BLECharacteristic(uuid, properties, valueSize)
24+
{
25+
}
26+
27+
int BLEStringCharacteristic::writeValue(const String& value)
28+
{
29+
return BLECharacteristic::writeValue(value.c_str());
30+
}
31+
32+
String BLEStringCharacteristic::value(void)
33+
{
34+
String str;
35+
int length = BLECharacteristic::valueLength();
36+
const uint8_t* val = BLECharacteristic::value();
37+
38+
str.reserve(length);
39+
40+
for (int i = 0; i < length; i++) {
41+
str += (char)val[i];
42+
}
43+
44+
return str;
45+
}

Diff for: src/BLEStringCharacteristic.h

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
This file is part of the ArduinoBLE library.
3+
Copyright (c) 2018 Arduino SA. All rights reserved.
4+
5+
This library is free software; you can redistribute it and/or
6+
modify it under the terms of the GNU Lesser General Public
7+
License as published by the Free Software Foundation; either
8+
version 2.1 of the License, or (at your option) any later version.
9+
10+
This library is distributed in the hope that it will be useful,
11+
but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13+
Lesser General Public License for more details.
14+
15+
You should have received a copy of the GNU Lesser General Public
16+
License along with this library; if not, write to the Free Software
17+
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18+
*/
19+
20+
#ifndef _BLE_STRING_CHARACTERISTIC_H_
21+
#define _BLE_STRING_CHARACTERISTIC_H_
22+
23+
#include <Arduino.h>
24+
25+
#include "BLECharacteristic.h"
26+
27+
class BLEStringCharacteristic : public BLECharacteristic
28+
{
29+
public:
30+
BLEStringCharacteristic(const char* uuid, unsigned char properties, int valueSize);
31+
32+
int writeValue(const String& value);
33+
int setValue(const String& value) { return writeValue(value); }
34+
String value(void);
35+
36+
private:
37+
};
38+
39+
#endif

0 commit comments

Comments
 (0)