Bläddra i källkod

Optimize code logic and add MAC slicing

zack 1 år sedan
förälder
incheckning
a038949db8
6 ändrade filer med 4312 tillägg och 4939 borttagningar
  1. 14 1
      Core/Inc/ConfigMacros.h
  2. 123 7
      Core/Src/interface.c
  3. 298 993
      Core/Src/key.c
  4. 4 3
      Core/Src/ml307a.c
  5. 1 1
      Core/Src/usart.c
  6. 3872 3934
      Output/dtu.hex

+ 14 - 1
Core/Inc/ConfigMacros.h

@@ -164,7 +164,20 @@ typedef enum {
 
 
 
+// 定义结构体来存储对应信息
+struct BtMenuItem {
+    int key;
+    char *name;
+    char *command;
+    char *feedback;
+};
 
-
+// 定义一个结构体存储对应关系
+typedef struct {
+    char *command;
+    char *connected_msg;
+    char *disconnected_msg;
+    uint16_t value;
+} MenuInfo;
 #endif /*__CONFIGMACROS_H*/
 

+ 123 - 7
Core/Src/interface.c

@@ -27,7 +27,23 @@ unsigned char Mac00C[]="10100000000C";
 unsigned char Mac00D[]="10100000000D";
 unsigned char Mac00E[]="10100000000E";
 unsigned char Mac00F[]="10100000000F";
+
 unsigned char Mac010[]="101000000010";
+unsigned char Mac011[]="101000000011";
+unsigned char Mac012[]="101000000012";
+unsigned char Mac013[]="101000000013";
+unsigned char Mac014[]="101000000014";
+unsigned char Mac015[]="101000000015";
+unsigned char Mac016[]="101000000016";
+unsigned char Mac017[]="101000000017";
+unsigned char Mac018[]="101000000018";
+unsigned char Mac019[]="101000000019";
+unsigned char Mac01A[]="10100000001A";
+unsigned char Mac01B[]="10100000001B";
+unsigned char Mac01C[]="10100000001C";
+unsigned char Mac01D[]="10100000001D";
+unsigned char Mac01E[]="10100000001E";
+unsigned char Mac01F[]="10100000001F";
 
 TipsFlag tipsflag;
 /**
@@ -41,7 +57,9 @@ void setLock(void);		//0x03
 void workSet(Menu_table menu); //0x04 0x05 0x06 0x07
 
 
-void Macbinding(void);	//0xA1
+void Mac_slicing(void);	//0xA0 MAC학욥
+void Macbinding01_0F(void);	//0xA1
+void Macbinding10_1F(void);//0xA2
 void WarningTip(void);	//0xBB
 void clearSn(void);		//0xCC
 /**
@@ -106,13 +124,28 @@ void Jump_interface(Menu_table menu)
 			workSet(menu);
 		break;
 		
-		
+		case 0xA0:
+			if(HAL_GetTick() - enterInterface_time >= 10000)
+			{
+				returnInterface=true;
+			}
+			Mac_slicing();
+		break;
+			
 		case 0xA1:
 			if(HAL_GetTick() - enterInterface_time >= 10000)
 			{
 				returnInterface=true;
 			}
-			Macbinding();
+			Macbinding01_0F();
+		break;
+			
+		case 0xA2:
+			if(HAL_GetTick() - enterInterface_time >= 10000)
+			{
+				returnInterface=true;
+			}
+			Macbinding10_1F();
 		break;
 		
 		case 0xBB:
@@ -127,6 +160,20 @@ void Jump_interface(Menu_table menu)
 	}
 }
 
+void Mac_slicing(void)//MAC학욥
+{
+    OLED_ShowString(8, 0,(unsigned char*)"> MacSlicing <", 16, 0);
+	OLED_ShowString(0,20,(unsigned char*)"MAC:0001-000F",16,1);
+	OLED_ShowString(0,35,(unsigned char*)"MAC:0010-001F",16,1);
+	if(menu.up==1)
+	{	
+		OLED_ShowString(110,20,(unsigned char*)"<-",16,0);
+	}
+	else
+	{	
+		OLED_ShowString(110,35,(unsigned char*)"<-",16,0);
+	}
+}
 
 void clearSn(void)
 {
@@ -214,7 +261,7 @@ void workSet(Menu_table menu)
 /**
   * @breaf 곬땍Mac	0xA1
   */
-void Macbinding(void)
+void Macbinding01_0F(void)
 {
 	OLED_ShowString(0,0,(unsigned char*)"MAC:",16,1);
 	OLED_ShowString(0,15,(unsigned char*)"MAC:",16,1);
@@ -265,7 +312,7 @@ void Macbinding(void)
 		if(menu.next==0xB)
 			OLED_ShowString(32,45,Mac00C,16,0);
 	}
-	else if(menu.next>0xB && menu.next<=0xF)
+	else if(menu.next>0xB && menu.next<=0xE)
 	{
 		OLED_ShowString(32,0,Mac00D,16,1);
 		OLED_ShowString(32,15,Mac00E,16,1);
@@ -277,12 +324,81 @@ void Macbinding(void)
 			OLED_ShowString(32,15,Mac00E,16,0);
 		if(menu.next==0xE)
 			OLED_ShowString(32,30,Mac00F,16,0);
-		if(menu.next==0xF)
-			OLED_ShowString(32,45,Mac010,16,0);
 	}
 
 }
 
+/**
+  * @breaf 곬땍Mac	0xA2
+  */
+void Macbinding10_1F(void)
+{
+	OLED_ShowString(0,0,(unsigned char*)"MAC:",16,1);
+	OLED_ShowString(0,15,(unsigned char*)"MAC:",16,1);
+	OLED_ShowString(0,30,(unsigned char*)"MAC:",16,1);
+	OLED_ShowString(0,45,(unsigned char*)"MAC:",16,1);
+	if(menu.next<=3)
+	{
+		OLED_ShowString(32,0,Mac010,16,1);
+		OLED_ShowString(32,15,Mac011,16,1);
+		OLED_ShowString(32,30,Mac012,16,1);
+		OLED_ShowString(32,45,Mac013,16,1);
+		if(menu.next==0)
+			OLED_ShowString(32,0,Mac010,16,0);
+		if(menu.next==1)
+			OLED_ShowString(32,15,Mac011,16,0);
+		if(menu.next==2)
+			OLED_ShowString(32,30,Mac012,16,0);
+		if(menu.next==3)
+			OLED_ShowString(32,45,Mac013,16,0);
+	}
+	else if(menu.next>3 && menu.next<=7)
+	{
+		OLED_ShowString(32,0,Mac014,16,1);
+		OLED_ShowString(32,15,Mac015,16,1);
+		OLED_ShowString(32,30,Mac016,16,1);
+		OLED_ShowString(32,45,Mac017,16,1);
+		if(menu.next==4)
+			OLED_ShowString(32,0,Mac014,16,0);
+		if(menu.next==5)
+			OLED_ShowString(32,15,Mac015,16,0);
+		if(menu.next==6)
+			OLED_ShowString(32,30,Mac016,16,0);
+		if(menu.next==7)
+			OLED_ShowString(32,45,Mac017,16,0);
+	}
+	else if(menu.next>7 && menu.next<=0xB)
+	{
+		OLED_ShowString(32,0,Mac018,16,1);
+		OLED_ShowString(32,15,Mac019,16,1);
+		OLED_ShowString(32,30,Mac01A,16,1);
+		OLED_ShowString(32,45,Mac01B,16,1);
+		if(menu.next==8)
+			OLED_ShowString(32,0,Mac018,16,0);
+		if(menu.next==9)
+			OLED_ShowString(32,15,Mac019,16,0);
+		if(menu.next==0xA)
+			OLED_ShowString(32,30,Mac01A,16,0);
+		if(menu.next==0xB)
+			OLED_ShowString(32,45,Mac01B,16,0);
+	}
+	else if(menu.next>0xB && menu.next<=0xF)
+	{
+		OLED_ShowString(32,0,Mac01C,16,1);
+		OLED_ShowString(32,15,Mac01D,16,1);
+		OLED_ShowString(32,30,Mac01E,16,1);
+		OLED_ShowString(32,45,Mac01F,16,1);
+		if(menu.next==0xC)
+			OLED_ShowString(32,0,Mac01C,16,0);
+		if(menu.next==0xD)
+			OLED_ShowString(32,15,Mac01D,16,0);
+		if(menu.next==0xE)
+			OLED_ShowString(32,30,Mac01E,16,0);
+		if(menu.next==0xF)
+			OLED_ShowString(32,45,Mac01F,16,0);
+	}
+
+}
 
 /**
   * @breaf 꽉데썹충

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 298 - 993
Core/Src/key.c


+ 4 - 3
Core/Src/ml307a.c

@@ -1,5 +1,7 @@
 #include "ml307a.h"
 #include "mba32a.h"
+#include "usart.h"
+
 
 uint8_t u4length=0;
 uint8_t resetcount_4g=0;
@@ -22,9 +24,9 @@ void ML307A_Init(void)
 	printf("\t###02\t4G_init%d...\r\n",resetcount_4g); \
 	if(strstr((const char *)g_ML307A_8buf_Down, "+MATREADY") != NULL)
 	{
-		printf("#4G模块上电");
 		memset(g_ML307A_8buf_Down,0,15);
-		HAL_Delay(100);
+		printf("#4G模块上电");
+		HAL_Delay(150);
 		if(!sendCmd_4G("AT\r\n","OK",1,1))
 		{
 			ml307aFail=true;
@@ -79,7 +81,6 @@ uint8_t sendCmd_4G(char *pCmd, char *pRes, uint32_t timeOut, uint8_t sendNum)
         USART_SendString(&huart4, pCmd);
 		HAL_Delay(50);
 		printf("------->%s",g_ML307A_8buf_Down);
-		
         while(time--)
 		{
 			if(strstr((const char *)g_ML307A_8buf_Down, pRes) != NULL)             // 如果检索到关键词

+ 1 - 1
Core/Src/usart.c

@@ -645,7 +645,7 @@ void erase_flash(uint32_t ADDR_FLASH){                //
     HAL_FLASH_Unlock();  // ½âËøFlash
     HAL_StatusTypeDef status = HAL_FLASHEx_Erase(&erase_init, &page_error);  // Ö´ÐвÁ³ý²Ù×÷
     HAL_FLASH_Lock();  // ÉÏËøFlash
-
+	HAL_Delay(10);
 }
 
 void Write_Information(uint32_t addr, uint16_t newValue) {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3872 - 3934
Output/dtu.hex