mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-08 22:22:05 +00:00
tryfix for #2242
This commit is contained in:
parent
bba4de3ec7
commit
22500a6c34
@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
MQTT *mqtt;
|
MQTT *mqtt;
|
||||||
|
|
||||||
String statusTopic = "msh/2/stat/";
|
std::string statusTopic = "msh/2/stat/";
|
||||||
String cryptTopic = "msh/2/c/"; // msh/2/c/CHANNELID/NODEID
|
std::string cryptTopic = "msh/2/c/"; // msh/2/c/CHANNELID/NODEID
|
||||||
String jsonTopic = "msh/2/json/"; // msh/2/json/CHANNELID/NODEID
|
std::string jsonTopic = "msh/2/json/"; // msh/2/json/CHANNELID/NODEID
|
||||||
|
|
||||||
static MemoryDynamic<meshtastic_ServiceEnvelope> staticMqttPool;
|
static MemoryDynamic<meshtastic_ServiceEnvelope> staticMqttPool;
|
||||||
|
|
||||||
@ -238,11 +238,11 @@ void MQTT::sendSubscriptions()
|
|||||||
for (size_t i = 0; i < numChan; i++) {
|
for (size_t i = 0; i < numChan; i++) {
|
||||||
auto &ch = channels.getByIndex(i);
|
auto &ch = channels.getByIndex(i);
|
||||||
if (ch.settings.downlink_enabled) {
|
if (ch.settings.downlink_enabled) {
|
||||||
String topic = cryptTopic + channels.getGlobalId(i) + "/#";
|
std::string topic = cryptTopic + channels.getGlobalId(i) + "/#";
|
||||||
LOG_INFO("Subscribing to %s\n", topic.c_str());
|
LOG_INFO("Subscribing to %s\n", topic.c_str());
|
||||||
pubSub.subscribe(topic.c_str(), 1); // FIXME, is QOS 1 right?
|
pubSub.subscribe(topic.c_str(), 1); // FIXME, is QOS 1 right?
|
||||||
if (moduleConfig.mqtt.json_enabled == true) {
|
if (moduleConfig.mqtt.json_enabled == true) {
|
||||||
String topicDecoded = jsonTopic + channels.getGlobalId(i) + "/#";
|
std::string topicDecoded = jsonTopic + channels.getGlobalId(i) + "/#";
|
||||||
LOG_INFO("Subscribing to %s\n", topicDecoded.c_str());
|
LOG_INFO("Subscribing to %s\n", topicDecoded.c_str());
|
||||||
pubSub.subscribe(topicDecoded.c_str(), 1); // FIXME, is QOS 1 right?
|
pubSub.subscribe(topicDecoded.c_str(), 1); // FIXME, is QOS 1 right?
|
||||||
}
|
}
|
||||||
@ -296,7 +296,7 @@ int32_t MQTT::runOnce()
|
|||||||
static uint8_t bytes[meshtastic_MeshPacket_size + 64];
|
static uint8_t bytes[meshtastic_MeshPacket_size + 64];
|
||||||
size_t numBytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_ServiceEnvelope_msg, env);
|
size_t numBytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_ServiceEnvelope_msg, env);
|
||||||
|
|
||||||
String topic = cryptTopic + env->channel_id + "/" + owner.id;
|
std::string topic = cryptTopic + env->channel_id + "/" + owner.id;
|
||||||
LOG_INFO("publish %s, %u bytes from queue\n", topic.c_str(), numBytes);
|
LOG_INFO("publish %s, %u bytes from queue\n", topic.c_str(), numBytes);
|
||||||
|
|
||||||
pubSub.publish(topic.c_str(), bytes, numBytes, false);
|
pubSub.publish(topic.c_str(), bytes, numBytes, false);
|
||||||
@ -305,7 +305,7 @@ int32_t MQTT::runOnce()
|
|||||||
// handle json topic
|
// handle json topic
|
||||||
auto jsonString = this->downstreamPacketToJson(env->packet);
|
auto jsonString = this->downstreamPacketToJson(env->packet);
|
||||||
if (jsonString.length() != 0) {
|
if (jsonString.length() != 0) {
|
||||||
String topicJson = jsonTopic + env->channel_id + "/" + owner.id;
|
std::string topicJson = jsonTopic + env->channel_id + "/" + owner.id;
|
||||||
LOG_INFO("JSON publish message to %s, %u bytes: %s\n", topicJson.c_str(), jsonString.length(),
|
LOG_INFO("JSON publish message to %s, %u bytes: %s\n", topicJson.c_str(), jsonString.length(),
|
||||||
jsonString.c_str());
|
jsonString.c_str());
|
||||||
pubSub.publish(topicJson.c_str(), jsonString.c_str(), false);
|
pubSub.publish(topicJson.c_str(), jsonString.c_str(), false);
|
||||||
@ -350,7 +350,7 @@ void MQTT::onSend(const meshtastic_MeshPacket &mp, ChannelIndex chIndex)
|
|||||||
static uint8_t bytes[meshtastic_MeshPacket_size + 64];
|
static uint8_t bytes[meshtastic_MeshPacket_size + 64];
|
||||||
size_t numBytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_ServiceEnvelope_msg, env);
|
size_t numBytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_ServiceEnvelope_msg, env);
|
||||||
|
|
||||||
String topic = cryptTopic + channelId + "/" + owner.id;
|
std::string topic = cryptTopic + channelId + "/" + owner.id;
|
||||||
LOG_DEBUG("publish %s, %u bytes\n", topic.c_str(), numBytes);
|
LOG_DEBUG("publish %s, %u bytes\n", topic.c_str(), numBytes);
|
||||||
|
|
||||||
pubSub.publish(topic.c_str(), bytes, numBytes, false);
|
pubSub.publish(topic.c_str(), bytes, numBytes, false);
|
||||||
@ -359,7 +359,7 @@ void MQTT::onSend(const meshtastic_MeshPacket &mp, ChannelIndex chIndex)
|
|||||||
// handle json topic
|
// handle json topic
|
||||||
auto jsonString = this->downstreamPacketToJson((meshtastic_MeshPacket *)&mp);
|
auto jsonString = this->downstreamPacketToJson((meshtastic_MeshPacket *)&mp);
|
||||||
if (jsonString.length() != 0) {
|
if (jsonString.length() != 0) {
|
||||||
String topicJson = jsonTopic + channelId + "/" + owner.id;
|
std::string topicJson = jsonTopic + channelId + "/" + owner.id;
|
||||||
LOG_INFO("JSON publish message to %s, %u bytes: %s\n", topicJson.c_str(), jsonString.length(),
|
LOG_INFO("JSON publish message to %s, %u bytes: %s\n", topicJson.c_str(), jsonString.length(),
|
||||||
jsonString.c_str());
|
jsonString.c_str());
|
||||||
pubSub.publish(topicJson.c_str(), jsonString.c_str(), false);
|
pubSub.publish(topicJson.c_str(), jsonString.c_str(), false);
|
||||||
@ -386,7 +386,7 @@ std::string MQTT::downstreamPacketToJson(meshtastic_MeshPacket *mp)
|
|||||||
{
|
{
|
||||||
// the created jsonObj is immutable after creation, so
|
// the created jsonObj is immutable after creation, so
|
||||||
// we need to do the heavy lifting before assembling it.
|
// we need to do the heavy lifting before assembling it.
|
||||||
String msgType;
|
std::string msgType;
|
||||||
JSONObject msgPayload;
|
JSONObject msgPayload;
|
||||||
JSONObject jsonObj;
|
JSONObject jsonObj;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user