This commit is contained in:
2020-11-13 12:37:17 +01:00
parent 11d4a046e1
commit 477f3e2e3f
4 changed files with 26 additions and 26 deletions

View File

@ -17,24 +17,24 @@ int clientConnect(client_t *client, uint8_t *host, uint16_t port) {
int8_t res = socket(client->sockNum, Sn_MR_TCP, port, SF_IO_NONBLOCK); int8_t res = socket(client->sockNum, Sn_MR_TCP, port, SF_IO_NONBLOCK);
if (res != client->sockNum) { if (res != client->sockNum) {
close(client->sockNum); close(client->sockNum);
return INVALID_RESPONSE; return PSC_INVALID_RESPONSE;
} }
logMsg("clientConnect: socket initialized"); logMsg("clientConnect: socket initialized");
res = connect(client->sockNum, host, port); res = connect(client->sockNum, host, port);
if (res != SOCK_BUSY) { if (res != SOCK_BUSY) {
close(client->sockNum); close(client->sockNum);
return INVALID_RESPONSE; return PSC_INVALID_RESPONSE;
} }
uint32_t startTime = HAL_GetTick(); uint32_t startTime = HAL_GetTick();
while (startTime + TIMEOUT_MS > HAL_GetTick()) { while (startTime + PSC_TIMEOUT_MS > HAL_GetTick()) {
uint8_t sockState = getSn_SR(client->sockNum); uint8_t sockState = getSn_SR(client->sockNum);
if (sockState == SOCK_ESTABLISHED) { if (sockState == SOCK_ESTABLISHED) {
logMsg("clientConnect: connection established"); logMsg("clientConnect: connection established");
return SUCCESS; return PSC_SUCCESS;
} }
} }
return TIMED_OUT; return PSC_TIMED_OUT;
} }
int clientAvailable(client_t *client) { int clientAvailable(client_t *client) {
@ -50,7 +50,7 @@ void clientStop(client_t *client) {
} else { } else {
bool successfullyClosed = false; bool successfullyClosed = false;
uint32_t startTime = HAL_GetTick(); uint32_t startTime = HAL_GetTick();
while (startTime + TIMEOUT_MS > HAL_GetTick()) { while (startTime + PSC_TIMEOUT_MS > HAL_GetTick()) {
uint8_t sockState = getSn_SR(client->sockNum); uint8_t sockState = getSn_SR(client->sockNum);
if (sockState == SOCK_CLOSED) { if (sockState == SOCK_CLOSED) {
logMsg("clientStop: connection closed"); logMsg("clientStop: connection closed");

View File

@ -14,13 +14,13 @@
#include <stdbool.h> #include <stdbool.h>
const int SUCCESS = 1; #define PSC_SUCCESS 1
const int TIMED_OUT = -1; #define PSC_TIMED_OUT -1
const int INVALID_SERVER = -2; #define PSC_INVALID_SERVER -2
const int TRUNCATED = -3; #define PSC_TRUNCATED -3
const int INVALID_RESPONSE = -4; #define PSC_INVALID_RESPONSE -4
const uint32_t TIMEOUT_MS = 1000; #define PSC_TIMEOUT_MS 1000
typedef struct { typedef struct {

View File

@ -150,14 +150,14 @@ void mqttClientInit(mqttClient_t *mqttClient, client_t *client, callback_t callb
memset(mqttClient->buffer, 0, mqttClient->bufferSize); memset(mqttClient->buffer, 0, mqttClient->bufferSize);
} }
bool connect(mqttClient_t *mqttClient, bool mqttConnect(mqttClient_t *mqttClient,
uint8_t *address, uint16_t port, uint8_t *address, uint16_t port,
const char *id, const char *id,
const char *user, const char *pass, const char *user, const char *pass,
const char *willTopic, uint8_t willQos, const char *willTopic, uint8_t willQos,
bool willRetain, const char *willMessage, bool willRetain, const char *willMessage,
bool cleanSession) { bool cleanSession) {
if (!connected(mqttClient)) { if (!mqttConnected(mqttClient)) {
int result = 0; int result = 0;
if(clientConnected(mqttClient->client)) { if(clientConnected(mqttClient->client)) {
@ -259,7 +259,7 @@ bool connect(mqttClient_t *mqttClient,
return true; return true;
} }
void disconnect(mqttClient_t *mqttClient) { void mqttDisconnect(mqttClient_t *mqttClient) {
mqttClient->buffer[0] = MQTTDISCONNECT; mqttClient->buffer[0] = MQTTDISCONNECT;
mqttClient->buffer[1] = 0; mqttClient->buffer[1] = 0;
clientWrite(mqttClient->client, mqttClient->buffer, 2); clientWrite(mqttClient->client, mqttClient->buffer, 2);
@ -269,8 +269,8 @@ void disconnect(mqttClient_t *mqttClient) {
mqttClient->lastInActivity = mqttClient->lastOutActivity = millis(); mqttClient->lastInActivity = mqttClient->lastOutActivity = millis();
} }
bool loop(mqttClient_t *mqttClient) { bool mqttLoop(mqttClient_t *mqttClient) {
if (connected(mqttClient)) { if (mqttConnected(mqttClient)) {
uint32_t t = millis(); uint32_t t = millis();
if ((t - mqttClient->lastInActivity > mqttClient->keepAlive*1000UL) || if ((t - mqttClient->lastInActivity > mqttClient->keepAlive*1000UL) ||
(t - mqttClient->lastOutActivity > mqttClient->keepAlive*1000UL)) { (t - mqttClient->lastOutActivity > mqttClient->keepAlive*1000UL)) {
@ -325,7 +325,7 @@ bool loop(mqttClient_t *mqttClient) {
} else if (type == MQTTPINGRESP) { } else if (type == MQTTPINGRESP) {
mqttClient->pingOutstanding = false; mqttClient->pingOutstanding = false;
} }
} else if (!connected(mqttClient)) { } else if (!mqttConnected(mqttClient)) {
// readPacket has closed the connection // readPacket has closed the connection
return false; return false;
} }
@ -335,7 +335,7 @@ bool loop(mqttClient_t *mqttClient) {
return false; return false;
} }
bool connected(mqttClient_t *mqttClient) { bool mqttConnected(mqttClient_t *mqttClient) {
bool rc; bool rc;
if (mqttClient->client == NULL ) { if (mqttClient->client == NULL ) {
rc = false; rc = false;
@ -358,7 +358,7 @@ bool publish(mqttClient_t *mqttClient,
const char *topic, const char *topic,
const uint8_t *payload, uint16_t plength, const uint8_t *payload, uint16_t plength,
bool retained) { bool retained) {
if (connected(mqttClient)) { if (mqttConnected(mqttClient)) {
if (mqttClient->bufferSize < MQTT_MAX_HEADER_SIZE + 2 + strnlen(topic, mqttClient->bufferSize) + plength) { if (mqttClient->bufferSize < MQTT_MAX_HEADER_SIZE + 2 + strnlen(topic, mqttClient->bufferSize) + plength) {
// Too long // Too long
return false; return false;
@ -395,7 +395,7 @@ bool subscribe(mqttClient_t *mqttClient,
// Too long // Too long
return false; return false;
} }
if (connected(mqttClient)) { if (mqttConnected(mqttClient)) {
// Leave room in the buffer for header and variable length field // Leave room in the buffer for header and variable length field
uint16_t length = MQTT_MAX_HEADER_SIZE; uint16_t length = MQTT_MAX_HEADER_SIZE;
mqttClient->nextMsgId++; mqttClient->nextMsgId++;
@ -421,7 +421,7 @@ bool unsubscribe(mqttClient_t *mqttClient,
// Too long // Too long
return false; return false;
} }
if (connected(mqttClient)) { if (mqttConnected(mqttClient)) {
uint16_t length = MQTT_MAX_HEADER_SIZE; uint16_t length = MQTT_MAX_HEADER_SIZE;
mqttClient->nextMsgId++; mqttClient->nextMsgId++;
if (mqttClient->nextMsgId == 0) { if (mqttClient->nextMsgId == 0) {

View File

@ -100,7 +100,7 @@ typedef struct {
void mqttClientInit(mqttClient_t *mqttClient, client_t *client, callback_t callback); void mqttClientInit(mqttClient_t *mqttClient, client_t *client, callback_t callback);
bool connect(mqttClient_t *mqttClient, bool mqttConnect(mqttClient_t *mqttClient,
uint8_t *address, uint16_t port, uint8_t *address, uint16_t port,
const char *id, const char *id,
const char *user, const char *pass, const char *user, const char *pass,
@ -108,7 +108,7 @@ bool connect(mqttClient_t *mqttClient,
bool willRetain, const char *willMessage, bool willRetain, const char *willMessage,
bool cleanSession); bool cleanSession);
void disconnect(mqttClient_t *mqttClient); void mqttDisconnect(mqttClient_t *mqttClient);
bool publish(mqttClient_t *mqttClient, bool publish(mqttClient_t *mqttClient,
const char *topic, const char *topic,
@ -120,8 +120,8 @@ bool subscribe(mqttClient_t *mqttClient,
bool unsubscribe(mqttClient_t *mqttClient, bool unsubscribe(mqttClient_t *mqttClient,
const char* topic); const char* topic);
bool loop(mqttClient_t *mqttClient); bool mqttLoop(mqttClient_t *mqttClient);
bool connected(mqttClient_t *mqttClient); bool mqttConnected(mqttClient_t *mqttClient);
#endif // _PUBSUBC_H_ #endif // _PUBSUBC_H_