diff --git a/APP_Framework/Applications/app_test/test_mqttclient/Makefile b/APP_Framework/Applications/app_test/test_mqttclient/Makefile index 437645fde..68e52ce07 100644 --- a/APP_Framework/Applications/app_test/test_mqttclient/Makefile +++ b/APP_Framework/Applications/app_test/test_mqttclient/Makefile @@ -1,14 +1,5 @@ -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_FILES += test_mqttclient.c + +SRC_DIR += mqtt include $(KERNEL_ROOT)/compiler.mk \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_mqttclient/README.md b/APP_Framework/Applications/app_test/test_mqttclient/README.md index 2aeca82e6..caf4ea5ac 100644 --- a/APP_Framework/Applications/app_test/test_mqttclient/README.md +++ b/APP_Framework/Applications/app_test/test_mqttclient/README.md @@ -1,15 +1,55 @@ +## 1. 简介 + 本代码实现了MQTT对服务器订阅主体并发送信息功能 +## 2. 数据结构设计说明 + +### 2.1 MQTT数据结构定义 + +![image-20231007142702891](.\imgs\图片4.png) + +### 2.2 数据解析与加密 + +![image-20231007143235579](.\imgs\图片5.png) + +### 2.3 MQTT连接与订阅 + +![image-20231007143448685](.\imgs\图片6.png) + +![image-20231007143607579](.\imgs\图片7.png) + +## 3. 测试程序说明 + +MQTT基于TCP/IP协议,分为客户端与服务端。在本任务中,ARM终端作为客户端,与服务端连接并进行主题订阅。 + +以下代码设置了进行订阅时需要的Client ID、用户名、密码及订阅主题。 + +![image-20231007144555989](.\imgs\图片8.png) + +客户端首先需要根据以上信息向服务端发起连接请求,验证用户名及密码 + +![image-20231007144710185](.\imgs\图片9.png) + +随后进行主题订阅,接收服务端发布的消息 + +![image-20231007144823940](.\imgs\图片10.png) + +在订阅过程中需要对获取的信息进行读取,同时每隔一段时间向服务端发送保持活性ping请求,以维持与服务端的连接 + +![image-20231007144921430](.\imgs\图片11.png) + +## 4. 测试流程 + 测试流程为: 首先执行setip命令,设置设备ip地址 -![图片2](.\图片2.png) +![图片2](.\imgs\图片2.png) -随后执行“MqttSocketSendTest 服务器ip”命令,订阅主题并发送test信息 +随后执行“MqttSocketRecvTest 服务器ip”命令,订阅主题,然后在服务器端发布消息如图所示 -![图片1](.\图片1.png) +![图片1](.\imgs\pic1.png) -最终服务器接收到信息,如图所示 +最终设备端接收到信息 -![图片3](.\图片3.png) +![图片3](.\imgs\pic2.png) \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic1.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic1.png new file mode 100644 index 000000000..461156520 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic1.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic2.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic2.png new file mode 100644 index 000000000..5b47004d1 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/pic2.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片10.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片10.png new file mode 100644 index 000000000..c9eee33cb Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片10.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片11.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片11.png new file mode 100644 index 000000000..60719777c Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片11.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/图片2.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片2.png similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/图片2.png rename to APP_Framework/Applications/app_test/test_mqttclient/imgs/图片2.png diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片4.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片4.png new file mode 100644 index 000000000..5d201d554 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片4.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片5.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片5.png new file mode 100644 index 000000000..d2363e630 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片5.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片6.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片6.png new file mode 100644 index 000000000..49e07db4a Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片6.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片7.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片7.png new file mode 100644 index 000000000..4e06647ad Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片7.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片8.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片8.png new file mode 100644 index 000000000..b30340637 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片8.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片9.png b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片9.png new file mode 100644 index 000000000..56eede315 Binary files /dev/null and b/APP_Framework/Applications/app_test/test_mqttclient/imgs/图片9.png differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTConnect.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnect.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTConnect.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnect.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTConnectClient.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnectClient.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTConnectClient.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnectClient.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTConnectServer.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnectServer.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTConnectServer.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTConnectServer.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTDeserializePublish.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTDeserializePublish.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTDeserializePublish.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTDeserializePublish.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTFormat.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTFormat.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTFormat.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTFormat.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTFormat.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTFormat.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTFormat.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTFormat.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTPacket.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPacket.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTPacket.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPacket.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTPacket.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPacket.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTPacket.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPacket.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTPublish.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPublish.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTPublish.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTPublish.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTSerializePublish.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSerializePublish.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTSerializePublish.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSerializePublish.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribe.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribe.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribe.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribe.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribeClient.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribeClient.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribeClient.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribeClient.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribeServer.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribeServer.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTSubscribeServer.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTSubscribeServer.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribe.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribe.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribe.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribe.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribeClient.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribeClient.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribeClient.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribeClient.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribeServer.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribeServer.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/MQTTUnsubscribeServer.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/MQTTUnsubscribeServer.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/mqtt/Makefile b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/Makefile new file mode 100644 index 000000000..7eb8d3244 --- /dev/null +++ b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/Makefile @@ -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 \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_mqttclient/StackTrace.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/StackTrace.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/StackTrace.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/StackTrace.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/transport.c b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/transport.c similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/transport.c rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/transport.c diff --git a/APP_Framework/Applications/app_test/test_mqttclient/transport.h b/APP_Framework/Applications/app_test/test_mqttclient/mqtt/transport.h similarity index 100% rename from APP_Framework/Applications/app_test/test_mqttclient/transport.h rename to APP_Framework/Applications/app_test/test_mqttclient/mqtt/transport.h diff --git a/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.c b/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.c index ae99a4ed5..2ceb1b892 100644 --- a/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.c +++ b/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.c @@ -27,9 +27,9 @@ #include "lwip/sys.h" #include "lwip/api.h" -#include "MQTTPacket.h" -#include "MQTTSubscribe.h" -#include "transport.h" +#include "mqtt/MQTTPacket.h" +#include "mqtt/MQTTSubscribe.h" +#include "mqtt/transport.h" #include #endif diff --git a/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.h b/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.h index bf1d3fc18..d52cfd6d3 100644 --- a/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.h +++ b/APP_Framework/Applications/app_test/test_mqttclient/test_mqttclient.h @@ -39,14 +39,18 @@ #define USER_NAME "test&iw3rn3pa11K" //用户名 #define PASSWORD "7b948d22fe46f0f63d1a403376d26e7cb298abc227d29e44311d7040307a71f8" //秘钥 -// #define CLIENT_ID "hc123456789" //随机的id -// #define USER_NAME "xiuos" //用户名 -// #define PASSWORD "xiuos" //秘钥 + #define TOPIC "/iw3rn3pa11K/test/user/Test" //订阅的主题 #define TEST_MESSAGE "test_message" //发送测试消息 + +// #define CLIENT_ID "hc123456789" //随机的id +// #define USER_NAME "xiuos" //用户名 +// #define PASSWORD "xiuos" //秘钥 + + enum QoS { QOS0 = 0, QOS1, diff --git a/APP_Framework/Applications/app_test/test_mqttclient/图片1.png b/APP_Framework/Applications/app_test/test_mqttclient/图片1.png deleted file mode 100644 index 7eafe69eb..000000000 Binary files a/APP_Framework/Applications/app_test/test_mqttclient/图片1.png and /dev/null differ diff --git a/APP_Framework/Applications/app_test/test_mqttclient/图片3.png b/APP_Framework/Applications/app_test/test_mqttclient/图片3.png deleted file mode 100644 index 688acb4f1..000000000 Binary files a/APP_Framework/Applications/app_test/test_mqttclient/图片3.png and /dev/null differ