zack il y a 1 an
Parent
commit
2cb6306300
8 fichiers modifiés avec 111 ajouts et 58 suppressions
  1. 5 0
      Core/Inc/oledfont.h
  2. 11 10
      Core/Src/freertos.c
  3. 20 0
      Core/Src/interface.c
  4. 4 4
      Core/Src/key.c
  5. 3 3
      Core/Src/main.c
  6. 16 3
      Core/Src/ml307a.c
  7. 13 0
      Core/Src/rtc.c
  8. 39 38
      Core/Src/tt808.c

+ 5 - 0
Core/Inc/oledfont.h

@@ -552,6 +552,11 @@ const unsigned char Hzk5[][24]={	//12*12
 {0x20,0x10,0xFC,0x03,0x08,0x07,0xFC,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x01,0x01,0x01,0x01,0x00},/*"鱗",31*/
 {0x48,0x2A,0x98,0x7F,0x28,0x4A,0x10,0xEF,0x08,0xF8,0x08,0x00,0x09,0x0B,0x05,0x05,0x0B,0x00,0x08,0x05,0x02,0x05,0x08,0x00},/*"鑒",32*/
 	
+{0x20,0x22,0x22,0x22,0xE2,0x3E,0xE2,0x22,0x22,0x22,0x20,0x00,0x08,0x04,0x02,0x01,0x00,0x00,0x07,0x08,0x08,0x08,0x0E,0x00},/*"轟",33*/
+{0x88,0x88,0xFF,0x48,0x70,0x57,0x75,0x85,0x75,0x57,0x70,0x00,0x00,0x08,0x0F,0x00,0x09,0x05,0x03,0x0F,0x03,0x05,0x09,0x00},/*"꾸",34*/
+{0x20,0x10,0xFC,0x03,0x08,0x07,0xFC,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x01,0x01,0x01,0x01,0x00},/*"鱗",35*/
+{0x88,0x68,0xFF,0x48,0x02,0x3E,0xC2,0x02,0xC2,0x3E,0x00,0x00,0x00,0x00,0x0F,0x00,0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x00},/*"홈",36*/
+{0xFF,0x01,0x19,0xE7,0x00,0xFF,0x49,0xC9,0x49,0x7F,0x80,0x00,0x0F,0x02,0x02,0x01,0x00,0x0F,0x04,0x01,0x02,0x05,0x08,0x00},/*"掘",37*/
 
 	
 };

+ 11 - 10
Core/Src/freertos.c

@@ -269,26 +269,28 @@ void StartTestTask(void const * argument)
 	{
 		Allopen=false;
 		uint8_t macset[]={macsetptr->macCount&0xff};
-		tt808FsFunc(macset, 1, MessageID_Getauth);//全部打开获取权限
-		
+		tt808FsFunc(macset, 1, MessageID_Getauth);//全部打开获取权限	   
 	}		
 	
    if(reAuth)
-   {//权限回复正确
+   {
+	  //权限回复正确
 	  HAL_Delay(500);
 	  reAuth = false;		
 	   if(menu.enter==0)
 	   {
-		    openOrClose = menu.enter;
-		    SET_MENU_STATUS(3,1,0,4);
+		  openOrClose = menu.enter;
+		  SET_MENU_STATUS(3,1,0,4);
+
 	   }
 	   if(menu.enter==1)
 	   {
-		    openOrClose = menu.enter;
-		    SET_MENU_STATUS(3,0,1,4);
+		   openOrClose = menu.enter;
+		   SET_MENU_STATUS(3,0,1,4);
 	   }	 
    }
    
+
    if(menu.current==3 && menu.enter==4 && macsetptr->macCount>0)
    {
 	  //uint8_t lockCount = macsetptr->macCount;//共操作锁数
@@ -340,7 +342,7 @@ void StartloginfoTaskTask(void const * argument)
 		if(uploaweork)
 		{
 			tt808FsFunc((uint8_t*)&(dblocptr->location.alarmFlagH), 34, MessageID_location);
-			
+			printf("上传定位成功\r\n");
 		}
 	}
 #if timingPush ==1
@@ -353,7 +355,7 @@ void StartloginfoTaskTask(void const * argument)
 	}	
 	
 	timemqttHearbeat+=1;
-	if(timemqttHearbeat==12)//2min
+	if(timemqttHearbeat==12)//2min-12
 	{
 		timemqttHearbeat=0; 
 		char* hexString = convertHexToString(copyAddress, sizeof(copyAddress));
@@ -363,7 +365,6 @@ void StartloginfoTaskTask(void const * argument)
 			MQTT_PUB(0,topica,hexString,"+MQTTURC: \"puback\"");
 			free(hexString);
 		}
-		
 	}
 
 #endif

+ 20 - 0
Core/Src/interface.c

@@ -29,6 +29,7 @@ void ApplyPermission(void);//
 void PleaseWakeUp(void);//½çÃæ3 Ç뻽ÐÑ
 void SecondMain(void);//´ÎÖ÷½çÃæ
 void MACbindDisplay(void);//½çÃæ4
+void Nopermission(void);
 /**
   * @breaf ½çÃæÌø×ª
   */
@@ -85,12 +86,31 @@ void Jump_interface(void)
 			lockWork();
 			break;
 		}
+		case 7:
+		{
+			if(HAL_GetTick()-enterInterface_time > 3000)
+			{
+				ReturnInterface = true;
+			}
+			Nopermission();
+			break;
+		}
 
 	}
 
 	
 }
 
+//*33-37ÎÞ²Ù×÷ȨÏÞ
+void Nopermission(void)
+{
+	OLED_ShowChinese(15,25,33,12,1);//ÎÞ
+	OLED_ShowChinese(30,25,34,12,1);//²Ù
+	OLED_ShowChinese(45,25,35,12,1);//×÷
+	OLED_ShowChinese(60,25,36,12,1);//Ȩ
+	OLED_ShowChinese(75,25,37,12,1);//ÏÞ
+}
+
 
 void MACbindDisplay(void)
 {

+ 4 - 4
Core/Src/key.c

@@ -269,6 +269,7 @@ uint8_t KEY_4_Scan_PDA(void)
 							break;
 						}
 						case 5:
+						case 7:
 						{
 							menu.current=1;
 							menu.enter=0;
@@ -298,15 +299,14 @@ uint8_t KEY_4_Scan_PDA(void)
 
 
 
-
 void updatekeystate(void)
 {
-	if(ManualWork==1)
-	{
+//	if(ManualWork==1)
+//	{
 		KEY_1_Scan_PDA();
 		KEY_2_Scan_PDA();
 		KEY_3_Scan_PDA();
 		KEY_4_Scan_PDA();
-	}
+//	}
 }
 

+ 3 - 3
Core/Src/main.c

@@ -56,9 +56,9 @@ void Jump_interface_PDA(void);
 uint16_t sys_mode[2];
 bool wdiFlag = false;
 
-char version[] = "\r\nVER:dtu-20240428\r\n";
+char version[] = "\r\nVER:dtu-20240506\r\n";
 
-uint16_t ManualWork=0; 
+uint16_t ManualWork=1; 
 /* USER CODE END PM */
 
 /* Private variables ---------------------------------------------------------*/
@@ -214,11 +214,11 @@ uint16_t mac_u16[24];
 void ReadSNname(void)
 {
 	Flash_ReadBytes(&macsetptr->macCount,MacDbHeadAddr,1);//获取共存多少MAC(用于重启写入)
-	Flash_ReadBytes(&ManualWork,ManualWorkaddr,1);
 	if(macsetptr->macCount==0xFFFF)
 	{
 		macsetptr->macCount=0;
 	}
+
 	Flash_ReadBytes_mac(mac_u16,MacDbBodyAddr,3+(3*(macsetptr->macCount-1)));
 	
 	if(macsetptr->macCount==1)

+ 16 - 3
Core/Src/ml307a.c

@@ -78,7 +78,8 @@ void ML307A_Init(void)
 		ptr += sprintf(ptr, "%d.", ipaddr.IP2);
 		ptr += sprintf(ptr, "%d", ipaddr.IP3);	
 	}
-
+	
+	
 	printf("\t###02\t4G_init...%d\r\n",resetcount_4g); 
 	sendCmd_4G("AT+MGNSS=0\r\n", "OK", 1, 1);//关闭MGNSS
 	sendCmd_4G("AT+MQTTDISC=0\r\n", "OK", 1, 1);//关闭MQTT
@@ -111,7 +112,6 @@ void ML307A_Init(void)
 				printf("#4G模组状态正常\r\n");
 				step4g++;
 			}
-
 			//break;
 		}		
 		case 2:
@@ -122,7 +122,6 @@ void ML307A_Init(void)
 				printf("#4G模组初始化完成\r\n");
 				step4g++;
 			}	
-
 			//break;
 		}	
 		case 3:
@@ -202,6 +201,20 @@ void ML307A_Init(void)
 		
 	}
 
+	
+	
+	
+	
+	Flash_ReadBytes(&ManualWork,ManualWorkaddr,1);
+	printf("%04X\r\n",ManualWork);
+	if(ManualWork==0xFFFF)
+	{
+		ManualWork=1;
+	}
+	printf("%04X\r\n",ManualWork);
+		
+	
+	
 	menu.current=0;//默认进入PDA
 	refresh=true;	
 

+ 13 - 0
Core/Src/rtc.c

@@ -145,4 +145,17 @@ void SyncTime(uint8_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t mi
 	Error_Handler();
   }
 }
+
+
+
+
+
+
+
+
+
+
+
+
+
 /* USER CODE END 1 */

+ 39 - 38
Core/Src/tt808.c

@@ -21,7 +21,25 @@ uint8_t speedEnd=0;
 uint8_t speed[10];		//处理头部
 uint8_t DTUurc[100];	//接收平台数据
 uint8_t DTUurc1[15];	//接收平台数据
+char input_strings[20]={0};
+char reIp0[10];
+char reIp1[10];
+char reIp2[10];
+char reIp3[10];
+char reIpP[10];
+Ipaddr ipaddr;
+MacSet macset;
+MacSet *macsetptr = &macset;
+char Newip[30];
+extern bool wdiFlag;
 
+char MqttReBuff[200];
+char MqttWorkBuff[200];
+char Mqtttotal_len[10];
+char payload_len[10];
+uint8_t Mqtttotal_lenu8=0;
+uint8_t payload_lenu8=0;
+char versionc[20]={0};
 
 int pushpullcount = 0;
 double dSpeed=0;
@@ -64,21 +82,21 @@ void reconn(void)
 	TcpConn(TCPconnvalue, 1, JLPTIP, JLPTPORT,0);		//cid=1		tcpConnmode=0 普通模式
 	if(sendCmd_4G(TCPconnvalue, "+MIPOPEN: 1,0", 1, 1))	//TCP连接 0普通模式  2缓存模式  1透传模式
 	{
-		printf("重连成功\r\n");
+		printf("进行重连,未验证连通性\r\n");
 	}
 }
 uint8_t Messagetemp_length=0;
 uint8_t MessageHandleData[100];	//放入封装后数据
 uint8_t tcppacket[100]; //消息数据
-uint8_t copyAddress[49];
+uint8_t copyAddress[49]={0};
 void MessageHandle(uint16_t MessageID)
 {
 
-	Flash_ReadBytes((uint16_t*)&(tt808.LSH),tt808serialNum,1);//读取loc头部是否发生写入
-	if(tt808.LSH==0xFFFF)
-	{
+//	Flash_ReadBytes((uint16_t*)&(tt808.LSH),tt808serialNum,1);//读取loc头部是否发生写入
+//	if(tt808.LSH==0xFFFF)
+//	{
 		tt808.LSH=0;//初始未写入
-	}
+//	}
 	uint16_t MessageAttributeData = Messagetemp_length;
 
 	MessageAttributeData |= ( Messagetemp_length | (TCPJMFSNULL<<10)); // 将长度左移3位后和加密方式进行按位或操作(001 RSA ,000 无加密)
@@ -132,10 +150,14 @@ void MessageHandle(uint16_t MessageID)
 //		printf("%02X ", tcppacket[i]);  // 以十六进制格式打印每个元素
 //	}
 	printf("\r\n");
-	memcpy(copyAddress,tcppacket,49);
+	
+//	if(MessageID==MessageID_location)
+//	{
+		memcpy(copyAddress,tcppacket,index);//0200mqtt心跳信息(无网络重复发送鉴权报文)
+//	}
 	
 //#if open4G ==1
-	char TCPvalue[120];
+	char TCPvalue[200];
 	char *ptr = TCPvalue;
 	ptr += sprintf(ptr, "AT+MIPSEND=1,%d,\"",index);
 	for (int i = 0; i < index; i++) {
@@ -148,9 +170,8 @@ void MessageHandle(uint16_t MessageID)
 	}
 //#endif
 	
-	
 	tt808.LSH+=1;//需做写入处理
-	Flash_WriteBytes((uint16_t*)&(tt808.LSH),tt808serialNum,1);
+//	Flash_WriteBytes((uint16_t*)&(tt808.LSH),tt808serialNum,1);
 }
 uint16_t swapBytes16(uint16_t value) {
     return (value >> 8) | (value << 8);
@@ -159,6 +180,7 @@ uint32_t swapBytes32(uint32_t value) {
     return ((value & 0xFF) << 24) | ((value & 0xFF00) << 8) |
            ((value >> 8) & 0xFF00) | ((value >> 24) & 0xFF);
 }
+
 /**
   * @breaf 消息体封装
   * Message[] 消息数据;	length 消息数据长度;	outMessage[] 封装后消息数据; MessageID 消息ID
@@ -187,7 +209,6 @@ uint8_t Message_bodydata(uint8_t *Message, uint8_t length, uint8_t outMessage[],
 	}
 	else if(MessageID==MessageID_location)//终端地址0200  补传0704
 	{
-		
 		temp_length = length;//不加首尾
 		//状态标志/纬度/经度/速度
 
@@ -196,7 +217,6 @@ uint8_t Message_bodydata(uint8_t *Message, uint8_t length, uint8_t outMessage[],
 			temp_Message[index++] = Message[i];  // 将消息头拷贝到报文中
 		}
 		
-		
 		for(int i =0;i<temp_length;i++)
 		{
 			outMessage[i]=temp_Message[i];
@@ -485,24 +505,7 @@ void hexToBcd_arr(uint8_t* array, size_t length, uint8_t* out) {//通
         out[i] = hexToBcd(array[i]);
     }
 }
-char input_strings[20]={0};
-char reIp0[10];
-char reIp1[10];
-char reIp2[10];
-char reIp3[10];
-char reIpP[10];
-Ipaddr ipaddr;
-MacSet macset;
-MacSet *macsetptr = &macset;
-char Newip[30];
-extern bool wdiFlag;
 
-char MqttReBuff[200];
-char MqttWorkBuff[200];
-char Mqtttotal_len[10];
-char payload_len[10];
-uint8_t Mqtttotal_lenu8=0;
-uint8_t payload_lenu8=0;
 
 void Process_str_collections(void) {
     // 循环遍历从0到macCount-1的每个索引
@@ -515,7 +518,6 @@ void Process_str_collections(void) {
         );
     }
 }
-char versionc[20]={0};
 void MqttRe(void)
 {
 	 if(strncmp((const char *)U4_4GrecvBuff, "+MQTTURC: \"publish\"",  strlen("+MQTTURC: \"publish\""))==0)//接收到发布信息
@@ -527,7 +529,6 @@ void MqttRe(void)
 		 Mqtttotal_lenu8 = atoi(Mqtttotal_len);
 		 payload_lenu8 = atoi(payload_len);
 		 
-		 
 		 //printf("%d,%d\r\n",Mqtttotal_lenu8,payload_lenu8);
 		 if(Mqtttotal_lenu8==payload_lenu8)
 		 {
@@ -739,11 +740,11 @@ void Test485Re(void)
 	 }	
 	 else if(strncmp((char*)U1_485recvBuff, "+MIPOPEN: 1,0",  strlen("+MIPOPEN: 1,0"))==0)//连接平台
 	 {
-		 Offline=false;
-		 Online = true;
-		 uploaweork=true;
-		 printf("@U1设备已上线!!\r\n");
-		 refresh=true;
+//		 Offline=false;
+//		 Online = true;
+//		 uploaweork=true;
+//		 printf("@U1设备已上线!!\r\n");
+//		 refresh=true;
 		 memset(U1_485recvBuff,0,BUFFER_SIZE);
 	 }	
 
@@ -972,13 +973,13 @@ void ReMIPURC(void)//DTU
 //*设备上线,发送成功
 	 if(strncmp((char*)U4_4GrecvBuff, "+MIPOPEN: 1,0",  strlen("+MIPOPEN: 1,0"))==0)//连接平台
 	 {
+		 printf("进行连接,连通性未验证\r\n");
 		 memset(U4_4GrecvBuff,0,BUFFER_SIZE);
 	 }	 
 ///*定位信息(MGNSS)
 	 else if(strncmp((char*)U4_4GrecvBuff, "+MGNSSURC: \"state\",1",  strlen("+MGNSSURC: \"state\",1"))==0)
 	 {
 		 printf("@MGNSS设置成功\r\n");
-		
 		 memset(U4_4GrecvBuff,0,strlen("+MGNSSURC: \"state\",1"));
 	 }
 	 else if(strncmp((char*)U4_4GrecvBuff, "+MGNSSURC: \"state\",0",  strlen("+MGNSSURC: \"state\",0"))==0)//断开平台
@@ -1003,7 +1004,7 @@ void ReMIPURC(void)//DTU
 		 printf("@未发送成功,平台断开连接\r\n");
 		 memset(U4_4GrecvBuff,0,BUFFER_SIZE);
 		 uploaweork = false;
-		 reconn();//重连
+		 //reconn();//重连
 	 }
 	 else if((strncmp((char*)U4_4GrecvBuff, "+CPIN: SIM REMOVED", strlen("+CPIN: SIM REMOVED"))==0) || (strncmp((char*)U4_4GrecvBuff, "+CME ERROR: 10", strlen("+CME ERROR: 10"))==0) )//无SIM
 	 {