mirror of
https://github.com/esphome/esphome.git
synced 2024-11-24 16:08:10 +01:00
Add parameter for endianness to ByteBuffer::wrap
This commit is contained in:
parent
c095b09839
commit
4cec5d8351
2 changed files with 30 additions and 15 deletions
|
@ -22,32 +22,47 @@ ByteBuffer ByteBuffer::wrap(uint8_t value) {
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer ByteBuffer::wrap(uint16_t value) {
|
ByteBuffer ByteBuffer::wrap(uint16_t value, Endian endianness) {
|
||||||
ByteBuffer buffer = ByteBuffer::create(2);
|
ByteBuffer buffer = ByteBuffer::create(2);
|
||||||
|
if (endianness == BIG) {
|
||||||
|
buffer.big_endian();
|
||||||
|
}
|
||||||
buffer.put_uint16(value);
|
buffer.put_uint16(value);
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer ByteBuffer::wrap(uint32_t value) {
|
ByteBuffer ByteBuffer::wrap(uint32_t value, Endian endianness) {
|
||||||
ByteBuffer buffer = ByteBuffer::create(4);
|
ByteBuffer buffer = ByteBuffer::create(4);
|
||||||
|
if (endianness == BIG) {
|
||||||
|
buffer.big_endian();
|
||||||
|
}
|
||||||
buffer.put_uint32(value);
|
buffer.put_uint32(value);
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer ByteBuffer::wrap(uint64_t value) {
|
ByteBuffer ByteBuffer::wrap(uint64_t value, Endian endianness) {
|
||||||
ByteBuffer buffer = ByteBuffer::create(8);
|
ByteBuffer buffer = ByteBuffer::create(8);
|
||||||
|
if (endianness == BIG) {
|
||||||
|
buffer.big_endian();
|
||||||
|
}
|
||||||
buffer.put_uint64(value);
|
buffer.put_uint64(value);
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer ByteBuffer::wrap(float value) {
|
ByteBuffer ByteBuffer::wrap(float value, Endian endianness) {
|
||||||
ByteBuffer buffer = ByteBuffer::create(4);
|
ByteBuffer buffer = ByteBuffer::create(sizeof(float));
|
||||||
|
if (endianness == BIG) {
|
||||||
|
buffer.big_endian();
|
||||||
|
}
|
||||||
buffer.put_float(value);
|
buffer.put_float(value);
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer ByteBuffer::wrap(double value) {
|
ByteBuffer ByteBuffer::wrap(double value, Endian endianness) {
|
||||||
ByteBuffer buffer = ByteBuffer::create(8);
|
ByteBuffer buffer = ByteBuffer::create(sizeof(double));
|
||||||
|
if (endianness == BIG) {
|
||||||
|
buffer.big_endian();
|
||||||
|
}
|
||||||
buffer.put_double(value);
|
buffer.put_double(value);
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,15 +46,15 @@ class ByteBuffer {
|
||||||
static ByteBuffer wrap(const uint8_t *ptr, size_t len);
|
static ByteBuffer wrap(const uint8_t *ptr, size_t len);
|
||||||
// Convenience functions to create a ByteBuffer from a value
|
// Convenience functions to create a ByteBuffer from a value
|
||||||
static ByteBuffer wrap(const uint8_t value);
|
static ByteBuffer wrap(const uint8_t value);
|
||||||
static ByteBuffer wrap(const uint16_t value);
|
static ByteBuffer wrap(const uint16_t value, Endian endianness = LITTLE);
|
||||||
static ByteBuffer wrap(const uint32_t value);
|
static ByteBuffer wrap(const uint32_t value, Endian endianness = LITTLE);
|
||||||
static ByteBuffer wrap(const uint64_t value);
|
static ByteBuffer wrap(const uint64_t value, Endian endianness = LITTLE);
|
||||||
static ByteBuffer wrap(const int8_t value) { return wrap((uint8_t) value); }
|
static ByteBuffer wrap(const int8_t value) { return wrap((uint8_t) value); }
|
||||||
static ByteBuffer wrap(const int16_t value) { return wrap((uint16_t) value); }
|
static ByteBuffer wrap(const int16_t value, Endian endianness = LITTLE) { return wrap((uint16_t) value, endianness); }
|
||||||
static ByteBuffer wrap(const int32_t value) { return wrap((uint32_t) value); }
|
static ByteBuffer wrap(const int32_t value, Endian endianness = LITTLE) { return wrap((uint32_t) value, endianness); }
|
||||||
static ByteBuffer wrap(const int64_t value) { return wrap((uint64_t) value); }
|
static ByteBuffer wrap(const int64_t value, Endian endianness = LITTLE) { return wrap((uint64_t) value, endianness); }
|
||||||
static ByteBuffer wrap(const float value);
|
static ByteBuffer wrap(const float value, Endian endianness = LITTLE);
|
||||||
static ByteBuffer wrap(const double value);
|
static ByteBuffer wrap(const double value, Endian endianness = LITTLE);
|
||||||
static ByteBuffer wrap(const bool value) { return wrap(value ? (uint8_t) 1 : (uint8_t) 0); }
|
static ByteBuffer wrap(const bool value) { return wrap(value ? (uint8_t) 1 : (uint8_t) 0); }
|
||||||
static ByteBuffer wrap(const std::string &value);
|
static ByteBuffer wrap(const std::string &value);
|
||||||
static ByteBuffer wrap(const std::initializer_list<uint8_t> values);
|
static ByteBuffer wrap(const std::initializer_list<uint8_t> values);
|
||||||
|
|
Loading…
Reference in a new issue