mirror of
https://github.com/esphome/esphome.git
synced 2025-10-20 18:53:47 +01:00
add comments to explain to copilot why std::vector convert is needed
This commit is contained in:
@@ -15,7 +15,10 @@ Trigger<std::vector<uint8_t>, uint16_t> *BLETriggers::create_characteristic_on_w
|
|||||||
Trigger<std::vector<uint8_t>, uint16_t> *on_write_trigger = // NOLINT(cppcoreguidelines-owning-memory)
|
Trigger<std::vector<uint8_t>, uint16_t> *on_write_trigger = // NOLINT(cppcoreguidelines-owning-memory)
|
||||||
new Trigger<std::vector<uint8_t>, uint16_t>();
|
new Trigger<std::vector<uint8_t>, uint16_t>();
|
||||||
characteristic->on_write([on_write_trigger](std::span<const uint8_t> data, uint16_t id) {
|
characteristic->on_write([on_write_trigger](std::span<const uint8_t> data, uint16_t id) {
|
||||||
// Convert span to vector for trigger
|
// Convert span to vector for trigger - copy is necessary because:
|
||||||
|
// 1. Trigger stores the data for use in automation actions that execute later
|
||||||
|
// 2. The span is only valid during this callback (points to temporary BLE stack data)
|
||||||
|
// 3. User lambdas in automations need persistent data they can access asynchronously
|
||||||
on_write_trigger->trigger(std::vector<uint8_t>(data.begin(), data.end()), id);
|
on_write_trigger->trigger(std::vector<uint8_t>(data.begin(), data.end()), id);
|
||||||
});
|
});
|
||||||
return on_write_trigger;
|
return on_write_trigger;
|
||||||
@@ -27,7 +30,10 @@ Trigger<std::vector<uint8_t>, uint16_t> *BLETriggers::create_descriptor_on_write
|
|||||||
Trigger<std::vector<uint8_t>, uint16_t> *on_write_trigger = // NOLINT(cppcoreguidelines-owning-memory)
|
Trigger<std::vector<uint8_t>, uint16_t> *on_write_trigger = // NOLINT(cppcoreguidelines-owning-memory)
|
||||||
new Trigger<std::vector<uint8_t>, uint16_t>();
|
new Trigger<std::vector<uint8_t>, uint16_t>();
|
||||||
descriptor->on_write([on_write_trigger](std::span<const uint8_t> data, uint16_t id) {
|
descriptor->on_write([on_write_trigger](std::span<const uint8_t> data, uint16_t id) {
|
||||||
// Convert span to vector for trigger
|
// Convert span to vector for trigger - copy is necessary because:
|
||||||
|
// 1. Trigger stores the data for use in automation actions that execute later
|
||||||
|
// 2. The span is only valid during this callback (points to temporary BLE stack data)
|
||||||
|
// 3. User lambdas in automations need persistent data they can access asynchronously
|
||||||
on_write_trigger->trigger(std::vector<uint8_t>(data.begin(), data.end()), id);
|
on_write_trigger->trigger(std::vector<uint8_t>(data.begin(), data.end()), id);
|
||||||
});
|
});
|
||||||
return on_write_trigger;
|
return on_write_trigger;
|
||||||
|
Reference in New Issue
Block a user