samples/net/mqtt: Update README file and code cleanup
Add instructions to download Paho's MQTT Library. Simplify if statement. Change-Id: Iba500c47a56896f9c9b726751933443a5318ced7 Signed-off-by: Flavio Santes <flavio.santes@intel.com>
This commit is contained in:
parent
7cd474b3d7
commit
2df4a0f9e2
|
@ -1,4 +1,4 @@
|
|||
MQTT sample using the Paho's MQTT Packet.
|
||||
MQTT sample using the Paho's MQTT Packet Library.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
@ -25,9 +25,20 @@ Building instructions
|
|||
See http://www.eclipse.org/paho/clients/c/embedded/ for more
|
||||
information about Paho's MQTT Packet Library.
|
||||
|
||||
* Modify the src/Makefile to reflect the location of your Paho
|
||||
repository. In this example, it is assumed that src/paho_mqtt_pkt
|
||||
is the directory that contains the MQTTPacket source code.
|
||||
Inside samples/net/paho_mqtt_client, run the following commands:
|
||||
|
||||
git clone https://git.eclipse.org/r/paho/org.eclipse.paho.mqtt.embedded-c paho
|
||||
|
||||
Now "paho" contains the MQTT Packet Library.
|
||||
|
||||
* make pristine && make are enough to build this sample.
|
||||
|
||||
* Follow the steps indicated here:
|
||||
|
||||
https://www.zephyrproject.org/doc/board/galileo.html
|
||||
|
||||
to load the binary into the Galileo Dev Board.
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
#include "mqtt.h"
|
||||
|
||||
#define RC_MSG(rc) (rc) == 0 ? "success" : "failure"
|
||||
#define STACKSIZE 1024
|
||||
#define STACK_SIZE 1024
|
||||
|
||||
uint8_t stack[STACKSIZE];
|
||||
uint8_t stack[STACK_SIZE];
|
||||
|
||||
struct net_context *ctx;
|
||||
|
||||
|
@ -72,6 +72,6 @@ void main(void)
|
|||
net_init();
|
||||
tcp_init(&ctx);
|
||||
|
||||
task_fiber_start(stack, STACKSIZE, (nano_fiber_entry_t)fiber,
|
||||
task_fiber_start(stack, STACK_SIZE, (nano_fiber_entry_t)fiber,
|
||||
0, 0, 7, 0);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <errno.h>
|
||||
|
||||
#include "mqtt.h"
|
||||
#include "tcp.h"
|
||||
|
||||
#include "MQTTPacket.h"
|
||||
#include "MQTTConnect.h"
|
||||
|
@ -29,9 +30,6 @@
|
|||
#define BUF_SIZE 128
|
||||
static uint8_t mqtt_buffer[BUF_SIZE];
|
||||
|
||||
|
||||
#include "tcp.h"
|
||||
|
||||
int mqtt_connect(struct net_context *ctx, char *client_name)
|
||||
{
|
||||
MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
|
||||
|
@ -70,12 +68,8 @@ int mqtt_connect(struct net_context *ctx, char *client_name)
|
|||
}
|
||||
rc = MQTTDeserialize_connack(&session_present, &conn_ack,
|
||||
mqtt_buffer, rx_len);
|
||||
rc = rc != 1 ? -EINVAL : 0;
|
||||
if (rc != 0) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return conn_ack;
|
||||
return rc == 1 ? conn_ack : -EINVAL;
|
||||
}
|
||||
|
||||
int mqtt_disconnect(struct net_context *ctx)
|
||||
|
@ -157,7 +151,7 @@ int mqtt_pingreq(struct net_context *ctx)
|
|||
|
||||
int mqtt_publish_read(struct net_context *ctx)
|
||||
{
|
||||
MQTTString received_topic;
|
||||
MQTTString topic;
|
||||
unsigned char dup;
|
||||
unsigned char retained;
|
||||
unsigned short msg_id;
|
||||
|
@ -173,11 +167,13 @@ int mqtt_publish_read(struct net_context *ctx)
|
|||
}
|
||||
|
||||
rc = MQTTDeserialize_publish(&dup, &qos, &retained, &msg_id,
|
||||
&received_topic, &msg, &msg_len,
|
||||
&topic, &msg, &msg_len,
|
||||
mqtt_buffer, rx_len);
|
||||
rc = rc == 1 ? 0 : -EIO;
|
||||
if (rc == 0) {
|
||||
printf("\n\tReceived message: %.*s\n\n", msg_len, msg);
|
||||
printf("\n\tReceived message: [%.*s] %.*s\n\n",
|
||||
topic.lenstring.len, topic.lenstring.data,
|
||||
msg_len, msg);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
@ -214,6 +210,6 @@ int mqtt_subscribe(struct net_context *ctx, char *topic)
|
|||
rc = MQTTDeserialize_suback(&submsg_id, 1, &sub_count, &granted_qos,
|
||||
mqtt_buffer, rx_len);
|
||||
|
||||
return rc != 1 ? -EINVAL : granted_qos;
|
||||
return rc == 1 ? granted_qos : -EINVAL;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,5 +23,4 @@ int tcp_init(struct net_context **ctx);
|
|||
int tcp_tx(struct net_context *ctx, uint8_t *buf, size_t size);
|
||||
int tcp_rx(struct net_context *ctx, uint8_t *buf, size_t *read_bytes, size_t size);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue