A small footprint MQTT library
Dependents: STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more
Diff: mqtt_client.c
- Revision:
- 1:8dba42ff9701
- Parent:
- 0:ef4901974abc
- Child:
- 3:9b4e7158ca0d
--- a/mqtt_client.c Fri Apr 08 12:01:23 2016 -0700 +++ b/mqtt_client.c Sun Apr 24 16:40:45 2016 -0700 @@ -9,6 +9,7 @@ #include "azure_umqtt_c/mqtt_client.h" #include "azure_umqtt_c/mqtt_codec.h" +#include <time.h> #define KEEP_ALIVE_BUFFER_SEC 10 #define VARIABLE_HEADER_OFFSET 2 @@ -17,6 +18,7 @@ #define QOS_EXACTLY_ONCE_FLAG_MASK 0x4 #define DUPLICATE_FLAG_MASK 0x8 #define CONNECT_PACKET_MASK 0xf0 +#define TIME_MAX_BUFFER 16 static const char* FORMAT_HEX_CHAR = "0x%02x "; @@ -129,14 +131,30 @@ } } +static void getLogTime(char* timeResult, size_t len) +{ + if (timeResult != NULL) + { + time_t localTime = time(NULL); + struct tm* tmInfo = localtime(&localTime); + if (strftime(timeResult, len, "%H:%M:%S", tmInfo) == 0) + { + timeResult[0] = '\0'; + } + } +} + static void logOutgoingingMsgTrace(MQTT_CLIENT* clientData, const uint8_t* data, size_t length) { if (clientData != NULL && data != NULL && length > 0 && clientData->logTrace) { - LOG(clientData->logFunc, 0, "-> %s: ", retrievePacketType((unsigned char)data[0])); + char tmBuffer[TIME_MAX_BUFFER]; + getLogTime(tmBuffer, TIME_MAX_BUFFER); + + LOG(clientData->logFunc, 0, "-> %s %s: ", tmBuffer, retrievePacketType((unsigned char)data[0])); for (size_t index = 0; index < length; index++) { - LOG(clientData->logFunc, 0, (char*)FORMAT_HEX_CHAR, (unsigned char)data[index]); + LOG(clientData->logFunc, 0, (char*)FORMAT_HEX_CHAR, data[index]); } LOG(clientData->logFunc, LOG_LINE, ""); } @@ -146,10 +164,13 @@ { if (clientData != NULL && data != NULL && length > 0 && clientData->logTrace) { - LOG(clientData->logFunc, 0, "<- %s: 0x%02x 0x%02x ", retrievePacketType((unsigned char)packet), (unsigned char)(packet | flags), length); + char tmBuffer[TIME_MAX_BUFFER]; + getLogTime(tmBuffer, TIME_MAX_BUFFER); + + LOG(clientData->logFunc, 0, "<- %s %s: 0x%02x 0x%02x ", tmBuffer, retrievePacketType((unsigned char)packet), (unsigned char)(packet | flags), length); for (size_t index = 0; index < length; index++) { - LOG(clientData->logFunc, 0, (char*)FORMAT_HEX_CHAR, (unsigned char)data[index]); + LOG(clientData->logFunc, 0, (char*)FORMAT_HEX_CHAR, data[index]); } LOG(clientData->logFunc, LOG_LINE, ""); }