@@ -17,6 +17,7 @@ class BluefruitLE_SPI_Stream : public Stream
1717 BluefruitLE_SPI_Stream (int8_t csPin, int8_t irqPin, int8_t rstPin);
1818
1919 void setLocalName (const char *localName);
20+ void setAdvertisingInterval (unsigned short advertisingInterval);
2021 void setConnectionInterval (unsigned short minConnInterval, unsigned short maxConnInterval);
2122 void setFlushInterval (int flushInterval);
2223
@@ -38,6 +39,7 @@ class BluefruitLE_SPI_Stream : public Stream
3839 Adafruit_BluefruitLE_SPI ble;
3940
4041 String localName;
42+ unsigned short advertisingInterval;
4143 unsigned short minConnInterval;
4244 unsigned short maxConnInterval;
4345
@@ -48,6 +50,7 @@ class BluefruitLE_SPI_Stream : public Stream
4850
4951BluefruitLE_SPI_Stream::BluefruitLE_SPI_Stream (int8_t csPin, int8_t irqPin, int8_t rstPin) :
5052 ble(csPin, irqPin, rstPin),
53+ advertisingInterval(0 ),
5154 minConnInterval(0 ),
5255 maxConnInterval(0 ),
5356 txCount(0 )
@@ -58,6 +61,11 @@ void BluefruitLE_SPI_Stream::setLocalName(const char *localName)
5861 this ->localName = localName;
5962}
6063
64+ void BluefruitLE_SPI_Stream::setAdvertisingInterval (unsigned short advertisingInterval)
65+ {
66+ this ->advertisingInterval = advertisingInterval;
67+ }
68+
6169void BluefruitLE_SPI_Stream::setConnectionInterval (unsigned short minConnInterval, unsigned short maxConnInterval)
6270{
6371 this ->minConnInterval = minConnInterval;
@@ -89,14 +97,16 @@ void BluefruitLE_SPI_Stream::begin()
8997 ble.println (localName);
9098 }
9199
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 ();
100110
101111 // Disable real and simulated mode switch (i.e. "+++") command
102112 ble.println (" AT+MODESWITCHEN=local,0" );
0 commit comments