NimBLE-Arduino 1.4.2
Loading...
Searching...
No Matches
NimBLE2904.h
1/*
2 * NimBLE2904.h
3 *
4 * Created: on March 13, 2020
5 * Author H2zero
6 *
7 * Originally:
8 *
9 * BLE2904.h
10 *
11 * Created on: Dec 23, 2017
12 * Author: kolban
13 */
14
15#ifndef MAIN_NIMBLE2904_H_
16#define MAIN_NIMBLE2904_H_
17#include "nimconfig.h"
18#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
19
20#include "NimBLEDescriptor.h"
21
22struct BLE2904_Data {
23 uint8_t m_format;
24 int8_t m_exponent;
25 uint16_t m_unit; // See https://www.bluetooth.com/specifications/assigned-numbers/units
26 uint8_t m_namespace;
27 uint16_t m_description;
28
29} __attribute__((packed));
30
31
38public:
39 NimBLE2904(NimBLECharacteristic* pCharacterisitic = nullptr);
40 static const uint8_t FORMAT_BOOLEAN = 1;
41 static const uint8_t FORMAT_UINT2 = 2;
42 static const uint8_t FORMAT_UINT4 = 3;
43 static const uint8_t FORMAT_UINT8 = 4;
44 static const uint8_t FORMAT_UINT12 = 5;
45 static const uint8_t FORMAT_UINT16 = 6;
46 static const uint8_t FORMAT_UINT24 = 7;
47 static const uint8_t FORMAT_UINT32 = 8;
48 static const uint8_t FORMAT_UINT48 = 9;
49 static const uint8_t FORMAT_UINT64 = 10;
50 static const uint8_t FORMAT_UINT128 = 11;
51 static const uint8_t FORMAT_SINT8 = 12;
52 static const uint8_t FORMAT_SINT12 = 13;
53 static const uint8_t FORMAT_SINT16 = 14;
54 static const uint8_t FORMAT_SINT24 = 15;
55 static const uint8_t FORMAT_SINT32 = 16;
56 static const uint8_t FORMAT_SINT48 = 17;
57 static const uint8_t FORMAT_SINT64 = 18;
58 static const uint8_t FORMAT_SINT128 = 19;
59 static const uint8_t FORMAT_FLOAT32 = 20;
60 static const uint8_t FORMAT_FLOAT64 = 21;
61 static const uint8_t FORMAT_SFLOAT16 = 22;
62 static const uint8_t FORMAT_SFLOAT32 = 23;
63 static const uint8_t FORMAT_IEEE20601 = 24;
64 static const uint8_t FORMAT_UTF8 = 25;
65 static const uint8_t FORMAT_UTF16 = 26;
66 static const uint8_t FORMAT_OPAQUE = 27;
67
68 void setDescription(uint16_t);
69 void setExponent(int8_t exponent);
70 void setFormat(uint8_t format);
71 void setNamespace(uint8_t namespace_value);
72 void setUnit(uint16_t unit);
73
74private:
75 friend class NimBLECharacteristic;
76 BLE2904_Data m_data;
77}; // BLE2904
78
79#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL */
80#endif /* MAIN_NIMBLE2904_H_ */
Descriptor for Characteristic Presentation Format.
Definition: NimBLE2904.h:37
void setNamespace(uint8_t namespace_value)
Set the namespace.
Definition: NimBLE2904.cpp:66
void setDescription(uint16_t)
Set the description.
Definition: NimBLE2904.cpp:39
void setExponent(int8_t exponent)
Set the exponent.
Definition: NimBLE2904.cpp:48
void setFormat(uint8_t format)
Set the format.
Definition: NimBLE2904.cpp:57
void setUnit(uint16_t unit)
Set the units for this value. It should be one of the encoded values defined here: https://www....
Definition: NimBLE2904.cpp:77
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:63
A model of a BLE descriptor.
Definition: NimBLEDescriptor.h:35