Skip to content

Commit

Permalink
Add "DEACT" error;
Browse files Browse the repository at this point in the history
Correct printf placeholder params for unsigned;
  • Loading branch information
leech001 committed Aug 7, 2021
1 parent 06738ae commit 70ccb72
Show file tree
Hide file tree
Showing 4 changed files with 193 additions and 150 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [2.1.1] - 2021-08-07
- Add "DEACT" error;
- Correct printf placeholder params for unsigned;

## [2.1.0] - 2021-05-06
- Corrected delay on PUB SUB functions;
- Added publishing functions (MQTT_PubUint8, MQTT_PubUint16, MQTT_PubDouble, etc ) for numeric types:
Expand Down
75 changes: 25 additions & 50 deletions examples/MQTTSUB/.settings/language.settings.xml
Original file line number Diff line number Diff line change
@@ -1,52 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>

<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1192067357" name="Debug">

<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">

<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>

<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>

<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>

<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>

<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">

<language-scope id="org.eclipse.cdt.core.gcc"/>

<language-scope id="org.eclipse.cdt.core.g++"/>

</provider>

</extension>

</configuration>

<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.908143241" name="Release">

<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">

<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>

<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>

<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>

<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>

<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">

<language-scope id="org.eclipse.cdt.core.gcc"/>

<language-scope id="org.eclipse.cdt.core.g++"/>

</provider>

</extension>

</configuration>

</project>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1192067357" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<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">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.908143241" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<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">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
</project>
132 changes: 82 additions & 50 deletions examples/MQTTSUB/Core/Src/MQTTSim800.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
*
*/


/*
* -----------------------------------------------------------------------------------------------------------------------------------------------
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Expand Down Expand Up @@ -58,40 +57,54 @@ uint16_t mqtt_index = 0;
* @param NONE
* @return NONE
*/
void Sim800_RxCallBack(void) {
void Sim800_RxCallBack(void)
{
rx_buffer[rx_index++] = rx_data;

if (SIM800.mqttServer.connect == 0) {
if (strstr((char *) rx_buffer, "\r\n") != NULL && rx_index == 2) {
if (SIM800.mqttServer.connect == 0)
{
if (strstr((char *)rx_buffer, "\r\n") != NULL && rx_index == 2)
{
rx_index = 0;
} else if (strstr((char *) rx_buffer, "\r\n") != NULL) {
}
else if (strstr((char *)rx_buffer, "\r\n") != NULL)
{
memcpy(mqtt_buffer, rx_buffer, sizeof(rx_buffer));
clearRxBuffer();
if (strstr(mqtt_buffer, "DY CONNECT\r\n")) {
if (strstr(mqtt_buffer, "DY CONNECT\r\n"))
{
SIM800.mqttServer.connect = 0;
} else if (strstr(mqtt_buffer, "CONNECT\r\n")) {
}
else if (strstr(mqtt_buffer, "CONNECT\r\n"))
{
SIM800.mqttServer.connect = 1;
}
}
}
if (strstr((char *) rx_buffer, "CLOSED\r\n") || strstr((char *) rx_buffer, "ERROR\r\n")) {
if (strstr((char *)rx_buffer, "CLOSED\r\n") || strstr((char *)rx_buffer, "ERROR\r\n") || strstr((char *)rx_buffer, "DEACT\r\n"))
{
SIM800.mqttServer.connect = 0;
}
if (SIM800.mqttServer.connect == 1 && rx_data == 48) {
if (SIM800.mqttServer.connect == 1 && rx_data == 48)
{
mqtt_receive = 1;
}
if (mqtt_receive == 1) {
if (mqtt_receive == 1)
{
mqtt_buffer[mqtt_index++] = rx_data;
if (mqtt_index > 1 && mqtt_index - 1 > mqtt_buffer[1]) {
MQTT_Receive((unsigned char *) mqtt_buffer);
if (mqtt_index > 1 && mqtt_index - 1 > mqtt_buffer[1])
{
MQTT_Receive((unsigned char *)mqtt_buffer);
clearRxBuffer();
clearMqttBuffer();
}
if (mqtt_index >= sizeof(mqtt_buffer)) {
if (mqtt_index >= sizeof(mqtt_buffer))
{
clearMqttBuffer();
}
}
if (rx_index >= sizeof(mqtt_buffer)) {
if (rx_index >= sizeof(mqtt_buffer))
{
clearRxBuffer();
clearMqttBuffer();
}
Expand All @@ -103,7 +116,8 @@ void Sim800_RxCallBack(void) {
* @param NONE
* @return NONE
*/
void clearRxBuffer(void) {
void clearRxBuffer(void)
{
rx_index = 0;
memset(rx_buffer, 0, sizeof(rx_buffer));
}
Expand All @@ -113,7 +127,8 @@ void clearRxBuffer(void) {
* @param NONE
* @return NONE
*/
void clearMqttBuffer(void) {
void clearMqttBuffer(void)
{
mqtt_receive = 0;
mqtt_index = 0;
memset(mqtt_buffer, 0, sizeof(mqtt_buffer));
Expand All @@ -126,17 +141,19 @@ void clearMqttBuffer(void) {
* @param delay to be used to the set pause to the reply
* @return error, 0 is OK
*/
int SIM800_SendCommand(char *command, char *reply, uint16_t delay) {
HAL_UART_Transmit_IT(UART_SIM800, (unsigned char *) command,
(uint16_t) strlen(command));
int SIM800_SendCommand(char *command, char *reply, uint16_t delay)
{
HAL_UART_Transmit_IT(UART_SIM800, (unsigned char *)command,
(uint16_t)strlen(command));

#if FREERTOS == 1
osDelay(delay);
#else
HAL_Delay(delay);
#endif

if (strstr(mqtt_buffer, reply) != NULL) {
if (strstr(mqtt_buffer, reply) != NULL)
{
clearRxBuffer();
return 0;
}
Expand All @@ -149,7 +166,8 @@ int SIM800_SendCommand(char *command, char *reply, uint16_t delay) {
* @param NONE
* @return error status, 0 - OK
*/
int MQTT_Init(void) {
int MQTT_Init(void)
{
SIM800.mqttServer.connect = 0;
int error = 0;
char str[32] = {0};
Expand All @@ -167,10 +185,13 @@ int MQTT_Init(void) {

error += SIM800_SendCommand("AT+CIICR\r\n", "OK\r\n", CMD_DELAY);
SIM800_SendCommand("AT+CIFSR\r\n", "", CMD_DELAY);
if (error == 0) {
if (error == 0)
{
MQTT_Connect();
return error;
} else {
}
else
{
return error;
}
}
Expand All @@ -180,7 +201,8 @@ int MQTT_Init(void) {
* @param NONE
* @return NONE
*/
void MQTT_Connect(void) {
void MQTT_Connect(void)
{
SIM800.mqttReceive.newEvent = 0;
SIM800.mqttServer.connect = 0;
char str[128] = {0};
Expand All @@ -192,7 +214,8 @@ void MQTT_Connect(void) {
#else
HAL_Delay(5000);
#endif
if (SIM800.mqttServer.connect == 1) {
if (SIM800.mqttServer.connect == 1)
{
MQTTPacket_connectData datas = MQTTPacket_connectData_initializer;
datas.username.cstring = SIM800.mqttClient.username;
datas.password.cstring = SIM800.mqttClient.pass;
Expand All @@ -215,14 +238,15 @@ void MQTT_Connect(void) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_Pub(char *topic, char *payload) {
void MQTT_Pub(char *topic, char *payload)
{
unsigned char buf[256] = {0};

MQTTString topicString = MQTTString_initializer;
topicString.cstring = topic;

int mqtt_len = MQTTSerialize_publish(buf, sizeof(buf), 0, 0, 0, 0,
topicString, (unsigned char *) payload, (int) strlen(payload));
topicString, (unsigned char *)payload, (int)strlen(payload));
HAL_UART_Transmit_IT(UART_SIM800, buf, mqtt_len);
#if FREERTOS == 1
osDelay(100);
Expand All @@ -237,10 +261,11 @@ void MQTT_Pub(char *topic, char *payload) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_PubUint8(char *topic, uint8_t payload) {
char str[32] = { 0 };
sprintf(str, "%d", payload);
MQTT_Pub(topic, str);
void MQTT_PubUint8(char *topic, uint8_t payload)
{
char str[32] = {0};
sprintf(str, "%u", payload);
MQTT_Pub(topic, str);
}

/**
Expand All @@ -249,10 +274,11 @@ void MQTT_PubUint8(char *topic, uint8_t payload) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_PubUint16(char *topic, uint16_t payload) {
char str[32] = { 0 };
sprintf(str, "%d", payload);
MQTT_Pub(topic, str);
void MQTT_PubUint16(char *topic, uint16_t payload)
{
char str[32] = {0};
sprintf(str, "%u", payload);
MQTT_Pub(topic, str);
}

/**
Expand All @@ -261,10 +287,11 @@ void MQTT_PubUint16(char *topic, uint16_t payload) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_PubUint32(char *topic, uint32_t payload) {
char str[32] = { 0 };
sprintf(str, "%ld", payload);
MQTT_Pub(topic, str);
void MQTT_PubUint32(char *topic, uint32_t payload)
{
char str[32] = {0};
sprintf(str, "%lu", payload);
MQTT_Pub(topic, str);
}

/**
Expand All @@ -273,10 +300,11 @@ void MQTT_PubUint32(char *topic, uint32_t payload) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_PubFloat(char *topic, float payload) {
char str[32] = { 0 };
sprintf(str, "%f", payload);
MQTT_Pub(topic, str);
void MQTT_PubFloat(char *topic, float payload)
{
char str[32] = {0};
sprintf(str, "%f", payload);
MQTT_Pub(topic, str);
}

/**
Expand All @@ -285,18 +313,20 @@ void MQTT_PubFloat(char *topic, float payload) {
* @param payload to be used to the set message for topic
* @return NONE
*/
void MQTT_PubDouble(char *topic, double payload) {
char str[32] = { 0 };
sprintf(str, "%f", payload);
MQTT_Pub(topic, str);
void MQTT_PubDouble(char *topic, double payload)
{
char str[32] = {0};
sprintf(str, "%f", payload);
MQTT_Pub(topic, str);
}

/**
* Send a PINGREQ to the MQTT broker (active session)
* @param NONE
* @return NONE
*/
void MQTT_PingReq(void) {
void MQTT_PingReq(void)
{
unsigned char buf[16] = {0};

int mqtt_len = MQTTSerialize_pingreq(buf, sizeof(buf));
Expand All @@ -308,7 +338,8 @@ void MQTT_PingReq(void) {
* @param topic to be used to the set topic
* @return NONE
*/
void MQTT_Sub(char *topic) {
void MQTT_Sub(char *topic)
{
unsigned char buf[256] = {0};

MQTTString topicString = MQTTString_initializer;
Expand All @@ -329,7 +360,8 @@ void MQTT_Sub(char *topic) {
* @param receive mqtt bufer
* @return NONE
*/
void MQTT_Receive(unsigned char *buf) {
void MQTT_Receive(unsigned char *buf)
{
memset(SIM800.mqttReceive.topic, 0, sizeof(SIM800.mqttReceive.topic));
memset(SIM800.mqttReceive.payload, 0, sizeof(SIM800.mqttReceive.payload));
MQTTString receivedTopic;
Expand Down
Loading

0 comments on commit 70ccb72

Please sign in to comment.