Преглед на файлове

Modify MQTT heartbeat (0200)

zack преди 1 година
родител
ревизия
21677858ca
променени са 5 файла, в които са добавени 26 реда и са изтрити 10 реда
  1. 2 2
      Core/Inc/tt808.h
  2. 9 4
      Core/Src/freertos.c
  3. 1 1
      Core/Src/main.c
  4. 1 1
      Core/Src/ml307a.c
  5. 13 2
      Core/Src/tt808.c

+ 2 - 2
Core/Inc/tt808.h

@@ -3,10 +3,10 @@
 #include "main.h"
 
 
-
+extern uint8_t copyAddress[49];
 
 char *bin2hex(char *hex, const unsigned char *bin, int size);
-
+char* convertHexToString(const uint8_t* data, size_t dataSize) ;
 int hex2bin(unsigned char *bin, const char *hex);
 void tt808FsFunc(uint8_t* Message, uint8_t length, uint16_t MessageID);
 void MIPURCHandle(void);

+ 9 - 4
Core/Src/freertos.c

@@ -330,7 +330,7 @@ void StartloginfoTaskTask(void const * argument)
 	}
 #endif
 	
-	//PushpullWork();
+	PushpullWork();
 	
 	//*30s上传信息
 	nomalCount+=1;
@@ -355,9 +355,14 @@ void StartloginfoTaskTask(void const * argument)
 	timemqttHearbeat+=1;
 	if(timemqttHearbeat==12)//2min
 	{
-		timemqttHearbeat=0;
-		//*向主题a发布(保活心跳30s)
-		MQTT_PUB(0,topica,"1234","+MQTTURC: \"puback\"");
+		timemqttHearbeat=0; 
+		char* hexString = convertHexToString(copyAddress, sizeof(copyAddress));
+		if (hexString != NULL) {
+			printf("Hex as string: %s\n", hexString);
+			//*向主题a发布(保活心跳2min 定位数据)
+			MQTT_PUB(0,topica,hexString,"+MQTTURC: \"puback\"");
+			free(hexString);
+		}
 		
 	}
 

+ 1 - 1
Core/Src/main.c

@@ -130,7 +130,7 @@ int main(void)
   __HAL_UART_ENABLE_IT(&huart5, UART_IT_RXNE);//¿ªÆôBT½ÓÊÕÖжÏ
 
   START_PROCESS();
-  //Database_init(0x760,0x760,0x5,0x5);//760
+  Database_init(0x760,0x760,0x5,0x5);//760
     
   
   MBA32A_Init();

+ 1 - 1
Core/Src/ml307a.c

@@ -245,7 +245,7 @@ uint8_t MQTT_CONN(char *IpAddr, uint16_t port, char *ID, char *User, char *Passw
 }
 uint8_t MQTT_PUB(uint8_t connect_id, char *topic, char *mesg, char* pRes)
 {
-	char MQTT_Sendbuf[128]; 
+	char MQTT_Sendbuf[200]; 
 	uint8_t length = strlen(mesg);
 	sprintf((char *)MQTT_Sendbuf,"AT+MQTTPUB=%d,\"%s\",1,0,0,%d,\"%s\"\r\n",connect_id, topic, length, mesg);
 	if(sendCmd_4G(MQTT_Sendbuf,pRes,1,1))

+ 13 - 2
Core/Src/tt808.c

@@ -70,6 +70,7 @@ void reconn(void)
 uint8_t Messagetemp_length=0;
 uint8_t MessageHandleData[100];	//放入封装后数据
 uint8_t tcppacket[100]; //消息数据
+uint8_t copyAddress[49];
 void MessageHandle(uint16_t MessageID)
 {
 
@@ -131,7 +132,7 @@ void MessageHandle(uint16_t MessageID)
 //		printf("%02X ", tcppacket[i]);  // 以十六进制格式打印每个元素
 //	}
 	printf("\r\n");
-	
+	memcpy(copyAddress,tcppacket,49);
 	
 //#if open4G ==1
 	char TCPvalue[120];
@@ -864,7 +865,17 @@ void processPdadata(char MACtemp[], uint8_t mactemp[],uint16_t mac[])
 	mac[1] = mactemp[2]<<8|mactemp[3];
 	mac[2] = mactemp[4]<<8|mactemp[5];
 }
-
+char* convertHexToString(const uint8_t* data, size_t dataSize) {
+    char* output = (char*)malloc((dataSize * 2 + 1) * sizeof(char));
+    if (output == NULL) {
+        return NULL;
+    }
+    for (size_t i = 0; i < dataSize; i++) {
+        sprintf(output + (i * 2), "%02X", data[i]);
+    }
+    output[dataSize * 2] = '\0';
+    return output;
+}
 #define MAC_LENGTH 12
 #define MAC_DB_ENTRY_SIZE 3
 void REPdaMode(void)