From 10a6553c96e3888fa90b38b374b45ffdd0b29cb6 Mon Sep 17 00:00:00 2001
From: xiaoyi <2985672336@qq.com>
Date: Tue, 17 Aug 2021 11:39:14 +0800
Subject: [PATCH] =?UTF-8?q?[update]=20=E7=A7=BB=E6=A4=8D=E8=AE=BE=E5=A4=87?=
=?UTF-8?q?mqtt=E5=8D=8F=E8=AE=AE=EF=BC=8C=E6=9A=82=E6=9C=AA=E5=AE=8C?=
=?UTF-8?q?=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/.gitignore | 8 +
.../stm32/smart_dormitory/Core/Src/main.c | 21 ++
.../MDK-ARM/Project.uvguix.Administrator | 103 ++---
.../smart_dormitory/MDK-ARM/Project.uvoptx | 64 ++--
.../smart_dormitory/MDK-ARM/Project.uvprojx | 5 -
.../smart_dormitory/User/Process/process.h | 2 +
.../User/xiaoyi_wifi/esp8266.c | 120 ++----
.../User/xiaoyi_wifi/esp8266.h | 28 ++
.../smart_dormitory/User/xiaoyi_wifi/mqtt.c | 356 ++++++++++++++++--
.../smart_dormitory/User/xiaoyi_wifi/mqtt.h | 55 ++-
.../src/main/resources/application-druid.yml | 2 +-
.../src/main/resources/application.yml | 2 +-
12 files changed, 532 insertions(+), 234 deletions(-)
create mode 100644 .idea/.gitignore
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..73f69e09
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/firmware/stm32/smart_dormitory/Core/Src/main.c b/firmware/stm32/smart_dormitory/Core/Src/main.c
index 03b4c559..512b0913 100644
--- a/firmware/stm32/smart_dormitory/Core/Src/main.c
+++ b/firmware/stm32/smart_dormitory/Core/Src/main.c
@@ -74,6 +74,24 @@ void delay_ms(int ms)
{
HAL_Delay(ms);
}
+
+// ESP8266主动下发给MCU数据
+int wifi_data_recv_fun(type_recv_e type, uint8_t *data, int len)
+{
+ switch((int)type)
+ {
+ case TYPE_RECV_DISCONNECT:
+ printf("WIFI DISCONNECT!\r\n");
+ break;
+ case TYPE_RECV_GOT_IP:
+ printf("WIFI GOT IP!\r\n");
+ break;
+ case TYPE_RECV_SUBSCRIBE:
+ printf("recv_fun sucribe data : %s\r\n", data);
+ break;
+ }
+}
+
/* USER CODE END 0 */
/**
@@ -144,11 +162,14 @@ int main(void)
{
printf("enable time4 pwm output\r\n");
}
+ set_sg90(50);
if (HAL_TIM_Base_Start_IT(&htim3))
{
printf("enable time3 base isr\r\n");
}
+
+ ESP8266_Fram_Record_Struct.wifi_data_recv_cb = wifi_data_recv_fun; // 定义系统回调函数,当有数据下发,会进入这个函数
ESP8266_STA_MQTTClient_Init();
printf("ready go into while1\r\n");
diff --git a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvguix.Administrator b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvguix.Administrator
index d90456ce..eb80ebcf 100644
--- a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvguix.Administrator
+++ b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvguix.Administrator
@@ -80,8 +80,8 @@
44
- 2
- 3
+ 0
+ 1
-1
-1
@@ -92,16 +92,16 @@
0
- 245
- 1540
- 824
+ -8
+ 1002
+ 843
0
- 1484
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C00000002000000010000004B443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF52443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C7463702E6300000000057463702E6300000000BECEA100FFFFFFFF4C443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C75736172742E63000000000775736172742E6300000000F0A0A100FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C6D7174742E6300000000066D7174742E6300000000BCA8E100FFFFFFFF56443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C657370383236362E630000000009657370383236362E63000000009CC1B600FFFFFFFF52443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C50726F636573735C70726F636573732E63000000000970726F636573732E6300000000F7B88600FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C6D7174742E6800000000066D7174742E6800000000D9ADC200FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000A5C2D700FFFFFFFF56443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C657370383236362E680000000009657370383236362E6800000000B3A6BE00FFFFFFFF70443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D2E63000000001373746D3332663178785F68616C5F74696D2E6300000000EAD6A300FFFFFFFF4A443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C74696D2E63000000000574696D2E6300000000F6FA7D00FFFFFFFF4A443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C646D612E630000000005646D612E63000000005FC3CF00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000034010000660000000006000043020000
+ 1593
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000004000000010000004B443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF52443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C7463702E6300000000057463702E6300000000BECEA100FFFFFFFF4C443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C75736172742E63000000000775736172742E6300000000F0A0A100FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C6D7174742E6300000000066D7174742E6300000000BCA8E100FFFFFFFF56443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C657370383236362E630000000009657370383236362E63000000009CC1B600FFFFFFFF52443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C50726F636573735C70726F636573732E63000000000970726F636573732E6300000000F7B88600FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C6D7174742E6800000000066D7174742E6800000000D9ADC200FFFFFFFF53443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000A5C2D700FFFFFFFF56443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C7869616F79695F776966695C657370383236362E680000000009657370383236362E6800000000B3A6BE00FFFFFFFF70443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F74696D2E63000000001373746D3332663178785F68616C5F74696D2E6300000000EAD6A300FFFFFFFF4A443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C74696D2E63000000000574696D2E6300000000F6FA7D00FFFFFFFF4A443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C436F72655C5372635C646D612E630000000005646D612E6300000000B5E99D00FFFFFFFF52443A5C776F726B5C706C6174666F726D5C77756D65692D736D6172745C6669726D776172655C73746D33325C736D6172745F646F726D69746F72795C557365725C50726F636573735C70726F636573732E68000000000970726F636573732E6800000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000340100006E000000E2030000B8020000
@@ -124,7 +124,7 @@
16
- F40000006600000090050000F6000000
+ F40000006E00000090050000FE000000
@@ -140,7 +140,7 @@
0
16
- 03000000660000002D01000013020000
+ 03000000660000002D01000080020000
16
@@ -160,7 +160,7 @@
0
16
- 03000000660000002D01000013020000
+ 03000000660000002D01000080020000
16
@@ -440,7 +440,7 @@
0
16
- 03000000660000002D01000013020000
+ 03000000660000002D01000080020000
16
@@ -460,7 +460,7 @@
0
16
- 03000000660000002D01000013020000
+ 03000000660000002D01000080020000
16
@@ -480,7 +480,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000DF030000F8020000
16
@@ -520,7 +520,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000DF030000F8020000
16
@@ -1140,7 +1140,7 @@
0
16
- 03000000660000002D01000013020000
+ 03000000660000002D0100007D020000
16
@@ -1160,7 +1160,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000DF030000F8020000
16
@@ -1180,7 +1180,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000FD050000F8020000
16
@@ -1240,7 +1240,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000FD050000F8020000
16
@@ -1260,7 +1260,7 @@
0
16
- 0300000047020000FD050000F5020000
+ 03000000B4020000FD050000F8020000
16
@@ -1720,7 +1720,7 @@
0
16
- 000000000E0300000006000021030000
+ 0000000011030000E203000024030000
16
@@ -1789,14 +1789,14 @@
3317
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F000000340100002C02000001000000020000100400000001000000EAFEFFFFDF040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000003001000043020000000000004F000000300100002C0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000002C0200000006000030020000010000000100001004000000010000009BFEFFFF4F010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000004702000000060000250300000000000030020000000600000E0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006E00000090050000FE000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A00400006E0000009005000048020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F000000340100009902000001000000020000100400000001000000EAFEFFFFDF040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000006E00000030010000B5020000000000004F00000030010000990200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003802000090050000DC020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000099020000E20300009D0200000100000001000010040000000100000001FEFFFFB5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000B9020000000600002D030000000000009D020000E2030000110300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
- 2628
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000115553415254335F49525148616E646C657296000000000000001400115553415254335F49525148616E646C65721C20455350383236365F4672616D5F5265636F72645F5374727563742022455350383236365F4672616D5F5265636F72645F5374727563742E496E66426974201B455350383236365F4672616D5F5265636F72645F537472756374201555415254315F48616E646C6553747275637475726516455350383236365F43485F50445F50696E5F5365744C16455350383236365F43485F50445F50696E5F536574480844656C61795F6D730E44485431315F52656164427974650A44485431315F496E69741A44485431315F526561645F54656D70416E6448756D69646974790B64687431315F44656C6179084750494F5F50696E02753803753136037533320F44485431315F446174615F494E28291244485431315F446174615F5479706544656603726572062F2F42555A5A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
+ 2632
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000005737461746596000000000000001400057374617465084B65795F5363616E07666C616754786410636F756E745F696E746572727570743110636F756E745F696E746572727570743008494E54315F636E7408494E54305F636E740B4D5154545F484541445F5417557365725F455350383236365F4D51545453657276657213455350383236365F4C696E6B5F5365727665720F455350383236365F41545F5465737416455350383236365F4765745F4C696E6B53746174757315455350383236365F556E7661726E69736853656E6412455350383236365F53656E64537472696E6719455350383236365F456E61626C655F4D756C7469706C6549640E455350383236365F4A6F696E415017455350383236365F4E65745F4D6F64655F43686F6F73650B455350383236365F52737419455350383236365F45786974556E7661726E69736853656E6413455350383236365F53656E645F41545F436D640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000
1423
@@ -1812,7 +1812,7 @@
Build
974
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000750726F6A656374960000000000000001000750726F6A656374000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000750726F6A656374960000000000000001000750726F6A656374000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1828,7 +1828,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -1852,18 +1852,18 @@
0
100
- 2
+ 4
../Core/Src/main.c
- 7
- 100
- 108
+ 3
+ 175
+ 198
1
0
- ..\User\xiaoyi_wifi\tcp.c
+ D:\work\platform\wumei-smart\firmware\stm32\smart_dormitory\User\xiaoyi_wifi\tcp.c
0
1
3
@@ -1874,35 +1874,35 @@
../Core/Src/usart.c
1
- 238
- 248
+ 227
+ 258
1
0
..\User\xiaoyi_wifi\mqtt.c
- 16
- 16
- 34
+ 30
+ 1
+ 17
1
0
..\User\xiaoyi_wifi\esp8266.c
- 0
- 49
- 54
+ 27
+ 357
+ 373
1
0
..\User\Process\process.c
- 10
- 28
- 39
+ 0
+ 18
+ 27
1
0
@@ -1910,8 +1910,8 @@
..\User\xiaoyi_wifi\mqtt.h
0
- 3
- 28
+ 21
+ 22
1
0
@@ -1927,9 +1927,9 @@
..\User\xiaoyi_wifi\esp8266.h
- 0
- 51
- 57
+ 14
+ 95
+ 102
1
0
@@ -1955,12 +1955,21 @@
../Core/Src/dma.c
0
- 37
+ 32
38
1
0
+
+ ..\User\Process\process.h
+ 8
+ 2
+ 24
+ 1
+
+ 0
+
diff --git a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvoptx b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvoptx
index e3b803df..38d06495 100644
--- a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvoptx
+++ b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvoptx
@@ -330,18 +330,6 @@
0
0
0
- ..\User\xiaoyi_wifi\tcp.c
- tcp.c
- 0
- 0
-
-
- 3
- 13
- 1
- 0
- 0
- 0
..\User\xiaoyi_wifi\mqtt.c
mqtt.c
0
@@ -349,7 +337,7 @@
3
- 14
+ 13
1
0
0
@@ -369,7 +357,7 @@
0
4
- 15
+ 14
1
0
0
@@ -381,7 +369,7 @@
4
- 16
+ 15
1
0
0
@@ -393,7 +381,7 @@
4
- 17
+ 16
1
0
0
@@ -405,7 +393,7 @@
4
- 18
+ 17
1
0
0
@@ -417,7 +405,7 @@
4
- 19
+ 18
1
0
0
@@ -429,7 +417,7 @@
4
- 20
+ 19
1
0
0
@@ -449,7 +437,7 @@
0
5
- 21
+ 20
1
0
0
@@ -461,7 +449,7 @@
5
- 22
+ 21
1
0
0
@@ -473,7 +461,7 @@
5
- 23
+ 22
1
0
0
@@ -485,7 +473,7 @@
5
- 24
+ 23
1
0
0
@@ -497,7 +485,7 @@
5
- 25
+ 24
1
0
0
@@ -509,7 +497,7 @@
5
- 26
+ 25
1
0
0
@@ -521,7 +509,7 @@
5
- 27
+ 26
1
0
0
@@ -533,7 +521,7 @@
5
- 28
+ 27
1
0
0
@@ -545,7 +533,7 @@
5
- 29
+ 28
1
0
0
@@ -557,7 +545,7 @@
5
- 30
+ 29
1
0
0
@@ -569,7 +557,7 @@
5
- 31
+ 30
1
0
0
@@ -581,7 +569,7 @@
5
- 32
+ 31
1
0
0
@@ -593,7 +581,7 @@
5
- 33
+ 32
1
0
0
@@ -605,7 +593,7 @@
5
- 34
+ 33
1
0
0
@@ -617,7 +605,7 @@
5
- 35
+ 34
1
0
0
@@ -629,7 +617,7 @@
5
- 36
+ 35
1
0
0
@@ -641,7 +629,7 @@
5
- 37
+ 36
1
0
0
@@ -653,7 +641,7 @@
5
- 38
+ 37
1
0
0
@@ -673,7 +661,7 @@
0
6
- 39
+ 38
1
0
0
diff --git a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvprojx b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvprojx
index 864619de..4a66eaa4 100644
--- a/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvprojx
+++ b/firmware/stm32/smart_dormitory/MDK-ARM/Project.uvprojx
@@ -446,11 +446,6 @@
Application/User/Process
-
- tcp.c
- 1
- ..\User\xiaoyi_wifi\tcp.c
-
mqtt.c
1
diff --git a/firmware/stm32/smart_dormitory/User/Process/process.h b/firmware/stm32/smart_dormitory/User/Process/process.h
index ab85db81..5a7f1028 100644
--- a/firmware/stm32/smart_dormitory/User/Process/process.h
+++ b/firmware/stm32/smart_dormitory/User/Process/process.h
@@ -21,6 +21,8 @@ void start_buzz(void);
void stop_buzz(void);
+void set_sg90(int value);
+
void process_local_handle(uint16_t value_humi);
void process_report_data(void);
diff --git a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.c b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.c
index 12aca5b7..6469edf5 100644
--- a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.c
+++ b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.c
@@ -78,6 +78,22 @@ void ESP8266_AT_Test(void)
}
}
+//取消回显
+void ESP8266_ATE0(void)
+{
+ char count=0;
+ delay_ms(1000);
+ while(count < 10)
+ {
+ if(ESP8266_Send_AT_Cmd("ATE0","OK",NULL,500))
+ {
+ printf("OK\r\n");
+ return;
+ }
+ ++ count;
+ }
+}
+
//选择ESP8266的工作模式
// enumMode 模式类型
@@ -231,13 +247,13 @@ uint8_t ESP8266_Get_LinkStatus ( void )
{
if (ESP8266_Send_AT_Cmd( "AT+CIPSTATUS", "OK", 0, 500 ) )
{
- if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:2\r\n" ) )
+ if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:2\r\n" ) )
return 2;
- else if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:3\r\n" ) )
+ else if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:3\r\n" ) )
return 3;
- else if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:4\r\n" ) )
+ else if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:4\r\n" ) )
return 4;
}
@@ -359,7 +375,7 @@ void USART_printf ( char * Data, ... )
Data++;
break;
}
- }
+ }
else
{
HAL_UART_Transmit(&huart3, (uint8_t *)Data, 1, 0xFFFF);
@@ -370,98 +386,4 @@ void USART_printf ( char * Data, ... )
}
}
-//下面为ESP8266MQTT功能指令
-
-/*
-*MQTT配置用户属性
-*LinkID 连接ID,目前只支持0
-*scheme 连接方式,这里选择MQTT over TCP,这里设置为1
-*client_id MQTTclientID 用于标志client身份
-*username 用于登录 MQTT 服务器 的 username
-*password 用于登录 MQTT 服务器 的 password
-*cert_key_ID 证书 ID, 目前支持一套 cert 证书, 参数为 0
-*CA_ID 目前支持一套 CA 证书, 参数为 0
-*path 资源路径,这里设置为""
-*设置成功返回true 反之false
-*/
-bool ESP8266_MQTTUSERCFG( char * pClient_Id, char * pUserName,char * PassWord)
-{
- char cCmd [120];
- sprintf ( cCmd, "AT+MQTTUSERCFG=0,1,\"%s\",\"%s\",\"%s\",0,0,\"\"", pClient_Id,pUserName,PassWord );
- return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
-}
-
-
-/*
-*连接指定的MQTT服务器
-*LinkID 连接ID,目前只支持0
-*IP:MQTT服务器上对应的IP地址
-*ComNum MQTT服务器上对应的端口号,一般为1883
-*设置成功返回true 反之false
-*/
-bool ESP8266_MQTTCONN( char * Ip, int Num)
-{
- char cCmd [120];
- sprintf ( cCmd,"AT+MQTTCONN=0,\"%s\",%d,0", Ip,Num);
- return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
-}
-
-/*
-*订阅指定连接的 MQTT 主题, 可重复多次订阅不同 topic
-*LinkID 连接ID,目前只支持0
-*Topic 订阅的主题名字,这里设置为Topic
-*Qos值:一般为0,这里设置为1
-*设置成功返回true 反之false
-*/
-bool ESP8266_MQTTSUB(char * Topic)
-{
- char cCmd [120];
- sprintf ( cCmd, "AT+MQTTSUB=0,\"%s\",1",Topic );
- return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
-}
-
-
-/*
-*在LinkID上通过 topic 发布数据 data, 其中 data 为字符串消息
-*LinkID 连接ID,目前只支持0
-*Topic 订阅的主题名字,这里设置为Topic
-*data:字符串信息
-*设置成功返回true 反之false
-*/
-bool ESP8266_MQTTPUB( char * Topic,char *temp)
-{
- char cCmd [512];
- sprintf (cCmd, "AT+MQTTPUB=0,\"%s\",\"%s\",0,0", Topic ,temp);
- return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 1000 );
-}
-
-/*
-*关闭 MQTT Client 为 LinkID 的连接, 并释放内部占用的资源
-*LinkID 连接ID,目前只支持0
-*Topic 订阅的主题名字,这里设置为Topic
-*data:字符串信息
-*设置成功返回true 反之false
-*/
-bool ESP8266_MQTTCLEAN(void)
-{
- char cCmd [120];
- sprintf ( cCmd, "AT+MQTTCLEAN=0");
- return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
-}
-
-//ESP8266发送字符串
-//enumEnUnvarnishTx是否使能透传模式
-//pStr字符串
-//ulStrLength字符串长度
-//ucId 连接号
-//设置成功返回true, 反之false
-bool MQTT_SendString(char * pTopic,char *temp2)
-{
-
- bool bRet = false;
- ESP8266_MQTTPUB(pTopic,temp2);
- delay_ms(1000);
- bRet = true;
- return bRet;
-}
-
+
\ No newline at end of file
diff --git a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.h b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.h
index bfe5ab4e..935029bd 100644
--- a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.h
+++ b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/esp8266.h
@@ -24,6 +24,7 @@ typedef enum{
enumTCP,
enumUDP,
} ENUM_NetPro_TypeDef;
+
//连接号,指定为该连接号可以防止其他计算机访问同一端口而发生错误
typedef enum{
Multiple_ID_0 = 0,
@@ -34,6 +35,26 @@ typedef enum{
Single_ID_0 = 5,
} ENUM_ID_NO_TypeDef;
+
+//ESP8266网络状态
+typedef enum{
+ NET_STATUS_INIT = 0,
+ NET_STATUS_WIFI_CONNECTING,
+ NET_STATUS_WIFI_CONNECTED,
+ NET_STATUS_WIFI_FAILED,
+ NET_STATUS_CLOUD_SUCCESS,
+ NET_STATUS_CLOUD_FAIL,
+}connect_status_e;
+
+//ESP8266网络状态
+typedef enum{
+ TYPE_RECV_CONNECT = 0,
+ TYPE_RECV_DISCONNECT,
+ TYPE_RECV_GOT_IP,
+ TYPE_RECV_SUBSCRIBE, // 接收MQTT下发订阅消息
+ TYPE_RECV_NONE,
+}type_recv_e;
+
#define ESP8266_RST_Pin GPIO_PIN_4 //复位管脚
#define ESP8266_RST_Pin_Port GPIOA //复位
@@ -55,6 +76,10 @@ typedef enum{
#define RX_BUF_MAX_LEN 1024 //最大字节数
+
+typedef int (*wifi_data_arrvied)(type_recv_e type, uint8_t *data, int len); // 函数指针,接收WIFI发来的数据
+
+
extern struct STRUCT_USART_Fram //数据帧结构体
{
uint8_t Data_RX_BUF[RX_BUF_MAX_LEN];
@@ -67,13 +92,16 @@ extern struct STRUCT_USART_Fram //
__IO uint16_t FramFinishFlag :1; // 15
}InfBit;
};
+ wifi_data_arrvied wifi_data_recv_cb;
}ESP8266_Fram_Record_Struct;
+
//初始化和TCP功能函数
void ESP8266_Init(uint32_t bound);
void ESP8266_AT_Test(void);
+void ESP8266_ATE0(void);
bool ESP8266_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,uint32_t time);
void ESP8266_Rst(void);
bool ESP8266_Net_Mode_Choose(ENUM_Net_ModeTypeDef enumMode);
diff --git a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.c b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.c
index 8f621499..be984675 100644
--- a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.c
+++ b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.c
@@ -1,42 +1,324 @@
#include "mqtt.h"
-void ESP8266_STA_MQTTClient_Init(void)
-{
- char str[] = "{\
- \"deviceNum\": \"E8DB84933089\",\
- \"relayStatus\": 0,\
- \"lightStatus\": 0,\
- \"isOnline\": 1,\
- \"rssi\": -54,\
- \"deviceTemperature\": 40,\
- \"airTemperature\": 0,\
- \"airHumidity\": 0,\
- \"triggerSource\": 0,\
- \"brightness\": 11,\
- \"lightInterval\": 432,\
- \"lightMode\": 0,\
- \"fadeTime\": 259,\
- \"red\": 255,\
- \"green\": 0,\
- \"blue\": 0,\
- \"remark\":{\"door_status\":1, \"light\":60}\
- }";
- printf("正在配置ESP8266参数\r\n");
- // ESP8266_AT_Test();//恢复出厂默认模式
- ESP8266_Net_Mode_Choose(STA);
- while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD));
- ESP8266_MQTTUSERCFG(User_ESP8266_client_id,User_ESP8266_username,User_ESP8266_password);
- ESP8266_MQTTCONN( User_ESP8266_MQTTServer_IP, User_ESP8266_MQTTServer_PORT);
- ESP8266_MQTTSUB( User_ESP8266_MQTTServer_Topic_SUB);
- printf("\r\nMQTT配置完成");
-
-// sprintf(str,"{}");//格式化发送字符串到MQTT服务器
- MQTT_SendString (User_ESP8266_MQTTServer_Topic_PUB,str);//发送数据到MQTT服务器
-
-// while(1)
-// {
+#define MQTT_NAME "n87ieud/my_board2"
+#define MQTT_PW "k4e9trh5qjwjhc2q"
+#define MQTT_CLIENT_ID "my_board2"
-// delay_ms(20);
-// }
+#define MQTT_TOPIC_UPDATE "$baidu/iot/shadow/my_board2/update"
+#define MQTT_TOPIC_DELTA "$baidu/iot/shadow/my_board2/delta"
+#define MQTT_TOPIC_SNAPSHOT "$baidu/iot/shadow/my_board2/update/snapshot"
+
+
+char str[] = "{\"deviceNum\": \"E8DB84933089\",\"relayStatus\": 0,\"lightStatus\": 0,\"isOnline\": 1,\"rssi\": -54,\"deviceTemperature\": 38}";
+
+static int mqtt_send(uint8_t head, uint32_t vlen, uint8_t *vhead,
+ uint32_t pay_len, uint8_t *payload)
+{
+ int32_t tmp_encode, tmp_x;
+ uint32_t i = 0;
+ uint8_t msg[RX_BUFF_LEN];
+ msg[i++] = head;
+
+ tmp_x = vlen + pay_len;
+ do {
+ tmp_encode = tmp_x % 128;
+ tmp_x = tmp_x / 128;
+ if (tmp_x > 0) {
+ tmp_encode = tmp_encode | 128;
+ }
+ msg[i++] = tmp_encode;
+ } while (tmp_x > 0);
+
+ if (vlen != 0) {
+ memcpy(&msg[i], vhead, vlen);
+ i = i + vlen;
+ }
+ if (pay_len != 0) {
+ memcpy(&msg[i], payload, pay_len);
+ i = i + pay_len;
+ }
+ esp8266_send(msg, i);
+
+ return 0;
+}
+static int mqtt_str_fill(uint8_t *outbuff, char *instr)
+{
+ uint8_t *p_tmp;
+ p_tmp = &outbuff[2];
+ outbuff[0] = strlen(instr) / 256;
+ outbuff[1] = strlen(instr) % 256;
+ strcpy((char*) p_tmp, (char*) instr);
+ return 0;
+}
+
+static int mqtt_recv(uint8_t *ackbuff, uint16_t *ack_len, int timeout)
+{
+
+ do {
+ if (esp8266_recv(ackbuff, &ack_len) == 0) {
+ return 0;
+ }
+ if (timeout > 0) {
+ HAL_Delay(100);
+ } else {
+ return -1;
+ }
+
+ } while (timeout--);
+ return -1;
+}
+
+static int mqtt_ack_check(uint8_t head, int timeout, uint16_t msg_id)
+{
+ uint8_t recv_head;
+ uint8_t recv_buff[RX_BUFF_LEN];
+ uint16_t recv_len;
+
+ if (mqtt_recv(recv_buff, &recv_len, timeout) != 0) {
+ return -1;
+ }
+ recv_head = recv_buff[0];
+
+ if ((head & recv_head) != head) {
+ return -1;
+ }
+ switch (recv_head & 0xF0) {
+ case MQTT_CONNACK:
+ return 0;
+ case MQTT_PUBACK:
+ return 0;
+ case MQTT_SUBACK:
+ return 0;
+ case MQTT_PINGRESP:
+ return 0;
+ default:
+ return -1;
+ }
+ return -1;
+}
+
+static int mqtt_connect(char *name, char *pwd, char *client_id)
+{
+ uint32_t i, j;
+ uint8_t vhead[512];
+ uint8_t payload[512];
+ uint8_t connec_flag = 0;
+ uint8_t head;
+ uint16_t keep_alive = 60;
+
+ i = 0;
+ vhead[i++] = 0;
+ vhead[i++] = 4;
+ vhead[i++] = 'M';
+ vhead[i++] = 'Q';
+ vhead[i++] = 'T';
+ vhead[i++] = 'T';
+ vhead[i++] = 4;
+
+ if (name != NULL) {
+ connec_flag = connec_flag | CONNECT_FLAG_NAME;
+ }
+ if (pwd != NULL) {
+ connec_flag = connec_flag | CONNECT_FLAG_PWD;
+ }
+ vhead[i++] = connec_flag;
+ vhead[i++] = keep_alive / 256;
+ vhead[i++] = keep_alive % 256;
+
+ j = 0;
+ mqtt_str_fill(&payload[j], client_id);
+ j = j + strlen(client_id) + 2;
+ mqtt_str_fill(&payload[j], name);
+ j = j + strlen(name) + 2;
+ mqtt_str_fill(&payload[j], pwd);
+ j = j + strlen(pwd) + 2;
+
+ head = MQTT_CONNECT;
+
+ mqtt_send(head, i, vhead, j, payload);
+ if (mqtt_ack_check(MQTT_CONNACK, 100, 0) != 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static int mqtt_disconnect(void)
+{
+ uint8_t head;
+ head = MQTT_DISCONNECT;
+ mqtt_send(head, 0, NULL, 0, NULL);
+}
+static int mqtt_publish(char *topic, uint8_t *msg, uint16_t msg_len,
+ uint16_t msg_id)
+{
+ uint32_t i, j;
+ uint8_t vhead[512];
+ uint8_t head;
+ uint8_t payload[512];
+
+ head = 0;
+ head = head | MQTT_PUBLISH;
+ head = head | PUBLISH_FLAG_RETN;
+ head = head | PUBLISH_FLAG_QOS1;
+
+ i = 0;
+ mqtt_str_fill(&vhead[i], topic);
+ i = i + strlen(topic) + 2;
+ vhead[i++] = msg_id >> 8;
+ vhead[i++] = msg_id;
+
+ j = 0;
+ memcpy(payload, msg, msg_len);
+ j = j + msg_len;
+
+ mqtt_send(head, i, vhead, j, payload);
+
+ if (mqtt_ack_check(MQTT_PUBACK, 100, msg_id) != 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static int mqtt_publish_ack(uint16_t msg_id)
+{
+ uint32_t i, j;
+ uint8_t vhead[512];
+ uint8_t head;
+ uint8_t payload[512];
+ head = MQTT_PUBACK;
+ i = 0;
+ vhead[i++] = msg_id >> 8;
+ vhead[i++] = msg_id;
+ j = 0;
+ mqtt_send(head, i, vhead, j, payload);
+ return 0;
+}
+
+static int mqtt_subscriber(char *topic, uint16_t msg_id)
+{
+ uint32_t i, j;
+ uint8_t vhead[512];
+ uint8_t payload[512];
+ uint8_t head;
+ head = MQTT_SUBSCRIBE;
+ head = head | 0x02;
+ i = 0;
+ vhead[i++] = msg_id >> 8;
+ vhead[i++] = msg_id;
+
+ j = 0;
+ mqtt_str_fill(&payload[j], topic);
+ j = j + strlen(topic) + 2;
+ payload[j++] = 1;
+ mqtt_send(head, i, vhead, j, payload);
+ if (mqtt_ack_check(MQTT_SUBACK, 100, msg_id) != 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static int mqtt_publish_from_cloud(uint8_t *ackbuff, uint16_t ack_len)
+{
+ uint32_t i = 0;
+ uint16_t multiplier = 1;
+ uint32_t remain_len = 0;
+ uint32_t vhead_len;
+ uint32_t payload_len;
+ uint8_t byte;
+ uint8_t payload[512];
+ uint16_t msg_id;
+ uint8_t topic[256];
+ i = 1;
+
+ memset(topic, 0, 256);
+ memset(payload, 0, 256);
+ do {
+ byte = ackbuff[i++];
+ remain_len += (byte & 0x7F) * multiplier;
+ multiplier *= 128;
+ if (multiplier > 128 * 128 * 128) {
+ return -1;
+ }
+ } while ((byte & 0x80) != 0);
+ vhead_len = ackbuff[i++];
+ vhead_len = (vhead_len * 256) + ackbuff[i++];
+ memcpy(topic, &ackbuff[i], vhead_len);
+
+ i = i + vhead_len;
+ msg_id = ackbuff[i++];
+ msg_id = (msg_id * 256) + ackbuff[i++];
+
+ payload_len = remain_len - vhead_len - 4;
+
+ memcpy(payload, &ackbuff[i], payload_len);
+ if (strcmp((char*) topic, MQTT_TOPIC_DELTA) == 0) {
+ sensor_data_set(payload);
+ }
+ mqtt_publish_ack(msg_id);
+ return 0;
+}
+
+uint16_t msg_id = 1;
+
+int mqtt_beat(void)
+{
+ uint8_t head = MQTT_PINGREQ;
+ uint8_t vhead[5];
+ uint8_t payload[5];
+ uint32_t i = 0, j = 0;
+ mqtt_send(head, i, vhead, j, payload);
+ if (mqtt_ack_check(MQTT_PINGRESP, 100, 0) != 0) {
+ if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
+ return -1;
+ }else{
+ return 0;
+ }
+ }
+ return 0;
+}
+
+int mqtt_handle(void)
+{
+ uint8_t recv_head;
+ uint8_t recv_buff[RX_BUFF_LEN];
+ uint16_t recv_len;
+
+ if (mqtt_recv(recv_buff, &recv_len, 0) != 0) {
+ return -1;
+ }
+ recv_head = recv_buff[0];
+
+ switch (recv_head & 0xF0) {
+ case MQTT_PUBLISH:
+ return mqtt_publish_from_cloud(recv_buff, recv_len);
+ default:
+ return -1;
+ }
+ return -1;
+}
+
+int mqtt_publish_update(uint8_t *msg, uint16_t msg_len)
+{
+ if (mqtt_publish(MQTT_TOPIC_UPDATE, msg, msg_len, msg_id++) != 0) {
+ return -1;
+ }
+ return 0;
+}
+
+int mqtt_init(void)
+{
+ if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
+ mqtt_disconnect();
+ esp8266_init();
+ HAL_Delay(100);
+ if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
+ return -1;
+ }
+ }
+
+ if (mqtt_subscriber(MQTT_TOPIC_DELTA, msg_id++) != 0) {
+ return -1;
+ }
+ return 0;
}
diff --git a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.h b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.h
index c34d1324..6d6e38e2 100644
--- a/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.h
+++ b/firmware/stm32/smart_dormitory/User/xiaoyi_wifi/mqtt.h
@@ -1,27 +1,70 @@
#ifndef __MQTT_H
#define __MQTT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "main.h"
#include "esp8266.h"
-/*
-*以下参数需要用户自行修改才能测试用过
-*/
-
#define User_ESP8266_SSID "brown" //wifi名
#define User_ESP8266_PWD "123456789a" //wifi密码
#define User_ESP8266_client_id "50fccfefb50a48b98a93ce27bb04591f" //MQTTclientID 用于标志client身份 最长256字节
#define User_ESP8266_username "admin" //用于登录 MQTT 服务器 的 username, 最长 64 字节
-#define User_ESP8266_password "admin13" //用于登录 MQTT 服务器 的 password, 最长 64 字节
+#define User_ESP8266_password "admin123" //用于登录 MQTT 服务器 的 password, 最长 64 字节
#define User_ESP8266_MQTTServer_IP "106.12.9.213" //MQTT本地服务器IP
#define User_ESP8266_MQTTServer_PORT 1883 //服务器端口号
#define User_ESP8266_MQTTServer_Topic_PUB "status" //发布MQTT主题
#define User_ESP8266_MQTTServer_Topic_SUB "status/set/E8DB84933089" //订阅MQTT主题
+enum{
+ MQTT_NULL = 0,
+ MQTT_CONNECT = 1 << 4,
+ MQTT_CONNACK = 2 << 4,
+ MQTT_PUBLISH = 3 << 4,
+ MQTT_PUBACK = 4 << 4,
+ MQTT_PUBREC = 5 << 4,
+ MQTT_PUBREL = 6 << 4,
+ MQTT_PUBCOMP = 7 << 4,
+ MQTT_SUBSCRIBE = 8 << 4,
+ MQTT_SUBACK = 9 << 4,
+ MQTT_UNSUBSCRIBE= 10 << 4,
+ MQTT_UNSUBACK = 11 << 4,
+ MQTT_PINGREQ = 12 << 4,
+ MQTT_PINGRESP = 13 << 4,
+ MQTT_DISCONNECT = 14 << 4,
+}MQTT_HEAD_T;
-void ESP8266_STA_MQTTClient_Init(void);
+enum{
+ CONNECT_FLAG = 0,
+ CONNECT_FLAG_NAME = 1 << 7,
+ CONNECT_FLAG_PWD = 1 << 6,
+ CONNECT_FLAG_RETAIN = 1 << 5,
+ CONNECT_FLAG_QOS = 1 << 4,
+ CONNECT_FLAG_FLAG = 1 << 2,
+ CONNECT_FLAG_CLS = 1 << 1,
+}CONNECT_T;
+enum{
+ PUBLISH_FLAG_RETN = 1,
+ PUBLISH_FLAG_QOS0 = 0,
+ PUBLISH_FLAG_QOS1 = 1 << 1,
+ PUBLISH_FLAG_QOS2 = 1 << 2,
+ PUBLISH_FLAG_DUP = 1 << 3,
+}PUBLISH_FLAG_T;
+
+int mqtt_init(void);
+int mqtt_handle(void);
+int mqtt_beat(void);
+int mqtt_publish_update(uint8_t *msg, uint16_t msg_len);
+
+
+#ifdef __cplusplus
+}
#endif
+#endif /* __MQTT_H */
+
diff --git a/spring-boot/ruoyi-admin/src/main/resources/application-druid.yml b/spring-boot/ruoyi-admin/src/main/resources/application-druid.yml
index 4b8de442..41297b37 100644
--- a/spring-boot/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/spring-boot/ruoyi-admin/src/main/resources/application-druid.yml
@@ -8,7 +8,7 @@ spring:
master:
url: jdbc:mysql://localhost:3306/wumei-smart?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
- password: admin123
+ password: root
# 浠庡簱鏁版嵁婧
slave:
# 浠庢暟鎹簮寮鍏/榛樿鍏抽棴
diff --git a/spring-boot/ruoyi-admin/src/main/resources/application.yml b/spring-boot/ruoyi-admin/src/main/resources/application.yml
index 7643ef3f..8a05437d 100644
--- a/spring-boot/ruoyi-admin/src/main/resources/application.yml
+++ b/spring-boot/ruoyi-admin/src/main/resources/application.yml
@@ -65,7 +65,7 @@ spring:
# 鏁版嵁搴撶储寮
database: 0
# 瀵嗙爜
- password: admin123
+ password:
# 杩炴帴瓒呮椂鏃堕棿
timeout: 10s
lettuce: