From 05e75df4906f9cfa3e0a8061ab072bb9c8e24248 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 04 Apr 2023 23:35:46 +0800
Subject: [PATCH] Add system hangs when QC failed

---
 Production/ISKBoard_QCTester/Core/Src/main.c |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/Production/ISKBoard_QCTester/Core/Src/main.c b/Production/ISKBoard_QCTester/Core/Src/main.c
index d02d1dd..cbd65e1 100644
--- a/Production/ISKBoard_QCTester/Core/Src/main.c
+++ b/Production/ISKBoard_QCTester/Core/Src/main.c
@@ -81,6 +81,7 @@
 }
 
 
+void system_hanges(void);
 int test_beep(void);
 int test_relay(void);
 int test_led(void);
@@ -136,7 +137,7 @@
   MX_CAN1_Init();
   /* USER CODE BEGIN 2 */
 
-  printf("Welcome to ISKBoard v1.0\r\n");
+  printf("Welcome to ISKBoard v1.0, compiled on %s %s\r\n", __DATE__, __TIME__);
 
   OLED_Init();
   ws2812b_init();
@@ -222,6 +223,14 @@
 }
 
 /* USER CODE BEGIN 4 */
+
+void system_hanges(void)
+{
+	while(1)
+	{
+		blink_led(LedRed, 500);
+	}
+}
 
 int test_beep(void)
 {
@@ -442,7 +451,10 @@
 
 cleanup:
 	if( rv )
+	{
 		oled_show("MikroBUS [FAIL]");
+		system_hanges();
+	}
 	else
 		oled_show("MikroBUS [OK]");
 
@@ -507,14 +519,25 @@
 	    }
 
 	    printf("ESP32 firmware version:\r\n%s\r\n", version);
+
+	    if( !strstr(version, "1.7.1.0") )
+	    {
+	    	printf("ERROR: ESP32 firmware not matched, please upgrade it first!\r\n");
+	    	rv = -2;
+	    	goto cleanup;
+	    }
 	    init = 1;
 	}
 
 	rv = send_atcmd_check_ok(comport, "AT", 500);
 
+cleanup:
 	printf("WiFi module AT test       [%s]\r\n", rv?"FAIL":"OKAY");
 	snprintf(oledstr, sizeof(oledstr), "WiFi: %s", rv?"FAIL":"OK");
 	oled_show(oledstr);
+
+	if( rv )
+		system_hanges();
 
 	printf("\r\n");
 	return 0;
@@ -547,6 +570,7 @@
     {
     	printf("DS18B20 test              [FAIL]\r\n");
       	oled_show("DS18B20: [FAIL]");
+      	system_hanges();
     	return -1;
     }
 
@@ -570,6 +594,7 @@
 	{
 		printf("SHT20 test                [FAIL]\r\n");
       	oled_show("SHT20: [FAIL]");
+      	system_hanges();
     	return -1;
 
 	}
@@ -595,7 +620,12 @@
 	rtc_time_t       tm;
 
 	if( get_rtc_time(&tm) < 0 )
+	{
+		printf("RTC ISL1208 test          [FAIL]\r\n");
+      	oled_show("RTC: [FAIL]");
+      	system_hanges();
 		return -1;
+	}
 
 	printf("RTC: %04d-%02d-%02d %02d:%02d:%02d %s\r\n", tm.tm_year, tm.tm_mon, tm.tm_mday,
 		tm.tm_hour, tm.tm_min, tm.tm_sec, weekday[tm.tm_wday]);
@@ -620,6 +650,7 @@
 	{
 		printf("USART3 RS232 test         [FAIL]\r\n");
 		oled_show("RS232  [FAIL]");
+		system_hanges();
 	}
 	else
 	{
@@ -638,6 +669,7 @@
 	{
 		printf("CAN test                  [FAIL]\r\n");
 		oled_show("CAN  [FAIL]");
+		system_hanges();
 	}
 	else
 	{
@@ -656,6 +688,7 @@
 	{
 		printf("RS485 test                [FAIL]\r\n");
 		oled_show("RS485  [FAIL]");
+		system_hanges();
 	}
 	else
 	{

--
Gitblit v1.9.1