Krolyxon
Commit 3120783

Branches

Tags

Refs →

orion-rf.piolibdepsesp32-s3-n16r8Adafruit NeoPixelexamplesStrandtestBLE_nodelayBLESerial.h

53 lines · 1.6 KB · Objective-C

1#ifndef _BLE_SERIAL_H_
2#define _BLE_SERIAL_H_
3
4#include <Arduino.h>
5#include <BLEPeripheral.h>
6
7class BLESerial : public BLEPeripheral, public Stream {
8 public:
9 BLESerial(unsigned char req, unsigned char rdy, unsigned char rst);
10
11 void begin(...);
12 void poll();
13 void end();
14
15 virtual int available(void);
16 virtual int peek(void);
17 virtual int read(void);
18 virtual void flush(void);
19 virtual size_t write(uint8_t byte);
20 using Print::write;
21 virtual operator bool();
22
23 private:
24 unsigned long _flushed;
25 static BLESerial *_instance;
26
27 size_t _rxHead;
28 size_t _rxTail;
29 size_t _rxCount() const;
30 uint8_t _rxBuffer[BLE_ATTRIBUTE_MAX_VALUE_LENGTH];
31 size_t _txCount;
32 uint8_t _txBuffer[BLE_ATTRIBUTE_MAX_VALUE_LENGTH];
33
34 BLEService _uartService =
35 BLEService("6E400001-B5A3-F393-E0A9-E50E24DCCA9E");
36 BLEDescriptor _uartNameDescriptor = BLEDescriptor("2901", "UART");
37 BLECharacteristic _rxCharacteristic = BLECharacteristic(
38 "6E400002-B5A3-F393-E0A9-E50E24DCCA9E", BLEWriteWithoutResponse,
39 BLE_ATTRIBUTE_MAX_VALUE_LENGTH);
40 BLEDescriptor _rxNameDescriptor =
41 BLEDescriptor("2901", "RX - Receive Data (Write)");
42 BLECharacteristic _txCharacteristic =
43 BLECharacteristic("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify,
44 BLE_ATTRIBUTE_MAX_VALUE_LENGTH);
45 BLEDescriptor _txNameDescriptor =
46 BLEDescriptor("2901", "TX - Transfer Data (Notify)");
47
48 void _received(const uint8_t *data, size_t size);
49 static void _received(BLECentral & /*central*/,
50 BLECharacteristic &rxCharacteristic);
51};
52
53#endif