mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
fix display or direction in pretty telegram
This commit is contained in:
@@ -471,7 +471,7 @@ std::string EMSESP::pretty_telegram(std::shared_ptr<const Telegram> telegram) {
|
|||||||
type_name = read_flash_string(F("?"));
|
type_name = read_flash_string(F("?"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (telegram->dest & 0x80) {
|
if (telegram->operation == Telegram::Operation::RX_READ) {
|
||||||
direction = read_flash_string(F("<-"));
|
direction = read_flash_string(F("<-"));
|
||||||
} else {
|
} else {
|
||||||
direction = read_flash_string(F("->"));
|
direction = read_flash_string(F("->"));
|
||||||
|
|||||||
@@ -159,9 +159,10 @@ void RxService::add(uint8_t * data, uint8_t length) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src, dest and offset are always in fixed positions
|
// src, dest and offset are always in fixed positions
|
||||||
uint8_t src = data[0] & 0x7F; // strip MSB (HT3 adds it)
|
uint8_t src = data[0] & 0x7F; // strip MSB (HT3 adds it)
|
||||||
uint8_t dest = data[1] & 0x7F; // strip MSB, don't care if its read or write for processing
|
uint8_t dest = data[1] & 0x7F; // strip MSB, don't care if its read or write for processing
|
||||||
uint8_t offset = data[3]; // offset is always 4th byte
|
uint8_t offset = data[3]; // offset is always 4th byte
|
||||||
|
uint8_t operation = (data[1] & 0x80) ? Telegram::Operation::RX_READ : Telegram::Operation::RX;
|
||||||
|
|
||||||
uint16_t type_id;
|
uint16_t type_id;
|
||||||
uint8_t * message_data; // where the message block starts
|
uint8_t * message_data; // where the message block starts
|
||||||
@@ -212,7 +213,7 @@ void RxService::add(uint8_t * data, uint8_t length) {
|
|||||||
src = EMSESP::check_master_device(src, type_id, true);
|
src = EMSESP::check_master_device(src, type_id, true);
|
||||||
|
|
||||||
// create the telegram
|
// create the telegram
|
||||||
auto telegram = std::make_shared<Telegram>(Telegram::Operation::RX, src, dest, type_id, offset, message_data, message_length);
|
auto telegram = std::make_shared<Telegram>(operation, src, dest, type_id, offset, message_data, message_length);
|
||||||
|
|
||||||
// check if queue is full, if so remove top item to make space
|
// check if queue is full, if so remove top item to make space
|
||||||
if (rx_telegrams_.size() >= MAX_RX_TELEGRAMS) {
|
if (rx_telegrams_.size() >= MAX_RX_TELEGRAMS) {
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ class Telegram {
|
|||||||
enum Operation : uint8_t {
|
enum Operation : uint8_t {
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
RX,
|
RX,
|
||||||
|
RX_READ,
|
||||||
TX_RAW,
|
TX_RAW,
|
||||||
TX_READ,
|
TX_READ,
|
||||||
TX_WRITE,
|
TX_WRITE,
|
||||||
|
|||||||
Reference in New Issue
Block a user