mqtt: only publish uplink_enabled channels

This commit is contained in:
Kevin Hester 2021-04-05 07:57:06 +08:00
parent e84edc676f
commit 55b8314a2a
2 changed files with 11 additions and 5 deletions

View File

@ -29,7 +29,6 @@ class Channels
int16_t hashes[MAX_NUM_CHANNELS]; int16_t hashes[MAX_NUM_CHANNELS];
public: public:
/// Well known channel names /// Well known channel names
static const char *adminChannel, *gpioChannel, *serialChannel; static const char *adminChannel, *gpioChannel, *serialChannel;
@ -43,8 +42,15 @@ class Channels
*/ */
void setChannel(const Channel &c); 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); 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 */ /** The index of the primary channel */
ChannelIndex getPrimaryIndex() const { return primaryIndex; } ChannelIndex getPrimaryIndex() const { return primaryIndex; }

View File

@ -109,11 +109,11 @@ int32_t MQTT::runOnce()
void MQTT::onSend(const MeshPacket &mp, ChannelIndex chIndex) void MQTT::onSend(const MeshPacket &mp, ChannelIndex chIndex)
{ {
// don't bother sending if not connected... auto &ch = channels.getByIndex(chIndex);
if (pubSub.connected()) {
// FIXME - check uplink enabled
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; ServiceEnvelope env = ServiceEnvelope_init_default;
env.channel_id = (char *)channelId; env.channel_id = (char *)channelId;