调整格式
|
@ -1,14 +1,5 @@
|
||||||
SRC_FILES += test_mqttclient.c\
|
SRC_FILES += test_mqttclient.c
|
||||||
MQTTPacket.c\
|
|
||||||
MQTTConnectClient.c \
|
|
||||||
MQTTConnectServer.c \
|
|
||||||
MQTTDeserializePublish.c \
|
|
||||||
MQTTFormat.c \
|
|
||||||
MQTTSerializePublish.c \
|
|
||||||
MQTTSubscribeClient.c \
|
|
||||||
MQTTSubscribeServer.c \
|
|
||||||
MQTTUnsubscribeClient.c \
|
|
||||||
MQTTUnsubscribeServer.c \
|
|
||||||
transport.c
|
|
||||||
|
|
||||||
|
SRC_DIR += mqtt
|
||||||
include $(KERNEL_ROOT)/compiler.mk
|
include $(KERNEL_ROOT)/compiler.mk
|
|
@ -1,15 +1,55 @@
|
||||||
|
## 1. 简介
|
||||||
|
|
||||||
本代码实现了MQTT对服务器订阅主体并发送信息功能
|
本代码实现了MQTT对服务器订阅主体并发送信息功能
|
||||||
|
|
||||||
|
## 2. 数据结构设计说明
|
||||||
|
|
||||||
|
### 2.1 MQTT数据结构定义
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 2.2 数据解析与加密
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 2.3 MQTT连接与订阅
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 3. 测试程序说明
|
||||||
|
|
||||||
|
MQTT基于TCP/IP协议,分为客户端与服务端。在本任务中,ARM终端作为客户端,与服务端连接并进行主题订阅。
|
||||||
|
|
||||||
|
以下代码设置了进行订阅时需要的Client ID、用户名、密码及订阅主题。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
客户端首先需要根据以上信息向服务端发起连接请求,验证用户名及密码
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
随后进行主题订阅,接收服务端发布的消息
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
在订阅过程中需要对获取的信息进行读取,同时每隔一段时间向服务端发送保持活性ping请求,以维持与服务端的连接
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 4. 测试流程
|
||||||
|
|
||||||
测试流程为:
|
测试流程为:
|
||||||
|
|
||||||
首先执行setip命令,设置设备ip地址
|
首先执行setip命令,设置设备ip地址
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
随后执行“MqttSocketSendTest 服务器ip”命令,订阅主题并发送test信息
|
随后执行“MqttSocketRecvTest 服务器ip”命令,订阅主题,然后在服务器端发布消息如图所示
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
最终服务器接收到信息,如图所示
|
最终设备端接收到信息
|
||||||
|
|
||||||

|

|
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 106 KiB |
|
@ -0,0 +1,13 @@
|
||||||
|
SRC_FILES +=MQTTPacket.c\
|
||||||
|
MQTTConnectClient.c \
|
||||||
|
MQTTConnectServer.c \
|
||||||
|
MQTTDeserializePublish.c \
|
||||||
|
MQTTFormat.c \
|
||||||
|
MQTTSerializePublish.c \
|
||||||
|
MQTTSubscribeClient.c \
|
||||||
|
MQTTSubscribeServer.c \
|
||||||
|
MQTTUnsubscribeClient.c \
|
||||||
|
MQTTUnsubscribeServer.c \
|
||||||
|
transport.c
|
||||||
|
|
||||||
|
include $(KERNEL_ROOT)/compiler.mk
|
|
@ -27,9 +27,9 @@
|
||||||
#include "lwip/sys.h"
|
#include "lwip/sys.h"
|
||||||
#include "lwip/api.h"
|
#include "lwip/api.h"
|
||||||
|
|
||||||
#include "MQTTPacket.h"
|
#include "mqtt/MQTTPacket.h"
|
||||||
#include "MQTTSubscribe.h"
|
#include "mqtt/MQTTSubscribe.h"
|
||||||
#include "transport.h"
|
#include "mqtt/transport.h"
|
||||||
#include <cJSON_Process.h>
|
#include <cJSON_Process.h>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -39,14 +39,18 @@
|
||||||
#define USER_NAME "test&iw3rn3pa11K" //用户名
|
#define USER_NAME "test&iw3rn3pa11K" //用户名
|
||||||
#define PASSWORD "7b948d22fe46f0f63d1a403376d26e7cb298abc227d29e44311d7040307a71f8" //秘钥
|
#define PASSWORD "7b948d22fe46f0f63d1a403376d26e7cb298abc227d29e44311d7040307a71f8" //秘钥
|
||||||
|
|
||||||
// #define CLIENT_ID "hc123456789" //随机的id
|
|
||||||
// #define USER_NAME "xiuos" //用户名
|
|
||||||
// #define PASSWORD "xiuos" //秘钥
|
|
||||||
|
|
||||||
#define TOPIC "/iw3rn3pa11K/test/user/Test" //订阅的主题
|
#define TOPIC "/iw3rn3pa11K/test/user/Test" //订阅的主题
|
||||||
|
|
||||||
#define TEST_MESSAGE "test_message" //发送测试消息
|
#define TEST_MESSAGE "test_message" //发送测试消息
|
||||||
|
|
||||||
|
|
||||||
|
// #define CLIENT_ID "hc123456789" //随机的id
|
||||||
|
// #define USER_NAME "xiuos" //用户名
|
||||||
|
// #define PASSWORD "xiuos" //秘钥
|
||||||
|
|
||||||
|
|
||||||
enum QoS
|
enum QoS
|
||||||
{ QOS0 = 0,
|
{ QOS0 = 0,
|
||||||
QOS1,
|
QOS1,
|
||||||
|
|
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 29 KiB |