better type management
This commit is contained in:
@@ -418,11 +418,11 @@ if (mesg->type() != MqttMessage::Type::PingReq && mesg->type() != MqttMessage::T
|
|||||||
uint16_t len;
|
uint16_t len;
|
||||||
bool bclose=true;
|
bool bclose=true;
|
||||||
|
|
||||||
switch(mesg->type() & 0XF0)
|
|
||||||
#ifdef EPOXY_DUINO
|
#ifdef EPOXY_DUINO
|
||||||
counters[mesg->type()]++;
|
counters[mesg->type()]++;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
switch(mesg->type())
|
||||||
{
|
{
|
||||||
case MqttMessage::Type::Connect:
|
case MqttMessage::Type::Connect:
|
||||||
if (mqtt_connected)
|
if (mqtt_connected)
|
||||||
@@ -532,7 +532,7 @@ if (mesg->type() != MqttMessage::Type::PingReq && mesg->type() != MqttMessage::T
|
|||||||
Topic topic(payload, len);
|
Topic topic(payload, len);
|
||||||
|
|
||||||
payload += len;
|
payload += len;
|
||||||
if ((mesg->type() & 0XF0) == MqttMessage::Type::Subscribe)
|
if (mesg->type() == MqttMessage::Type::Subscribe)
|
||||||
{
|
{
|
||||||
uint8_t qos = *payload++;
|
uint8_t qos = *payload++;
|
||||||
if (qos != 0)
|
if (qos != 0)
|
||||||
@@ -584,7 +584,7 @@ if (mesg->type() != MqttMessage::Type::PingReq && mesg->type() != MqttMessage::T
|
|||||||
#endif
|
#endif
|
||||||
if (mqtt_connected or client == nullptr)
|
if (mqtt_connected or client == nullptr)
|
||||||
{
|
{
|
||||||
uint8_t qos = mesg->type() & 0x6;
|
uint8_t qos = mesg->flags();
|
||||||
payload = header;
|
payload = header;
|
||||||
mesg->getString(payload, len);
|
mesg->getString(payload, len);
|
||||||
Topic published(payload, len);
|
Topic published(payload, len);
|
||||||
|
|||||||
@@ -114,9 +114,11 @@ class MqttMessage
|
|||||||
return state == Complete ? static_cast<Type>(buffer[0]) : Unknown;
|
return state == Complete ? static_cast<Type>(buffer[0]) : Unknown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t flags() const { return static_cast<uint8_t>(buffer[0] & 0x0F); }
|
||||||
|
|
||||||
void create(Type type)
|
void create(Type type)
|
||||||
{
|
{
|
||||||
buffer=(char)type;
|
buffer=(decltype(buffer)::value_type)type;
|
||||||
buffer+='\0'; // reserved for msg length byte 1/2
|
buffer+='\0'; // reserved for msg length byte 1/2
|
||||||
buffer+='\0'; // reserved for msg length byte 2/2 (fixed)
|
buffer+='\0'; // reserved for msg length byte 2/2 (fixed)
|
||||||
vheader=3; // Should never change
|
vheader=3; // Should never change
|
||||||
|
|||||||
Reference in New Issue
Block a user