mirror of
https://github.com/esphome/esphome.git
synced 2026-05-27 20:53:46 +08:00
[esp32_ble_server] Fix set_value action with static data lists (#15285)
This commit is contained in:
committed by
Jesse Hills
parent
3fd3dcc7e5
commit
3d8a3a91f2
@@ -70,6 +70,7 @@ template<typename... Ts> class BLECharacteristicSetValueAction : public Action<T
|
|||||||
public:
|
public:
|
||||||
BLECharacteristicSetValueAction(BLECharacteristic *characteristic) : parent_(characteristic) {}
|
BLECharacteristicSetValueAction(BLECharacteristic *characteristic) : parent_(characteristic) {}
|
||||||
TEMPLATABLE_VALUE(std::vector<uint8_t>, buffer)
|
TEMPLATABLE_VALUE(std::vector<uint8_t>, buffer)
|
||||||
|
void set_buffer(std::initializer_list<uint8_t> buffer) { this->buffer_ = std::vector<uint8_t>(buffer); }
|
||||||
void set_buffer(ByteBuffer buffer) { this->set_buffer(buffer.get_data()); }
|
void set_buffer(ByteBuffer buffer) { this->set_buffer(buffer.get_data()); }
|
||||||
void play(const Ts &...x) override {
|
void play(const Ts &...x) override {
|
||||||
// If the listener is already set, do nothing
|
// If the listener is already set, do nothing
|
||||||
@@ -115,6 +116,7 @@ template<typename... Ts> class BLEDescriptorSetValueAction : public Action<Ts...
|
|||||||
public:
|
public:
|
||||||
BLEDescriptorSetValueAction(BLEDescriptor *descriptor) : parent_(descriptor) {}
|
BLEDescriptorSetValueAction(BLEDescriptor *descriptor) : parent_(descriptor) {}
|
||||||
TEMPLATABLE_VALUE(std::vector<uint8_t>, buffer)
|
TEMPLATABLE_VALUE(std::vector<uint8_t>, buffer)
|
||||||
|
void set_buffer(std::initializer_list<uint8_t> buffer) { this->buffer_ = std::vector<uint8_t>(buffer); }
|
||||||
void set_buffer(ByteBuffer buffer) { this->set_buffer(buffer.get_data()); }
|
void set_buffer(ByteBuffer buffer) { this->set_buffer(buffer.get_data()); }
|
||||||
void play(const Ts &...x) override { this->parent_->set_value(this->buffer_.value(x...)); }
|
void play(const Ts &...x) override { this->parent_->set_value(this->buffer_.value(x...)); }
|
||||||
|
|
||||||
|
|||||||
@@ -69,3 +69,11 @@ esp32_ble_server:
|
|||||||
- ble_server.descriptor.set_value:
|
- ble_server.descriptor.set_value:
|
||||||
id: test_change_descriptor
|
id: test_change_descriptor
|
||||||
value: !lambda return bytebuffer::ByteBuffer::wrap({0x03, 0x04, 0x05}).get_data();
|
value: !lambda return bytebuffer::ByteBuffer::wrap({0x03, 0x04, 0x05}).get_data();
|
||||||
|
- ble_server.characteristic.set_value:
|
||||||
|
id: test_change_characteristic
|
||||||
|
value:
|
||||||
|
data: [0xfc, 0xef, 0xfe, 0x86]
|
||||||
|
- ble_server.descriptor.set_value:
|
||||||
|
id: test_change_descriptor
|
||||||
|
value:
|
||||||
|
data: [0x01, 0x02, 0x03]
|
||||||
|
|||||||
Reference in New Issue
Block a user