Browse Source

add mqttRe

zack 1 year ago
parent
commit
5382c931a0
1 changed files with 23 additions and 12 deletions
  1. 23 12
      Core/Src/tt808.c

+ 23 - 12
Core/Src/tt808.c

@@ -541,19 +541,20 @@ void MqttRe(void)
 				dblocptr->headinfo.loc_pullIndex=0;
 				Flash_WriteBytes((uint16_t*)&(dblocptr->headinfo),LocDbHeadStart,4);//更新刻度
 				printf("更新刻度成功\r\n");
+				MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 		 }	
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+JT808_IMEI=",  strlen("DTU+JT808_IMEI="))==0)//修改IME号
 		 {
-			memcpy(DTUurc1,MqttWorkBuff+15,12);
-			const char *hex = (const char *)DTUurc1;  // 将 uint8_t * 转换为 const char *
-			int size = strlen(hex) / 2;  // 计算二进制数据的长度
-			unsigned char *bin = (unsigned char *)malloc(size);  // 分配足够的内存用于存储二进制数据
-			rlt = hex2bin(bin, hex);  // 调用hex2bin函数进行转换
-			memcpy(DTUurc, bin, rlt);  // 将 bin 中的 rlt 个字节复制到 MIPurc1 中						接收到的数据放入MIPurc1中
-			free(bin);  // 释放内存  
-			 
-			reIME = true;
-			HAL_Delay(500);
+				memcpy(DTUurc1,MqttWorkBuff+15,12);
+				const char *hex = (const char *)DTUurc1;  // 将 uint8_t * 转换为 const char *
+				int size = strlen(hex) / 2;  // 计算二进制数据的长度
+				unsigned char *bin = (unsigned char *)malloc(size);  // 分配足够的内存用于存储二进制数据
+				rlt = hex2bin(bin, hex);  // 调用hex2bin函数进行转换
+				memcpy(DTUurc, bin, rlt);  // 将 bin 中的 rlt 个字节复制到 MIPurc1 中						接收到的数据放入MIPurc1中
+				free(bin);  // 释放内存  
+				MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
+				reIME = true;
+				HAL_Delay(500);
 		 }		 
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+JT808_SERVER=",  strlen("DTU+JT808_SERVER="))==0)
 		 {
@@ -580,6 +581,7 @@ void MqttRe(void)
 				ptr += sprintf(ptr, "%d.", ipaddr.IP2);
 				ptr += sprintf(ptr, "%d", ipaddr.IP3);
 				printf("更换IP成功\r\n");
+				MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 			 }
 			//ptr += sprintf(ptr, ":%d", ipaddr.IPp);
 			//printf("%s\r\n",Newip);
@@ -590,6 +592,7 @@ void MqttRe(void)
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+VER=?",  strlen("DTU+VER=?"))==0)
 		 {
 			printf("%s\r\n",version);
+			MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 		 }
 		 
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+MANUALMODE=1",  strlen("DTU+MANUALMODE=1"))==0)
@@ -597,12 +600,14 @@ void MqttRe(void)
 			ManualWork = 1;
 			Flash_WriteBytes(&ManualWork,ManualWorkaddr,1);
 			printf("手动模式开启\r\n");
+			MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 		 }		 
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+MANUALMODE=0",  strlen("DTU+MANUALMODE=0"))==0)
 		 {
 			ManualWork = 0;
 			Flash_WriteBytes(&ManualWork,ManualWorkaddr,1);
 			printf("手动模式关闭\r\n");
+			MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 		 }		 
 		 		 
 		 
@@ -610,7 +615,7 @@ void MqttRe(void)
 		 
 	 HAL_StatusTypeDef WriteSta;
 	//*PDA需求	485写入MAC号
-	 if(strncmp((char*)MqttWorkBuff, "DTU+ADDMAC",  strlen("DTU+ADDMAC"))==0)
+	 if(strncmp((char*)MqttWorkBuff, "DTU+ADDMAC=",  strlen("DTU+ADDMAC="))==0)
 	 {
 		 
 		macset.macCount=0;
@@ -670,6 +675,7 @@ void MqttRe(void)
 			if(WriteSta == HAL_OK)
 			{
 				printf("更新存储刻度完成\r\n");
+				MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 			}	
 			ReadSNname();//更新
 			Process_str_collections();//处理连接字符串		
@@ -685,17 +691,22 @@ void MqttRe(void)
 		 {
 			enterInterface_time = HAL_GetTick();
 			SET_MENU_STATUS(2,2,0,0);
+			MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 			Allopen=true;
 		 }
 		 else if(strncmp((char*)MqttWorkBuff, "DTU+WORK=ALLCLOSE",  strlen("DTU+WORK=ALLCLOSE"))==0)
 		 {	
 			enterInterface_time = HAL_GetTick();
 			SET_MENU_STATUS(2,1,1,1);
+			MQTT_PUB(0,topica,"Success","+MQTTURC: \"puback\"");
 			Allopen=true;
 		 }	 
 		 
 		 
-	 
+	 else
+	 {
+		MQTT_PUB(0,topica,"Error","+MQTTURC: \"puback\"");
+	 }