@@ -17,6 +17,7 @@ class BluefruitLE_SPI_Stream : public Stream
17
17
BluefruitLE_SPI_Stream (int8_t csPin, int8_t irqPin, int8_t rstPin);
18
18
19
19
void setLocalName (const char *localName);
20
+ void setAdvertisingInterval (unsigned short advertisingInterval);
20
21
void setConnectionInterval (unsigned short minConnInterval, unsigned short maxConnInterval);
21
22
void setFlushInterval (int flushInterval);
22
23
@@ -38,6 +39,7 @@ class BluefruitLE_SPI_Stream : public Stream
38
39
Adafruit_BluefruitLE_SPI ble;
39
40
40
41
String localName;
42
+ unsigned short advertisingInterval;
41
43
unsigned short minConnInterval;
42
44
unsigned short maxConnInterval;
43
45
@@ -48,6 +50,7 @@ class BluefruitLE_SPI_Stream : public Stream
48
50
49
51
BluefruitLE_SPI_Stream::BluefruitLE_SPI_Stream (int8_t csPin, int8_t irqPin, int8_t rstPin) :
50
52
ble(csPin, irqPin, rstPin),
53
+ advertisingInterval(0 ),
51
54
minConnInterval(0 ),
52
55
maxConnInterval(0 ),
53
56
txCount(0 )
@@ -58,6 +61,11 @@ void BluefruitLE_SPI_Stream::setLocalName(const char *localName)
58
61
this ->localName = localName;
59
62
}
60
63
64
+ void BluefruitLE_SPI_Stream::setAdvertisingInterval (unsigned short advertisingInterval)
65
+ {
66
+ this ->advertisingInterval = advertisingInterval;
67
+ }
68
+
61
69
void BluefruitLE_SPI_Stream::setConnectionInterval (unsigned short minConnInterval, unsigned short maxConnInterval)
62
70
{
63
71
this ->minConnInterval = minConnInterval;
@@ -89,14 +97,16 @@ void BluefruitLE_SPI_Stream::begin()
89
97
ble.println (localName);
90
98
}
91
99
92
- // Set connection interval
93
- if (minConnInterval > 0 && maxConnInterval > 0 ) {
94
- ble.print (" AT+GAPINTERVALS=" );
95
- ble.print (minConnInterval);
96
- ble.print (" ," );
97
- ble.print (maxConnInterval);
98
- ble.println (" ,,," );
99
- }
100
+ // Set connection and advertising intervals
101
+ ble.print (" AT+GAPINTERVALS=" );
102
+ if (minConnInterval > 0 ) ble.print (minConnInterval);
103
+ ble.print (" ," );
104
+ if (maxConnInterval > 0 ) ble.print (maxConnInterval);
105
+ ble.print (" ," );
106
+ if (advertisingInterval > 0 ) ble.print (advertisingInterval);
107
+ ble.print (" ,," ); // Always omit fast advertising timeout, hence two commas
108
+ if (advertisingInterval > 0 ) ble.print (advertisingInterval);
109
+ ble.println ();
100
110
101
111
// Disable real and simulated mode switch (i.e. "+++") command
102
112
ble.println (" AT+MODESWITCHEN=local,0" );
0 commit comments