mqtt: only publish uplink_enabled channels

1.2-legacy
Kevin Hester 2021-04-05 07:57:06 +08:00
rodzic e84edc676f
commit 55b8314a2a
2 zmienionych plików z 11 dodań i 5 usunięć

Wyświetl plik

@ -29,7 +29,6 @@ class Channels
int16_t hashes[MAX_NUM_CHANNELS];
public:
/// Well known channel names
static const char *adminChannel, *gpioChannel, *serialChannel;
@ -43,8 +42,15 @@ class Channels
*/
void setChannel(const Channel &c);
/** Return a human friendly name for this channel (and expand any short strings as needed)
*/
const char *getName(size_t chIndex);
/**
* Return a globally unique channel ID usable with MQTT.
*/
const char *getGlobalId(size_t chIndex) { return getName(chIndex); } // FIXME, not correct
/** The index of the primary channel */
ChannelIndex getPrimaryIndex() const { return primaryIndex; }

Wyświetl plik

@ -109,11 +109,11 @@ int32_t MQTT::runOnce()
void MQTT::onSend(const MeshPacket &mp, ChannelIndex chIndex)
{
// don't bother sending if not connected...
if (pubSub.connected()) {
// FIXME - check uplink enabled
auto &ch = channels.getByIndex(chIndex);
const char *channelId = channels.getName(chIndex); // FIXME, for now we just use the human name for the channel
// don't bother sending if not connected...
if (pubSub.connected() && ch.settings.uplink_enabled) {
const char *channelId = channels.getGlobalId(chIndex); // FIXME, for now we just use the human name for the channel
ServiceEnvelope env = ServiceEnvelope_init_default;
env.channel_id = (char *)channelId;