Skip to content

Commit 70ccb72

Browse files
committed
Add "DEACT" error;
Correct printf placeholder params for unsigned;
1 parent 06738ae commit 70ccb72

File tree

4 files changed

+193
-150
lines changed

4 files changed

+193
-150
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## [2.1.1] - 2021-08-07
2+
- Add "DEACT" error;
3+
- Correct printf placeholder params for unsigned;
4+
15
## [2.1.0] - 2021-05-06
26
- Corrected delay on PUB SUB functions;
37
- Added publishing functions (MQTT_PubUint8, MQTT_PubUint16, MQTT_PubDouble, etc ) for numeric types:
Lines changed: 25 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,27 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22
<project>
3-
4-
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1192067357" name="Debug">
5-
6-
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
7-
8-
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
9-
10-
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
11-
12-
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
13-
14-
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
15-
16-
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1612723618780122445" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
17-
18-
<language-scope id="org.eclipse.cdt.core.gcc"/>
19-
20-
<language-scope id="org.eclipse.cdt.core.g++"/>
21-
22-
</provider>
23-
24-
</extension>
25-
26-
</configuration>
27-
28-
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.908143241" name="Release">
29-
30-
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
31-
32-
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
33-
34-
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
35-
36-
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
37-
38-
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
39-
40-
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1612723618780122445" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
41-
42-
<language-scope id="org.eclipse.cdt.core.gcc"/>
43-
44-
<language-scope id="org.eclipse.cdt.core.g++"/>
45-
46-
</provider>
47-
48-
</extension>
49-
50-
</configuration>
51-
52-
</project>
3+
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1192067357" name="Debug">
4+
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
5+
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
6+
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
7+
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
8+
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
9+
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-151404934016367691" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
10+
<language-scope id="org.eclipse.cdt.core.gcc"/>
11+
<language-scope id="org.eclipse.cdt.core.g++"/>
12+
</provider>
13+
</extension>
14+
</configuration>
15+
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.908143241" name="Release">
16+
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
17+
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
18+
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
19+
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
20+
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
21+
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-151404934016367691" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
22+
<language-scope id="org.eclipse.cdt.core.gcc"/>
23+
<language-scope id="org.eclipse.cdt.core.g++"/>
24+
</provider>
25+
</extension>
26+
</configuration>
27+
</project>

examples/MQTTSUB/Core/Src/MQTTSim800.c

Lines changed: 82 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*
1313
*/
1414

15-
1615
/*
1716
* -----------------------------------------------------------------------------------------------------------------------------------------------
1817
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
@@ -58,40 +57,54 @@ uint16_t mqtt_index = 0;
5857
* @param NONE
5958
* @return NONE
6059
*/
61-
void Sim800_RxCallBack(void) {
60+
void Sim800_RxCallBack(void)
61+
{
6262
rx_buffer[rx_index++] = rx_data;
6363

64-
if (SIM800.mqttServer.connect == 0) {
65-
if (strstr((char *) rx_buffer, "\r\n") != NULL && rx_index == 2) {
64+
if (SIM800.mqttServer.connect == 0)
65+
{
66+
if (strstr((char *)rx_buffer, "\r\n") != NULL && rx_index == 2)
67+
{
6668
rx_index = 0;
67-
} else if (strstr((char *) rx_buffer, "\r\n") != NULL) {
69+
}
70+
else if (strstr((char *)rx_buffer, "\r\n") != NULL)
71+
{
6872
memcpy(mqtt_buffer, rx_buffer, sizeof(rx_buffer));
6973
clearRxBuffer();
70-
if (strstr(mqtt_buffer, "DY CONNECT\r\n")) {
74+
if (strstr(mqtt_buffer, "DY CONNECT\r\n"))
75+
{
7176
SIM800.mqttServer.connect = 0;
72-
} else if (strstr(mqtt_buffer, "CONNECT\r\n")) {
77+
}
78+
else if (strstr(mqtt_buffer, "CONNECT\r\n"))
79+
{
7380
SIM800.mqttServer.connect = 1;
7481
}
7582
}
7683
}
77-
if (strstr((char *) rx_buffer, "CLOSED\r\n") || strstr((char *) rx_buffer, "ERROR\r\n")) {
84+
if (strstr((char *)rx_buffer, "CLOSED\r\n") || strstr((char *)rx_buffer, "ERROR\r\n") || strstr((char *)rx_buffer, "DEACT\r\n"))
85+
{
7886
SIM800.mqttServer.connect = 0;
7987
}
80-
if (SIM800.mqttServer.connect == 1 && rx_data == 48) {
88+
if (SIM800.mqttServer.connect == 1 && rx_data == 48)
89+
{
8190
mqtt_receive = 1;
8291
}
83-
if (mqtt_receive == 1) {
92+
if (mqtt_receive == 1)
93+
{
8494
mqtt_buffer[mqtt_index++] = rx_data;
85-
if (mqtt_index > 1 && mqtt_index - 1 > mqtt_buffer[1]) {
86-
MQTT_Receive((unsigned char *) mqtt_buffer);
95+
if (mqtt_index > 1 && mqtt_index - 1 > mqtt_buffer[1])
96+
{
97+
MQTT_Receive((unsigned char *)mqtt_buffer);
8798
clearRxBuffer();
8899
clearMqttBuffer();
89100
}
90-
if (mqtt_index >= sizeof(mqtt_buffer)) {
101+
if (mqtt_index >= sizeof(mqtt_buffer))
102+
{
91103
clearMqttBuffer();
92104
}
93105
}
94-
if (rx_index >= sizeof(mqtt_buffer)) {
106+
if (rx_index >= sizeof(mqtt_buffer))
107+
{
95108
clearRxBuffer();
96109
clearMqttBuffer();
97110
}
@@ -103,7 +116,8 @@ void Sim800_RxCallBack(void) {
103116
* @param NONE
104117
* @return NONE
105118
*/
106-
void clearRxBuffer(void) {
119+
void clearRxBuffer(void)
120+
{
107121
rx_index = 0;
108122
memset(rx_buffer, 0, sizeof(rx_buffer));
109123
}
@@ -113,7 +127,8 @@ void clearRxBuffer(void) {
113127
* @param NONE
114128
* @return NONE
115129
*/
116-
void clearMqttBuffer(void) {
130+
void clearMqttBuffer(void)
131+
{
117132
mqtt_receive = 0;
118133
mqtt_index = 0;
119134
memset(mqtt_buffer, 0, sizeof(mqtt_buffer));
@@ -126,17 +141,19 @@ void clearMqttBuffer(void) {
126141
* @param delay to be used to the set pause to the reply
127142
* @return error, 0 is OK
128143
*/
129-
int SIM800_SendCommand(char *command, char *reply, uint16_t delay) {
130-
HAL_UART_Transmit_IT(UART_SIM800, (unsigned char *) command,
131-
(uint16_t) strlen(command));
144+
int SIM800_SendCommand(char *command, char *reply, uint16_t delay)
145+
{
146+
HAL_UART_Transmit_IT(UART_SIM800, (unsigned char *)command,
147+
(uint16_t)strlen(command));
132148

133149
#if FREERTOS == 1
134150
osDelay(delay);
135151
#else
136152
HAL_Delay(delay);
137153
#endif
138154

139-
if (strstr(mqtt_buffer, reply) != NULL) {
155+
if (strstr(mqtt_buffer, reply) != NULL)
156+
{
140157
clearRxBuffer();
141158
return 0;
142159
}
@@ -149,7 +166,8 @@ int SIM800_SendCommand(char *command, char *reply, uint16_t delay) {
149166
* @param NONE
150167
* @return error status, 0 - OK
151168
*/
152-
int MQTT_Init(void) {
169+
int MQTT_Init(void)
170+
{
153171
SIM800.mqttServer.connect = 0;
154172
int error = 0;
155173
char str[32] = {0};
@@ -167,10 +185,13 @@ int MQTT_Init(void) {
167185

168186
error += SIM800_SendCommand("AT+CIICR\r\n", "OK\r\n", CMD_DELAY);
169187
SIM800_SendCommand("AT+CIFSR\r\n", "", CMD_DELAY);
170-
if (error == 0) {
188+
if (error == 0)
189+
{
171190
MQTT_Connect();
172191
return error;
173-
} else {
192+
}
193+
else
194+
{
174195
return error;
175196
}
176197
}
@@ -180,7 +201,8 @@ int MQTT_Init(void) {
180201
* @param NONE
181202
* @return NONE
182203
*/
183-
void MQTT_Connect(void) {
204+
void MQTT_Connect(void)
205+
{
184206
SIM800.mqttReceive.newEvent = 0;
185207
SIM800.mqttServer.connect = 0;
186208
char str[128] = {0};
@@ -192,7 +214,8 @@ void MQTT_Connect(void) {
192214
#else
193215
HAL_Delay(5000);
194216
#endif
195-
if (SIM800.mqttServer.connect == 1) {
217+
if (SIM800.mqttServer.connect == 1)
218+
{
196219
MQTTPacket_connectData datas = MQTTPacket_connectData_initializer;
197220
datas.username.cstring = SIM800.mqttClient.username;
198221
datas.password.cstring = SIM800.mqttClient.pass;
@@ -215,14 +238,15 @@ void MQTT_Connect(void) {
215238
* @param payload to be used to the set message for topic
216239
* @return NONE
217240
*/
218-
void MQTT_Pub(char *topic, char *payload) {
241+
void MQTT_Pub(char *topic, char *payload)
242+
{
219243
unsigned char buf[256] = {0};
220244

221245
MQTTString topicString = MQTTString_initializer;
222246
topicString.cstring = topic;
223247

224248
int mqtt_len = MQTTSerialize_publish(buf, sizeof(buf), 0, 0, 0, 0,
225-
topicString, (unsigned char *) payload, (int) strlen(payload));
249+
topicString, (unsigned char *)payload, (int)strlen(payload));
226250
HAL_UART_Transmit_IT(UART_SIM800, buf, mqtt_len);
227251
#if FREERTOS == 1
228252
osDelay(100);
@@ -237,10 +261,11 @@ void MQTT_Pub(char *topic, char *payload) {
237261
* @param payload to be used to the set message for topic
238262
* @return NONE
239263
*/
240-
void MQTT_PubUint8(char *topic, uint8_t payload) {
241-
char str[32] = { 0 };
242-
sprintf(str, "%d", payload);
243-
MQTT_Pub(topic, str);
264+
void MQTT_PubUint8(char *topic, uint8_t payload)
265+
{
266+
char str[32] = {0};
267+
sprintf(str, "%u", payload);
268+
MQTT_Pub(topic, str);
244269
}
245270

246271
/**
@@ -249,10 +274,11 @@ void MQTT_PubUint8(char *topic, uint8_t payload) {
249274
* @param payload to be used to the set message for topic
250275
* @return NONE
251276
*/
252-
void MQTT_PubUint16(char *topic, uint16_t payload) {
253-
char str[32] = { 0 };
254-
sprintf(str, "%d", payload);
255-
MQTT_Pub(topic, str);
277+
void MQTT_PubUint16(char *topic, uint16_t payload)
278+
{
279+
char str[32] = {0};
280+
sprintf(str, "%u", payload);
281+
MQTT_Pub(topic, str);
256282
}
257283

258284
/**
@@ -261,10 +287,11 @@ void MQTT_PubUint16(char *topic, uint16_t payload) {
261287
* @param payload to be used to the set message for topic
262288
* @return NONE
263289
*/
264-
void MQTT_PubUint32(char *topic, uint32_t payload) {
265-
char str[32] = { 0 };
266-
sprintf(str, "%ld", payload);
267-
MQTT_Pub(topic, str);
290+
void MQTT_PubUint32(char *topic, uint32_t payload)
291+
{
292+
char str[32] = {0};
293+
sprintf(str, "%lu", payload);
294+
MQTT_Pub(topic, str);
268295
}
269296

270297
/**
@@ -273,10 +300,11 @@ void MQTT_PubUint32(char *topic, uint32_t payload) {
273300
* @param payload to be used to the set message for topic
274301
* @return NONE
275302
*/
276-
void MQTT_PubFloat(char *topic, float payload) {
277-
char str[32] = { 0 };
278-
sprintf(str, "%f", payload);
279-
MQTT_Pub(topic, str);
303+
void MQTT_PubFloat(char *topic, float payload)
304+
{
305+
char str[32] = {0};
306+
sprintf(str, "%f", payload);
307+
MQTT_Pub(topic, str);
280308
}
281309

282310
/**
@@ -285,18 +313,20 @@ void MQTT_PubFloat(char *topic, float payload) {
285313
* @param payload to be used to the set message for topic
286314
* @return NONE
287315
*/
288-
void MQTT_PubDouble(char *topic, double payload) {
289-
char str[32] = { 0 };
290-
sprintf(str, "%f", payload);
291-
MQTT_Pub(topic, str);
316+
void MQTT_PubDouble(char *topic, double payload)
317+
{
318+
char str[32] = {0};
319+
sprintf(str, "%f", payload);
320+
MQTT_Pub(topic, str);
292321
}
293322

294323
/**
295324
* Send a PINGREQ to the MQTT broker (active session)
296325
* @param NONE
297326
* @return NONE
298327
*/
299-
void MQTT_PingReq(void) {
328+
void MQTT_PingReq(void)
329+
{
300330
unsigned char buf[16] = {0};
301331

302332
int mqtt_len = MQTTSerialize_pingreq(buf, sizeof(buf));
@@ -308,7 +338,8 @@ void MQTT_PingReq(void) {
308338
* @param topic to be used to the set topic
309339
* @return NONE
310340
*/
311-
void MQTT_Sub(char *topic) {
341+
void MQTT_Sub(char *topic)
342+
{
312343
unsigned char buf[256] = {0};
313344

314345
MQTTString topicString = MQTTString_initializer;
@@ -329,7 +360,8 @@ void MQTT_Sub(char *topic) {
329360
* @param receive mqtt bufer
330361
* @return NONE
331362
*/
332-
void MQTT_Receive(unsigned char *buf) {
363+
void MQTT_Receive(unsigned char *buf)
364+
{
333365
memset(SIM800.mqttReceive.topic, 0, sizeof(SIM800.mqttReceive.topic));
334366
memset(SIM800.mqttReceive.payload, 0, sizeof(SIM800.mqttReceive.payload));
335367
MQTTString receivedTopic;

0 commit comments

Comments
 (0)