Skip to content

Commit 82fb168

Browse files
committed
Split _dataTopic into In and Out
1 parent 1ff100e commit 82fb168

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

Diff for: src/ArduinoCloud.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ void ArduinoCloudClass::mqttClientBegin(Client& net)
7373
// MQTT topics definition
7474
_stdoutTopic = "/a/d/" + _id + "/s/o";
7575
_stdinTopic = "/a/d/" + _id + "/s/i";
76+
_dataTopicIn = "/a/d/" + _id + "/e/i";
77+
_dataTopicOut = "/a/d/" + _id + "/e/o";
7678

7779
// use onMessage as callback for received mqtt messages
7880
_mqttClient.onMessageAdvanced(ArduinoCloudClass::onMessage);
@@ -90,7 +92,7 @@ int ArduinoCloudClass::connect()
9092
return 0;
9193
}
9294
_mqttClient.subscribe(_stdinTopic);
93-
_mqttClient.subscribe(_dataTopic);
95+
_mqttClient.subscribe(_dataTopicIn);
9496

9597
return 1;
9698
}
@@ -142,7 +144,8 @@ void ArduinoCloudClass::poll(int reconnectionMaxRetries, int reconnectionTimeout
142144

143145
// MTTQClient connected!, poll() used to retrieve data from MQTT broker
144146
_mqttClient.loop();
145-
uint8_t data[1024];
147+
148+
uint8_t data[MQTT_BUFFER_SIZE];
146149
int length = Thing.poll(data, sizeof(data));
147150
if (length > 0) {
148151
writeProperties(data, length);
@@ -168,7 +171,7 @@ int ArduinoCloudClass::connected()
168171

169172
int ArduinoCloudClass::writeProperties(const byte data[], int length)
170173
{
171-
return _mqttClient.publish(_dataTopic.c_str(), (const char*)data, length);
174+
return _mqttClient.publish(_dataTopicOut.c_str(), (const char*)data, length);
172175
}
173176

174177
int ArduinoCloudClass::writeStdout(const byte data[], int length)
@@ -186,7 +189,7 @@ void ArduinoCloudClass::handleMessage(char topic[], char bytes[], int length)
186189
if (_stdinTopic == topic) {
187190
CloudSerial.appendStdin((uint8_t*)bytes, length);
188191
}
189-
if (_dataTopic == topic) {
192+
if (_dataTopicIn == topic) {
190193
Thing.decode((uint8_t*)bytes, length);
191194
}
192195
}

Diff for: src/ArduinoCloudV2.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ class ArduinoCloudClass {
7777
// Class attribute to define MTTQ topics 2 for stdIn/out and 2 for data, in order to avoid getting previous pupblished payload
7878
String _stdinTopic;
7979
String _stdoutTopic;
80-
String _dataTopic;
80+
String _dataTopicOut;
81+
String _dataTopicIn;
8182
String _otaTopic;
8283
};
8384

0 commit comments

Comments
 (0)