Parcourir la source

add Data&Location Upload&Distribute MAC

zack il y a 1 an
Parent
commit
6c7bb73568
20 fichiers modifiés avec 5468 ajouts et 4860 suppressions
  1. 21 6
      Core/Inc/ConfigMacros.h
  2. 6 0
      Core/Inc/main.h
  3. 14 4
      Core/Inc/mba32a.h
  4. 3 3
      Core/Inc/ml307a.h
  5. 1 1
      Core/Inc/rtc.h
  6. 28 7
      Core/Inc/tt808.h
  7. 3 3
      Core/Inc/usart.h
  8. 79 53
      Core/Src/freertos.c
  9. 20 8
      Core/Src/interface.c
  10. 45 2
      Core/Src/key.c
  11. 130 12
      Core/Src/main.c
  12. 29 8
      Core/Src/mba32a.c
  13. 48 25
      Core/Src/ml307a.c
  14. 42 43
      Core/Src/rtc.c
  15. 570 609
      Core/Src/tt808.c
  16. 4 4
      Core/Src/usart.c
  17. 25 25
      MDK-ARM/dtu.uvoptx
  18. 5 5
      MDK-ARM/dtu.uvprojx
  19. 4394 4041
      Output/dtu.hex
  20. 1 1
      Output/dtu.lnp

+ 21 - 6
Core/Inc/ConfigMacros.h

@@ -56,16 +56,18 @@
 #define JLPTPORT	7342
 
 
+#define XGPTIP		"118.31.22.26"
+#define XGPTPORT	8901
+
+
+
+
 #define LockStatusOpen  0x60
 #define LockStatusClose 0x40
-#define LockStatusNull  0xAA
+#define LockStatusNull  0x00
 
-#define XXIDzdy		0x1234
-#define XXIDxfMac1	0x1235
-#define XXIDxfMac2	0x1236
-#define XXIDxfMac3	0x1237
-#define XXIDxfMac4	0x1238
 
+#define DongbaquTime  	0x8		//东八区时间
 #define YES 0x00
 #define NO  0x01
 
@@ -74,6 +76,8 @@
 #define XXIDzdjq	0x0102 //鉴权
 #define XXIDzdxt	0x0002 //心跳
 #define XXIDzddz	0x0200 //地址
+#define XXIDwbsc	0x0300 //锁文本上传/平台下发施解封
+#define XXIDbdMac	0x1202 //平台下发绑定mac
 
 
 #define XXIDpttyyd	0x8001	//通用应答
@@ -258,6 +262,7 @@ typedef struct {
 
 typedef struct {
     uint8_t LSH;
+	
 	uint8_t L1Lockstatus;
 	uint8_t L2Lockstatus;
 	uint8_t L3Lockstatus;
@@ -321,6 +326,16 @@ typedef struct {
 
 
 
+typedef struct {
+	
+	uint8_t L1snT8[2]; 
+	uint8_t L2snT8[2]; 
+	uint8_t L3snT8[2]; 
+	uint8_t L4snT8[2]; 
+	
+} LockSNu8;
+
+
 
 #endif /*__CONFIGMACROS_H*/
 

+ 6 - 0
Core/Inc/main.h

@@ -42,6 +42,7 @@ extern "C" {
 #include "interface.h"
 
 #include "dtuaes.h"
+#include "tt808.h"
 
 /* USER CODE END Includes */
 
@@ -94,6 +95,11 @@ void Error_Handler(void);
 
 /* USER CODE BEGIN Private defines */
 
+extern LockSNu8 locksnu8;
+extern uint8_t smac1[2];
+extern uint8_t smac2[2];
+extern uint8_t smac3[2];
+extern uint8_t smac4[2];
 void readLockStatusinit(void);
 /* USER CODE END Private defines */
 

+ 14 - 4
Core/Inc/mba32a.h

@@ -6,11 +6,11 @@
 extern bool resetBTmodule;
 extern uint8_t DtuBtKey[16];
 extern uint8_t iv[16];
-extern uint8_t g_MBA32A_8buf[2048];
-extern uint8_t g_MBA32A_8buf_Down[2048];
+extern uint8_t g_MBA32A_8buf[500];
+extern uint8_t g_MBA32A_8buf_Down[500];
 extern uint16_t u5length;
-
-extern bool btreflag;
+extern bool SdjfEmergency;
+extern  bool btreflag;
 
 void workinfo_W(void);
 void open_close_lock(void);
@@ -21,5 +21,15 @@ void USART_SendString(UART_HandleTypeDef *huart,char *str);
 void modifyOledBmp(void);
 void lock_searchInfo(void);
 int dtu_test(void);
+
+
+
+
+
+
+
+
+
+
 #endif /*__MBA32A_H*/
 

+ 3 - 3
Core/Inc/ml307a.h

@@ -6,8 +6,8 @@
 
 extern uint8_t u4length;
 extern bool u4RecvFlag;
-extern uint8_t g_ML307A_8buf[2048]; 
-extern uint8_t g_ML307A_8buf_Down[2048];
+extern uint8_t g_ML307A_8buf[500]; 
+extern uint8_t g_ML307A_8buf_Down[500];
 
 extern uint8_t g_ML307A_Loc[1024]; 
 extern bool module4G_F;
@@ -29,6 +29,6 @@ extern uint8_t ICCID[60];
 extern bool tcpconn ;
 extern uint32_t JD_dw;
 extern uint32_t WD_dw;
-
+void TcpConn(char *value, uint8_t cid, char *IP, uint16_t port, uint8_t tcpConnmode);
 #endif /*__ML307A_H*/
 

+ 1 - 1
Core/Inc/rtc.h

@@ -41,7 +41,7 @@ extern RTC_HandleTypeDef hrtc;
 void MX_RTC_Init(void);
 
 /* USER CODE BEGIN Prototypes */
-
+void tongbushijian(uint8_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minutes, uint8_t seconds);
 /* USER CODE END Prototypes */
 
 #ifdef __cplusplus

+ 28 - 7
Core/Inc/tt808.h

@@ -8,10 +8,10 @@ void chulihuifushujv(void);
 extern bool chuliSJ;
 extern bool genghaunmac ;
 extern bool MIPurcReFlag;
-extern uint8_t MIPurc[256];
-extern uint8_t MIPurc1[256];
+extern uint8_t MIPurc[100];
+extern uint8_t MIPurc1[100];
 extern size_t new_length;
-void newMacchange(void);
+void newMacchange(uint8_t MIPurc1[]);
 extern bool U4re;
 extern uint16_t xxid ;
 extern bool newmac;
@@ -25,13 +25,16 @@ void tt808test(uint8_t* Bodyxxt, size_t bodylength, uint8_t XXLSH);
 void wjwd(void);
 void packageData(uint8_t flag, uint8_t *head, uint8_t *body, size_t bodylength, uint8_t *escaped_data, size_t *new_length);
 void string_to_hex_array(char* str, int str_len, uint8_t* hex_array);
+void gettimeupload_Normal(void);
+void gettimeupload_Emergency(void);
 
 extern bool JQflag;
-extern uint8_t MIPurcXXTCSJ[256];
-
-extern uint8_t hext[256];
+extern uint8_t MIPurcXXTCSJ[100];
+extern bool Ptsjf;
+void ZHSN(uint8_t outTt[],char in[]);//ת»»SN
+extern bool XTflag ;
+extern uint8_t hext[100];
 void tt808FsFunc(uint8_t xxt[], uint8_t xxtlength, uint16_t XXID);
-uint8_t xxtFZ(uint8_t xxt[], uint8_t xxtlength, uint8_t outXxt[],uint16_t XXID);
 extern int rlt;
 char hex2asc(const char *hex);
 extern uint8_t LBSdata[28];
@@ -40,5 +43,23 @@ void ReMLBSLOC(void);
 void XGtest(void);
 void MIPURCHandle(void);
 void ReMIPURC(void);
+
+extern uint8_t MIPurc_test1;
+
+extern uint32_t uploadtime;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 #endif /*__TT808_H*/
 

+ 3 - 3
Core/Inc/usart.h

@@ -48,9 +48,9 @@ extern UART_HandleTypeDef huart3;
 extern uint8_t U1reFlag;
 extern uint8_t recvLength;  //接收一帧数据的长度
 extern uint8_t U1recvLength;  //接收一帧数据的长度
-extern uint8_t recvBuff[2048];
-extern uint8_t U1recvBuff[2048];
-extern uint8_t U4recvBuff[2048];
+extern uint8_t recvBuff[512];
+extern uint8_t U1recvBuff[512];
+extern uint8_t U4recvBuff[512];
 /* USER CODE END Private defines */
 
 void MX_UART4_Init(void);

+ 79 - 53
Core/Src/freertos.c

@@ -55,6 +55,10 @@ void Jump_interface(Menu_table menu);
 extern TCPClientD tcpc;
 uint8_t hex_array[]={0};
 		  uint8_t i =0;
+bool locDw = false;
+		uint8_t temp=0;
+
+uint8_t MIPurcU1[100]={0};
 /* USER CODE END PM */
 
 /* Private variables ---------------------------------------------------------*/
@@ -164,10 +168,8 @@ void StartScanKeyTask(void const * argument)
 	modifyOledBmp();				//修改锁图
 	open_close_lock();				//施解操作
 	RESET_4G_MODULE();				//4G启动(复位)
-
-	 
-
 	  
+
   }
   /* USER CODE END StartScanKeyTask */
 }
@@ -189,22 +191,6 @@ void StarBT4GTask(void const * argument)
     osDelay(1);
 	  
 
-	  
-
-	  //TCPCenterDownward();
-
-	  if(U4re)
-	  {
-		  //replyCenter();
-//		  CONNTCP();
-	  }
-	  
-	  if(newmac)
-	  {
-		  //换MAC
-		  newmac=false;
-		  newMacchange();
-	  }	  
 	 if(u4RecvFlag)
 	 {
 		 u4RecvFlag=false;
@@ -216,15 +202,6 @@ void StarBT4GTask(void const * argument)
 		 HAL_UART_Transmit(&huart1,g_MBA32A_8buf,u5length,0xFFFF);
 	 }
 
-	 
-	 
-	/*********监测LBS定位信息**********/
-	ReMLBSLOC();
-	/*********监测平台回复**********/
-	ReMIPURC();
-	/*********对平台的应答做处理**********/
-	MIPURCHandle();
-
   }
   /* USER CODE END StarBT4GTask */
 }
@@ -243,10 +220,20 @@ void StartTestTask(void const * argument)
   /* Infinite loop */
   for(;;)
   {
-    osDelay(1500);    
-	if(module4G_F)
+    osDelay(8000);    
+  
+	  
+	if(locDw && menu.current!=4 && menu.current!=5 && menu.current!=6 && menu.current!=7)
 	{
 		sendCmd_4G("AT+MLBSLOC\r\n", "OK", 1, 1);
+		
+//		if(sendCmd_4G("AT+MGNSSLOC\r\n", "+CME ERROR: 953", 1, 1))
+//		{
+//			sendCmd_4G("AT+MGNSSCFG=\"nmea/mask\",63\r\n", "OK", 2, 2);
+//			sendCmd_4G("AT+MGNSS=1\r\n", "OK", 2, 2);
+//		}
+
+		
 	}
 		  
 
@@ -267,40 +254,79 @@ void StartloginfoTaskTask(void const * argument)
   /* Infinite loop */
   for(;;)
   {
-    osDelay(3000);
-
-
-	  
-	  
-	  
-	  
-	  
-	  
+    osDelay(1);
 	  
+	/*********监测LBS定位信息**********/
+	ReMLBSLOC();
+	/*********监测平台回复**********/
+	ReMIPURC();
+	/*********对平台的应答做处理**********/
+	MIPURCHandle();
+	/*********手动解封紧急应答**********/
+	if(SdjfEmergency)
+	{
+		SdjfEmergency=false;
+		//HAL_Delay(200);
+		uploadtime = HAL_GetTick();//再次重置发送状态信息基准时间
+		gettimeupload_Emergency();
+	}
+	
+	if(U1reFlag)//+MIPURC: "rtcp",1,47,7E030000200000160000082890252A153200000010000000000000000000000000000000000000000000002300237E  //test
+	{
+		U1reFlag=false;
+		memcpy(MIPurc,&U1recvBuff[21],U1recvLength);
+		const char *hex = (const char *)MIPurc;  // 将 uint8_t * 转换为 const char *
+		int size = strlen(hex) / 2;  // 计算二进制数据的长度
+		unsigned char *bin = (unsigned char *)malloc(size);  // 分配足够的内存用于存储二进制数据
+		rlt = hex2bin(bin, hex);  // 调用hex2bin函数进行转换
+		memcpy(MIPurc1, bin, rlt);  // 将 bin 中的 rlt 个字节复制到 MIPurc1 中						接收到的数据放入MIPurc1中
+		free(bin);  // 释放内存  
+	}
+	
+
+	
 	  
-	if(module4G_F)
+	if(module4G_F)	//4G启动位	tcp链接位	鉴权非位
 	{
 		module4G_F=false;		//鉴权操作
 		tt808FsFunc(ICCID,22,XXIDzdjq);
+		
 	}
 	
-//	if(JQflag)
-//	{
-//		JQflag = false;
-//		uint8_t test[] = {0xAA};		//test心跳
-//		tt808FsFunc(test,1,XXIDzdxt);	//test心跳
-//		
-//		HAL_Delay(200);
-//		
-//		Lbsprocess();
-//		tt808FsFunc(LBSdata,28,XXIDzddz);	//test地址
-
-//		
-//	}
+	if(JQflag)
+	{
+		JQflag = false;
+		uint8_t test[] = {0xAA};			//test心跳
+		tt808FsFunc(test,1,XXIDzdxt);		//test心跳
+		uploadtime = HAL_GetTick();//获取首次发送状态信息基准时间
+
+	}
 	 
+	if(XTflag && menu.current!=4 && menu.current!=5 && menu.current!=6 && menu.current!=7)
+	{
+		locDw =false;
+		gettimeupload_Normal();//定时上传锁状态
+		locDw =true;
+	}
 	 
+	
+	if(Ptsjf)
+	{
+		Ptsjf = false;
+		menu.enter=4;
+		locDw =true;
+		XTflag = true;
+	}
 	 
 
+	
+	 if(genghaunmac)
+	 {
+		 genghaunmac = false;
+		 newMacchange(MIPurc1);//处理MAC数据
+		 memset(MIPurc1,0,rlt);//rlt下发长度
+	 }
+
   }
   /* USER CODE END StartloginfoTaskTask */
 }

+ 20 - 8
Core/Src/interface.c

@@ -83,7 +83,7 @@ void Jump_interface(Menu_table menu)
 		break;
 		
 		case 1:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -91,7 +91,7 @@ void Jump_interface(Menu_table menu)
 		break;
 		
 		case 2:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -108,7 +108,7 @@ void Jump_interface(Menu_table menu)
 		
 		
 		case 3:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -119,7 +119,7 @@ void Jump_interface(Menu_table menu)
 		case 5:
 		case 6:
 		case 7:
-			if(HAL_GetTick() - enterInterface_time >= 20000)//施解封延长至20s
+			if(HAL_GetTick() - enterInterface_time >= 60000)//施解封延长至20s
 			{
 				sendCmd_BT("AT+DISCONN=0\r\n","ERROR",1,1);//断开连接
 				returnInterface=true;
@@ -128,7 +128,7 @@ void Jump_interface(Menu_table menu)
 		break;
 		
 		case 0xA0:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -136,7 +136,7 @@ void Jump_interface(Menu_table menu)
 		break;
 			
 		case 0xA1:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -144,7 +144,7 @@ void Jump_interface(Menu_table menu)
 		break;
 			
 		case 0xA2:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -152,7 +152,7 @@ void Jump_interface(Menu_table menu)
 		break;
 		
 		case 0xBB:
-			if(HAL_GetTick() - enterInterface_time >= 10000)
+			if(HAL_GetTick() - enterInterface_time >= 15000)
 			{
 				returnInterface=true;
 			}
@@ -592,6 +592,8 @@ void home(uint32_t L_s, bool L1bd, bool L2bd, bool L3bd, bool L4bd)
 
 		case 0x0011:
 		case 0x00FF:
+		case 0x001F:
+		case 0x00F1:
 			OLED_ShowString(8,8,NOSETLOCK,12,1);     //L1null
 			OLED_ShowString(38,8,NOSETLOCK,12,1);    //L2null
 			if(L3bd && L4bd){
@@ -605,6 +607,16 @@ void home(uint32_t L_s, bool L1bd, bool L2bd, bool L3bd, bool L4bd)
 					OLED_ShowChinese(72,46,close16,16,1);   //关
 					OLED_ShowPicture(100,6,20,20,BMP4,1);    //显示图片关
 					OLED_ShowChinese(102,46,close16,16,1);   //关
+				} else if(L_s == 0x00F1){
+					OLED_ShowPicture(70,6,20,20,BMP4,1);    //显示图片关
+					OLED_ShowChinese(72,46,close16,16,1);   //关
+					OLED_ShowPicture(100,6,20,20,BMP3,1);    //显示图片开
+					OLED_ShowChinese(102,46,open16,16,1);   //开
+				} else if(L_s == 0x001F){
+					OLED_ShowPicture(70,6,20,20,BMP3,1);    //显示图片关
+					OLED_ShowChinese(72,46,open16,16,1);   //关
+					OLED_ShowPicture(100,6,20,20,BMP4,1);    //显示图片开
+					OLED_ShowChinese(102,46,close16,16,1);   //开
 				}
 			}
 		break;

+ 45 - 2
Core/Src/key.c

@@ -16,7 +16,6 @@ uint16_t S2 = 0;
 uint16_t S3 = 0;
 uint16_t S4 = 0;
 uint32_t enterInterface_time = 0;
-
 void ClearBtSnItem(void);
 
 uint8_t KEY_1_Scan(void)
@@ -445,6 +444,12 @@ uint8_t KEY_3_Scan(void)
 								{
 									for (int i = 0; i < sizeof(menu_dict) / sizeof(menu_dict[0]); i++) {
 										if (menu.next == i) {
+											
+											erase_flash(Sn1StatusAddr);
+											erase_flash(Sn1Addr);
+											erase_flash(serialNum1Addr);
+											
+											
 											menu.SN1 = menu_dict[i].command;
 											menu.SN1F = menu_dict[i].connected_msg;
 											menu.SN1D = menu_dict[i].disconnected_msg;
@@ -465,6 +470,7 @@ uint8_t KEY_3_Scan(void)
 										}
 									}
 								}
+								menu.home &= 0x0FFF;
 							}
 							if(menu.PreNext==1)//L2 д
 							{
@@ -491,7 +497,8 @@ uint8_t KEY_3_Scan(void)
 											L2bd=true;
 										}
 									}
-								}
+								}								
+								menu.home &= 0xF0FF;
 							}
 							if(menu.PreNext==2)//L3 д
 							{
@@ -519,6 +526,7 @@ uint8_t KEY_3_Scan(void)
 										}
 									}
 								}
+								menu.home &= 0xFF0F;
 							}
 							if(menu.PreNext==3)//L4 д
 							{
@@ -546,7 +554,9 @@ uint8_t KEY_3_Scan(void)
 										}
 									}
 								}
+								menu.home &= 0xFFF0;
 							}
+							readLockStatusinit();
 							scanMac();
 							SET_MENU_STATUS(2,4,0,2);
 							
@@ -712,6 +722,34 @@ void scanMac(void)
 	uint16_t SN2 = read_flash_16(Sn2Addr);
 	uint16_t SN3 = read_flash_16(Sn3Addr);
 	uint16_t SN4 = read_flash_16(Sn4Addr);
+	
+	
+	if(SN1==0xffff)
+	{
+		SN1=0;
+	}
+	if(SN2==0xffff)
+	{
+		SN2=0;
+	}	
+	if(SN3==0xffff)
+	{
+		SN3=0;
+	}	
+	if(SN4==0xffff)
+	{
+		SN4=0;
+	}
+	
+	locksnu8.L1snT8[0] = SN1>>8&0xff;
+	locksnu8.L1snT8[1] = SN1&0xff;
+	locksnu8.L2snT8[0] = SN2>>8&0xff;
+	locksnu8.L2snT8[1] = SN2&0xff;
+	locksnu8.L3snT8[0] = SN3>>8&0xff;
+	locksnu8.L3snT8[1] = SN3&0xff;
+	locksnu8.L4snT8[0] = SN4>>8&0xff;
+	locksnu8.L4snT8[1] = SN4&0xff;
+
     // Æ¥Åä²¢ÉèÖÃÊôÐÔ
     for (int i = 0; i < sizeof(btMenuItems)/sizeof(btMenuItems[0]); i++) {
         if (SN1 == (uint16_t)i + 1) {
@@ -753,6 +791,11 @@ void scanMac(void)
         }
     }
 
+	
+	
+	
+	
+	
 }
 
 void ClearBtSnItem(void)

+ 130 - 12
Core/Src/main.c

@@ -198,8 +198,12 @@ void SystemClock_Config(void)
 
 /* USER CODE BEGIN 4 */
 
+LockSNu8 locksnu8;
 extern TT808 tt808;
-uint8_t smac[2]={0};
+uint8_t smac1[2]={0};
+uint8_t smac2[2]={0};
+uint8_t smac3[2]={0};
+uint8_t smac4[2]={0};
 void readLockStatusinit(void)
 {
   scanMac();
@@ -213,13 +217,27 @@ void readLockStatusinit(void)
   uint32_t S3LS = read_flash_32(serialNum3Addr);
   uint32_t S4LS = read_flash_32(serialNum4Addr);
 	
-	smac[0]=S1bd>>8&0xff;
-	smac[1]=S1bd&0xff;
+	smac1[0]=S1bd>>8&0xff;
+	smac1[1]=S1bd&0xff;
+	
+	smac2[0]=S2bd>>8&0xff;
+	smac2[1]=S2bd&0xff;
+	
+	smac3[0]=S3bd>>8&0xff;
+	smac3[1]=S3bd&0xff;
+	
+	smac4[0]=S4bd>>8&0xff;
+	smac4[1]=S4bd&0xff;
+	
+	
+	
+  if(S1bd!=0xFFFF)
+  {
 	char SNconn[50];
 	char *ptr = SNconn;
 	ptr += sprintf(ptr, "AT+CONN=10100000");
 	for (int i = 0; i < 2; i++) {
-		ptr += sprintf(ptr, "%02X", smac[i]);
+		ptr += sprintf(ptr, "%02X", smac1[i]);
 	}
 	sprintf(ptr, "\r\n");//TCPvalue
 
@@ -227,7 +245,7 @@ void readLockStatusinit(void)
 	char *ptr1 = SNF;
 	ptr1 += sprintf(ptr1, "+CONNECTED:0,10100000");
 	for (int i = 0; i < 2; i++) {
-		ptr1 += sprintf(ptr1, "%02X", smac[i]);
+		ptr1 += sprintf(ptr1, "%02X", smac1[i]);
 	}
 	//sprintf(ptr, "\r\n");//TCPvalue
 
@@ -236,21 +254,18 @@ void readLockStatusinit(void)
 	char SNname[2];
 	char *ptr2 = SNname;
 	for (int i = 0; i < 2; i++) {
-		ptr2 += sprintf(ptr2, "%02X", smac[i]);
+		ptr2 += sprintf(ptr2, "%02X", smac1[i]);
 	}
+	ZHSN(locksnu8.L1snT8,SNname);
 	//sprintf(ptr, "\r\n");//TCPvalue		
 
 	char SND[50];
 	char *ptr3 = SND;
 	ptr3 += sprintf(ptr3, "+DISCONN:0,10100000");
 	for (int i = 0; i < 2; i++) {
-		ptr3 += sprintf(ptr3, "%02X",smac[i]);
+		ptr3 += sprintf(ptr3, "%02X",smac1[i]);
 	}
-		
-		
-  if(S1bd!=0xFFFF)
-  {
-	  
+	
 	  L1bd=true;
 
 		menu.SN1 = SNconn;//AT+CONN=*********\r\n
@@ -262,6 +277,39 @@ void readLockStatusinit(void)
   }
   if(S2bd!=0xFFFF)
   {
+	char SNconn[50];
+	char *ptr = SNconn;
+	ptr += sprintf(ptr, "AT+CONN=10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr += sprintf(ptr, "%02X", smac2[i]);
+	}
+	sprintf(ptr, "\r\n");//TCPvalue
+
+	char SNF[50];
+	char *ptr1 = SNF;
+	ptr1 += sprintf(ptr1, "+CONNECTED:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr1 += sprintf(ptr1, "%02X", smac2[i]);
+	}
+	//sprintf(ptr, "\r\n");//TCPvalue
+
+
+	
+	char SNname[2];
+	char *ptr2 = SNname;
+	for (int i = 0; i < 2; i++) {
+		ptr2 += sprintf(ptr2, "%02X", smac2[i]);
+	}
+	ZHSN(locksnu8.L2snT8,SNname);
+	//sprintf(ptr, "\r\n");//TCPvalue		
+
+	char SND[50];
+	char *ptr3 = SND;
+	ptr3 += sprintf(ptr3, "+DISCONN:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr3 += sprintf(ptr3, "%02X",smac2[i]);
+	}
+	
 	  L2bd=true;
 
 		menu.SN2 = SNconn;//AT+CONN=*********\r\n
@@ -272,6 +320,40 @@ void readLockStatusinit(void)
   }
   if(S3bd!=0xFFFF)
   {
+	char SNconn[50];
+	char *ptr = SNconn;
+	ptr += sprintf(ptr, "AT+CONN=10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr += sprintf(ptr, "%02X", smac3[i]);
+	}
+	sprintf(ptr, "\r\n");//TCPvalue
+
+	char SNF[50];
+	char *ptr1 = SNF;
+	ptr1 += sprintf(ptr1, "+CONNECTED:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr1 += sprintf(ptr1, "%02X", smac3[i]);
+	}
+	//sprintf(ptr, "\r\n");//TCPvalue
+
+
+	
+	char SNname[2];
+	char *ptr2 = SNname;
+	for (int i = 0; i < 2; i++) {
+		ptr2 += sprintf(ptr2, "%02X", smac3[i]);
+	}
+	ZHSN(locksnu8.L3snT8,SNname);
+	//sprintf(ptr, "\r\n");//TCPvalue		
+
+	char SND[50];
+	char *ptr3 = SND;
+	ptr3 += sprintf(ptr3, "+DISCONN:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr3 += sprintf(ptr3, "%02X",smac3[i]);
+	}
+	
+	  
 	  L3bd=true;
 		menu.SN3 = SNconn;//AT+CONN=*********\r\n
 		menu.SN3F = SNF;//+CONNECTED:0,101000000010
@@ -281,6 +363,39 @@ void readLockStatusinit(void)
   }
   if(S4bd!=0xFFFF)
   {
+	char SNconn[50];
+	char *ptr = SNconn;
+	ptr += sprintf(ptr, "AT+CONN=10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr += sprintf(ptr, "%02X", smac4[i]);
+	}
+	sprintf(ptr, "\r\n");//TCPvalue
+
+	char SNF[50];
+	char *ptr1 = SNF;
+	ptr1 += sprintf(ptr1, "+CONNECTED:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr1 += sprintf(ptr1, "%02X", smac4[i]);
+	}
+	//sprintf(ptr, "\r\n");//TCPvalue
+
+
+	
+	char SNname[2];
+	char *ptr2 = SNname;
+	for (int i = 0; i < 2; i++) {
+		ptr2 += sprintf(ptr2, "%02X", smac4[i]);
+	}
+	ZHSN(locksnu8.L4snT8,SNname);
+	//sprintf(ptr, "\r\n");//TCPvalue		
+
+	char SND[50];
+	char *ptr3 = SND;
+	ptr3 += sprintf(ptr3, "+DISCONN:0,10100000");
+	for (int i = 0; i < 2; i++) {
+		ptr3 += sprintf(ptr3, "%02X",smac4[i]);
+	}
+	
 	  L4bd=true;
 		menu.SN4 = SNconn;//AT+CONN=*********\r\n
 		menu.SN4F = SNF;//+CONNECTED:0,101000000010
@@ -390,6 +505,9 @@ void readLockStatusinit(void)
 	  menu.S4sjf=0xAA;
 	  tt808.L4Lockstatus = LockStatusNull;
   }
+  
+  
+  
   refresh=true;
 }
 

+ 29 - 8
Core/Src/mba32a.c

@@ -23,8 +23,8 @@ uint8_t 	bt_lock_machinesta=0;			//bt
 uint8_t 	bt_lock_ropesta=0;				//bt锁(锁绳)状态(0x00插入;0x01拔出)
 uint16_t 	bt_hwver=0;						//bt硬件版本号
 uint16_t 	bt_sfver=0;						//bt软件版本号
-uint8_t g_MBA32A_8buf[2048]={0};  			//蓝牙接收数组
-uint8_t g_MBA32A_8buf_Down[2048]={0} ;		//蓝牙搬移数组
+uint8_t g_MBA32A_8buf[500]={0};  			//蓝牙接收数组
+uint8_t g_MBA32A_8buf_Down[500]={0} ;		//蓝牙搬移数组
 
 void MBA32AReset(void);
 uint8_t sendCmd_BT(char *pCmd,char *pRes, uint32_t timeOut, uint8_t sendNum);
@@ -37,6 +37,8 @@ uint8_t iv[16] = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x
   */
 void Start_Read_resetFlag16(void)
 {
+	uploadtime = HAL_GetTick();
+		
 	resetFlag16 = read_flash_16(resetDevAddr);
 	if(resetFlag16==0xFFFF)//开机检测(首次启动)
 	{
@@ -50,7 +52,9 @@ void Start_Read_resetFlag16(void)
 	else if(resetFlag16==0xAAAA)//开机检测(大于1次启动)
 	{
 		printf("###蓝牙模块非首次启动\r\n");
-		HAL_Delay(50);
+		while (HAL_GetTick() - uploadtime < 50) {
+		  // 空等待
+		}	
 		if (!sendCmd_BT("AT+UUIDS?\r\n","+UUIDS:0002",1,1))
 		{
 			PRINT_NUUID("UUIDS");//UUID项不符合
@@ -166,6 +170,7 @@ void MBA32A_Init(void)
 			
 	}
 
+	//关闭4G后需要取消注释
 //	menu.current=0;//回到初始
 //	refresh=true;
 
@@ -240,7 +245,7 @@ void lock_searchInfo(void)				//
 	uint8_t header[2] 		= {0x66, 0x01};//Jl_lock帧头
 	uint8_t serchInfo_CMD[] = {0x01, 0x00};//查询信息命令帧
 	sendCombinedArray(header,sizeof(header),serchInfo_CMD,sizeof(serchInfo_CMD),0);
-	Echo_BT(20);
+
 }
 
 /**
@@ -289,7 +294,7 @@ void open_lock(BtFrame btframe)			//
 	open_CMD[14] = btframe.Autoseal;//自动施封时间										
 													
 	sendCombinedArray(header,sizeof(header),open_CMD,sizeof(open_CMD),1);//加密
-	Echo_BT(20);
+	//Echo_BT(20);
 }
 
 /**
@@ -337,7 +342,7 @@ void close_lock(BtFrame btframe)		//
 	close_CMD[13]= ntime & 0xff;											
 	
 	sendCombinedArray(header,sizeof(header),close_CMD,sizeof(close_CMD),1);
-	Echo_BT(20);
+	//Echo_BT(20);
 }
 
 void workinfo_W(void)
@@ -454,10 +459,11 @@ void workinfo_W(void)
 	
 }
 
-
+bool SdjfEmergency = false;
 extern TT808 tt808;
 void open_close_lock(void)
 {
+		
     if(menu.enter == 4 && (menu.current == 4 || menu.current == 5 || menu.current == 6 || menu.current == 7))
     {
 		if(menu.current==4)
@@ -472,6 +478,7 @@ void open_close_lock(void)
 				Write_Information(Sn1StatusAddr, 0x2222);
 				tt808.L1Lockstatus = LockStatusClose;
 				HAL_Delay(50);
+				SdjfEmergency=true;
 			}
 			else if(menu.up == 0)
 			{
@@ -480,6 +487,8 @@ void open_close_lock(void)
 				Write_Information(Sn1StatusAddr, 0x1111);
 				tt808.L1Lockstatus = LockStatusOpen;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 		}
 		if(menu.current==5)
@@ -494,6 +503,8 @@ void open_close_lock(void)
 				Write_Information(Sn2StatusAddr, 0x2222);
 				tt808.L2Lockstatus = LockStatusClose;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 			else if(menu.up == 0)
 			{
@@ -502,6 +513,8 @@ void open_close_lock(void)
 				Write_Information(Sn2StatusAddr, 0x1111);
 				tt808.L2Lockstatus = LockStatusOpen;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 		}	
 		if(menu.current==6)
@@ -516,6 +529,8 @@ void open_close_lock(void)
 				Write_Information(Sn3StatusAddr, 0x2222);
 				tt808.L3Lockstatus = LockStatusClose;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 			else if(menu.up == 0)
 			{
@@ -524,6 +539,8 @@ void open_close_lock(void)
 				Write_Information(Sn3StatusAddr, 0x1111);
 				tt808.L3Lockstatus = LockStatusOpen;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 		}
 		if(menu.current==7)
@@ -538,6 +555,8 @@ void open_close_lock(void)
 				Write_Information(Sn4StatusAddr, 0x2222);
 				tt808.L4Lockstatus = LockStatusClose;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 			else if(menu.up == 0)
 			{
@@ -546,6 +565,8 @@ void open_close_lock(void)
 				Write_Information(Sn4StatusAddr, 0x1111);
 				tt808.L4Lockstatus = LockStatusOpen;
 				HAL_Delay(50);
+
+				SdjfEmergency=true;
 			}
 		}
 		
@@ -553,7 +574,7 @@ void open_close_lock(void)
 		S2 = read_flash_16(Sn2StatusAddr);
 		S3 = read_flash_16(Sn3StatusAddr);
 		S4 = read_flash_16(Sn4StatusAddr);
-		HAL_Delay(50);
+		HAL_Delay(30);
 		menu.enter=3;
         refresh = true;
     }

+ 48 - 25
Core/Src/ml307a.c

@@ -9,15 +9,14 @@ bool ml307aFail = false;
 bool reset4Gmodule = false;
 bool module4G_F = false;
 uint8_t u4length=0;
-
 uint8_t step4g;
 Time time;
 
 bool conn4g_loc=false;
 uint8_t resetcount_4g=0;
-uint8_t g_ML307A_8buf[2048]={0}; 
+uint8_t g_ML307A_8buf[500]={0}; 
 uint8_t g_ML307A_Loc[1024]={0}; 
-uint8_t g_ML307A_8buf_Down[2048]={0}; 
+uint8_t g_ML307A_8buf_Down[500]={0}; 
 uint8_t MLBSLOCcount = 0;
 extern UART_HandleTypeDef huart3;
 extern UART_HandleTypeDef huart4;
@@ -82,10 +81,17 @@ bool tcpconn =true;
 
 uint8_t ICCID[60];
 
+void TcpConn(char *value, uint8_t cid, char *IP, uint16_t port, uint8_t tcpConnmode)
+{
+	char *ptr = value;
+	ptr += sprintf(ptr, "AT+MIPOPEN=%d,\"TCP\",\"%s\",%d,60,%d\r\n",cid,IP,port,tcpConnmode);
+}
+
 
 void ML307A_Init(void)
 {
 	printf("\t###02\t4G_init...\r\n"); 
+	sendCmd_4G("AT+MGNSS=0\r\n", "OK", 1, 1);
 	//sendCmd_4G("+++", "OK", 1, 1);//TCP连接 0普通模式  2缓存模式 1透传模式
 	switch(step4g)
 	{
@@ -93,6 +99,7 @@ void ML307A_Init(void)
 		{
 			if (sendCmd_4G("AT\r\n", "OK", 1, 5)) 
 			{
+				
 				printf("#4G模组正常\r\n");
 				if (sendCmd_4G("AT+ICCID\r\n", "OK", 1, 5)) 
 				{
@@ -102,6 +109,10 @@ void ML307A_Init(void)
 				}
 				step4g++;
 			}
+			else
+			{
+				ML307AReset();
+			}
 		}
 
 		case 1:
@@ -111,6 +122,10 @@ void ML307A_Init(void)
 				printf("#4G模组状态正常\r\n");
 				step4g++;
 			}
+			else
+			{
+				ML307AReset();
+			}
 		}		
 		case 2:
 		{
@@ -118,13 +133,12 @@ void ML307A_Init(void)
 			{
 				printf("#4G模组附着正常\r\n");
 				printf("#4G模组初始化完成\r\n");
-				
 				step4g++;
 
 			}	
 			else
 			{
-				break;
+				ML307AReset();
 			}
 		}	
 		case 3:
@@ -133,42 +147,51 @@ void ML307A_Init(void)
 			{
 				printf("#断开连接\r\n");
 			}
-
-
-
-			sendCmd_4G("AT+MLBSCFG=\"method\",40\r\n", "OK", 1, 1);//配置LBS接口为ONEos定位服务
-			sendCmd_4G("AT+MLBSCFG=\"nearbtsen\",1\r\n", "OK", 1, 1);//启动邻区信息参与定位
-				printf("#TCP连接成功\r\n");
-				if(sendCmd_4G("AT+MIPCFG=\"encoding\",1,1,1\r\n", "OK", 1, 3))//默认输入输出为ASCII,0    发16,1    接16,1
-				{
-					printf("#TCP设置完成\r\n");
-					
-				}
-			
-			if(sendCmd_4G("AT+MIPOPEN=1,\"TCP\",\"121.199.29.128\",7342,60,0\r\n", "+MIPOPEN: 1,0", 1, 3))//TCP连接 0普通模式  2缓存模式  1透传模式
 			
-			//if(sendCmd_4G("AT+MIPOPEN=1,\"TCP\",\"118.31.22.26\",8901,60,0\r\n", "+MIPOPEN: 1,0", 1, 3))//TCP连接 0普通模式  2缓存模式 1透传模式
-			//if(sendCmd_4G("AT+MIPOPEN=1,\"TCP\",\"118.31.22.26\",8901,60,2\r\n", "+MIPOPEN: 1,0", 1, 3))//TCP连接 0普通模式  2缓存模式 1透传模式
+			char TCPconnvalue[100];
+			TcpConn(TCPconnvalue, 1, JLPTIP, JLPTPORT,0);		//cid=1		tcpConnmode=0 普通模式
+			if(sendCmd_4G(TCPconnvalue, "+MIPOPEN: 1,0", 1, 3))	//TCP连接 0普通模式  2缓存模式  1透传模式
 			{
-
-					break;
+				step4g++;
+				printf("#TCP连接成功\r\n");
 			}
 			else
 			{
 				tcpconn=false;
+				ML307AReset();
 			}
-
-			
 		}
+		
+		case 4:
+		{
+			if(sendCmd_4G("AT+MIPCFG=\"encoding\",1,1,1\r\n", "OK", 1, 1))//默认输入输出为ASCII,0    发16,1    接16,1
+			{
+				sendCmd_4G("AT+MLBSCFG=\"method\",40\r\n", "OK", 1, 1);//配置LBS接口为ONEos定位服务
+				sendCmd_4G("AT+MLBSCFG=\"nearbtsen\",1\r\n", "OK", 1, 1);//启动邻区信息参与定位
+				printf("#TCP设置完成\r\n");
+				
+				
+				break;
+			}
+			else
+			{
+				ML307AReset();
+			}
+		}
+		
+		
+		
 
 		
 	}
-	
 	menu.current=0;//回到初始
 	refresh=true;	
 	module4G_F=true;
 }
 
+
+
+
 /**
   * @breaf 4G发送串口命令
   */

+ 42 - 43
Core/Src/rtc.c

@@ -22,6 +22,8 @@
 
 /* USER CODE BEGIN 0 */
 
+  RTC_TimeTypeDef sTime = {0};
+  RTC_DateTypeDef DateToUpdate = {0};
 /* USER CODE END 0 */
 
 RTC_HandleTypeDef hrtc;
@@ -33,14 +35,11 @@ void MX_RTC_Init(void)
   /* USER CODE BEGIN RTC_Init 0 */
   /* USER CODE END RTC_Init 0 */
 
-//  RTC_TimeTypeDef sTime = {0};
-//  
-//  RTC_DateTypeDef DateToUpdate = {0};
+  RTC_TimeTypeDef sTime = {0};
+  RTC_DateTypeDef DateToUpdate = {0};
 
   /* USER CODE BEGIN RTC_Init 1 */
 
-	__HAL_RCC_BKP_CLK_ENABLE();       //开启后备区域时钟
-	__HAL_RCC_PWR_CLK_ENABLE();		  //开启电源时钟
   /* USER CODE END RTC_Init 1 */
 
   /** Initialize RTC Only
@@ -57,45 +56,26 @@ void MX_RTC_Init(void)
 
   /* USER CODE END Check_RTC_BKUP */
 
+  /** Initialize RTC and set the Time and Date
+  */
+  sTime.Hours = 0x13;
+  sTime.Minutes = 0x0;
+  sTime.Seconds = 0x0;
+
+  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  DateToUpdate.WeekDay = RTC_WEEKDAY_THURSDAY;
+  DateToUpdate.Month = RTC_MONTH_JANUARY;
+  DateToUpdate.Date = 0x18;
+  DateToUpdate.Year = 0x23;
+
+  if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK)
+  {
+    Error_Handler();
+  }
   /* USER CODE BEGIN RTC_Init 2 */
-//		case 3:
-//		{
-//			if (sendCmd_4G("AT+CCLK?\r\n", "OK", 1, 1)) 
-//			{
-//				
-//				memcpy(year_str, &g_ML307A_8buf_Down[8], 2); // 复制两个字符
-//				memcpy(month_str, &g_ML307A_8buf_Down[11], 2); 
-//				memcpy(day_str, &g_ML307A_8buf_Down[14], 2); 
-//				memcpy(hour_str, &g_ML307A_8buf_Down[17], 2);
-//				memcpy(minute_str, &g_ML307A_8buf_Down[20], 2);
-//				memcpy(second_str, &g_ML307A_8buf_Down[23], 2);
-//				
-//				year_str[2] = '\0'; // 添加空字符结束符
-//				month_str[2] = '\0';
-//				day_str[2] = '\0'; 
-//				hour_str[2] = '\0'; 
-//				minute_str[2] = '\0';
-//				second_str[2] = '\0';
-//				
-//				time.year = (uint8_t)atoi(year_str); // 使用atoi函数将字符转换为数字并赋值给time.year
-//				time.month = (uint8_t)atoi(month_str); 
-//				time.day = (uint8_t)atoi(day_str);
-//				time.hour = (uint8_t)atoi(hour_str)+8;
-//				time.minute = (uint8_t)atoi(minute_str);
-//				time.second = (uint8_t)atoi(second_str);
-//				
-//				printf("#year:  %02d\r\n",time.year);
-//				printf("#month: %02d\r\n",time.month);
-//				printf("#day:   %02d\r\n",time.day);
-//				printf("#hour:  %02d\r\n",time.hour);
-//				printf("#minute:%02d\r\n",time.minute);
-//				printf("#second:%02d\r\n",time.second);
-//				
-//				
-//				step4g++;
-//			}
-//		}
-	
 	
 	
   /* USER CODE END RTC_Init 2 */
@@ -145,5 +125,24 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
 }
 
 /* USER CODE BEGIN 1 */
+void tongbushijian(uint8_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minutes, uint8_t seconds)
+{
+  sTime.Hours = hour;
+  sTime.Minutes = minutes;
+  sTime.Seconds = seconds;
+
+  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
+  {
+	Error_Handler();
+  }
+  DateToUpdate.WeekDay = RTC_WEEKDAY_THURSDAY;
+  DateToUpdate.Month = month;
+  DateToUpdate.Date = day;
+  DateToUpdate.Year = year;
 
+  if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK)
+  {
+	Error_Handler();
+  }
+}
 /* USER CODE END 1 */

Fichier diff supprimé car celui-ci est trop grand
+ 570 - 609
Core/Src/tt808.c


+ 4 - 4
Core/Src/usart.c

@@ -25,9 +25,9 @@
 #include "dtuaes.h"
 uint8_t recvLength = 0;  //接收一帧数据的长度
 uint8_t U1recvLength = 0;  //接收一帧数据的长度
-uint8_t U1recvBuff[2048];
-uint8_t U4recvBuff[2048];
-uint8_t recvBuff[2048];
+uint8_t U1recvBuff[512];
+uint8_t U4recvBuff[512];
+uint8_t recvBuff[512];
 uint8_t U1reFlag = 0;
 extern Menu_table menu;
 /* USER CODE END 0 */
@@ -697,7 +697,7 @@ void USART_SendHexArray(UART_HandleTypeDef *huart, uint8_t *data, int length)
 {
 	
 	HAL_UART_Transmit(huart,data, length, 0xFFFF);
-	HAL_UART_Transmit(&huart3, data, length, 0xFFFF);//ttl
+	//HAL_UART_Transmit(&huart3, data, length, 0xFFFF);//ttl
 }
 
 

+ 25 - 25
MDK-ARM/dtu.uvoptx

@@ -153,12 +153,12 @@
         <Ww>
           <count>0</count>
           <WinNumber>1</WinNumber>
-          <ItemText>MIPurcXXTCSJ</ItemText>
+          <ItemText>menu</ItemText>
         </Ww>
         <Ww>
           <count>1</count>
           <WinNumber>1</WinNumber>
-          <ItemText>year_str</ItemText>
+          <ItemText>MIPurc1</ItemText>
         </Ww>
       </WatchWindow1>
       <MemoryWindow1>
@@ -346,6 +346,18 @@
       <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
+      <PathWithFileName>..\Core\Src\tt808.c</PathWithFileName>
+      <FilenameWithoutPath>tt808.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>2</GroupNumber>
+      <FileNumber>10</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
       <PathWithFileName>../Core/Src/main.c</PathWithFileName>
       <FilenameWithoutPath>main.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
@@ -353,7 +365,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>10</FileNumber>
+      <FileNumber>11</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -365,7 +377,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>11</FileNumber>
+      <FileNumber>12</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -377,7 +389,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>12</FileNumber>
+      <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -389,7 +401,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>13</FileNumber>
+      <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -401,7 +413,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>14</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -413,7 +425,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -425,7 +437,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -437,7 +449,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -449,7 +461,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -461,7 +473,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -473,7 +485,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -483,18 +495,6 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>21</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\Core\Src\tt808.c</PathWithFileName>
-      <FilenameWithoutPath>tt808.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
   </Group>
 
   <Group>

+ 5 - 5
MDK-ARM/dtu.uvprojx

@@ -429,6 +429,11 @@
               <FileType>1</FileType>
               <FilePath>..\Core\Src\keyboard.c</FilePath>
             </File>
+            <File>
+              <FileName>tt808.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Core\Src\tt808.c</FilePath>
+            </File>
             <File>
               <FileName>main.c</FileName>
               <FileType>1</FileType>
@@ -642,11 +647,6 @@
               <FileType>1</FileType>
               <FilePath>../Core/Src/stm32f1xx_hal_timebase_tim.c</FilePath>
             </File>
-            <File>
-              <FileName>tt808.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\Core\Src\tt808.c</FilePath>
-            </File>
           </Files>
         </Group>
         <Group>

Fichier diff supprimé car celui-ci est trop grand
+ 4394 - 4041
Output/dtu.hex


+ 1 - 1
Output/dtu.lnp

@@ -7,6 +7,7 @@
 "..\output\ml307a.o"
 "..\output\dtuaes.o"
 "..\output\keyboard.o"
+"..\output\tt808.o"
 "..\output\main.o"
 "..\output\gpio.o"
 "..\output\freertos.o"
@@ -19,7 +20,6 @@
 "..\output\stm32f1xx_it.o"
 "..\output\stm32f1xx_hal_msp.o"
 "..\output\stm32f1xx_hal_timebase_tim.o"
-"..\output\tt808.o"
 "..\output\stm32f1xx_hal_gpio_ex.o"
 "..\output\stm32f1xx_hal_can.o"
 "..\output\stm32f1xx_hal.o"