Avoid to use message member, minor changes

This commit is contained in:
hsaturn
2021-03-25 01:26:03 +01:00
parent 8386779e92
commit d63793cf77
2 changed files with 22 additions and 27 deletions

View File

@@ -69,18 +69,18 @@ void MqttClient::connect(std::string broker, uint16_t port, uint16_t ka)
if (client->connect(broker.c_str(), port)) if (client->connect(broker.c_str(), port))
{ {
debug("cnx: connecting"); debug("cnx: connecting");
message.create(MqttMessage::Type::Connect); MqttMessage msg(MqttMessage::Type::Connect);
message.add("MQTT",4); msg.add("MQTT",4);
message.add(0x4); // Mqtt protocol version 3.1.1 msg.add(0x4); // Mqtt protocol version 3.1.1
message.add(0x0); // Connect flags TODO user / name msg.add(0x0); // Connect flags TODO user / name
keep_alive = ka; // TODO not configurable keep_alive = ka;
message.add(0x00); // keep_alive msg.add(0x00); // keep_alive
message.add((char)keep_alive); msg.add((char)keep_alive);
message.add(clientId); msg.add(clientId);
debug("cnx: mqtt connecting"); debug("cnx: mqtt connecting");
message.sendTo(this); msg.sendTo(this);
message.reset(); msg.reset();
debug("cnx: mqtt sent " << (int32_t)parent); debug("cnx: mqtt sent " << (int32_t)parent);
clientAlive(0); clientAlive(0);
@@ -339,21 +339,22 @@ if (message.type() != MqttMessage::Type::PingReq && message.type() != MqttMessag
Serial << "Connected client:" << clientId.c_str() << ", keep alive=" << keep_alive << '.' << endl; Serial << "Connected client:" << clientId.c_str() << ", keep alive=" << keep_alive << '.' << endl;
bclose = false; bclose = false;
mqtt_connected=true; mqtt_connected=true;
// Reuse received msg {
message.create(MqttMessage::Type::Connack); MqttMessage msg(MqttMessage::Type::ConnAck);
message.add(0); // Session present (not implemented) msg.add(0); // Session present (not implemented)
message.add(0); // Connection accepted msg.add(0); // Connection accepted
message.sendTo(this); msg.sendTo(this);
}
break; break;
case MqttMessage::Type::Connack: case MqttMessage::Type::ConnAck:
// TODO what more on connack ? // TODO what more on connack ?
mqtt_connected = true; mqtt_connected = true;
bclose = false; bclose = false;
break; break;
case MqttMessage::Type::Suback: case MqttMessage::Type::SubAck:
case MqttMessage::Type::Puback: case MqttMessage::Type::PubAck:
if (!mqtt_connected) break; if (!mqtt_connected) break;
// Ignore acks // Ignore acks
bclose = false; bclose = false;
@@ -429,11 +430,6 @@ if (message.type() != MqttMessage::Type::PingReq && message.type() != MqttMessag
} }
break; break;
case MqttMessage::Type::PubAck:
if (!mqtt_connected) break;
bclose = false;
break;
default: default:
bclose=true; bclose=true;
break; break;
@@ -462,8 +458,7 @@ bool Topic::matches(const Topic& topic) const
// publish from local client // publish from local client
MqttError MqttClient::publish(const Topic& topic, const char* payload, size_t pay_length) MqttError MqttClient::publish(const Topic& topic, const char* payload, size_t pay_length)
{ {
MqttMessage msg; MqttMessage msg(MqttMessage::Publish);
msg.create(MqttMessage::Publish);
msg.add(topic); msg.add(topic);
msg.add(payload, pay_length, false); msg.add(payload, pay_length, false);
if (parent) if (parent)

View File

@@ -41,11 +41,11 @@ class MqttMessage
{ {
Unknown = 0, Unknown = 0,
Connect = 0x10, Connect = 0x10,
Connack = 0x20, ConnAck = 0x20,
Publish = 0x30, Publish = 0x30,
PubAck = 0x40, PubAck = 0x40,
Subscribe = 0x80, Subscribe = 0x80,
Suback = 0x90, SubAck = 0x90,
PingReq = 0xC0, PingReq = 0xC0,
PingResp = 0xD0, PingResp = 0xD0,
}; };