优化蓝牙产测,使能按键双击检测,添加efuse读写测试接口 268/1 268/head 269/target/1
authorpenglei <1624952103@qq.com>
Wed, 12 Jun 2024 12:43:29 +0000 (20:43 +0800)
committerpenglei <1624952103@qq.com>
Wed, 12 Jun 2024 12:43:29 +0000 (20:43 +0800)
code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c
code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h
code/sdk/drivers/peripheral/cywee/src/custom_factory_core.c
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h
code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c

index fafe602..0beb7e9 100644 (file)
@@ -59,6 +59,7 @@ typedef struct
 \r
 #pragma pack()\r
 \r
+static int factorytest_mode_flag = 0;\r
 \r
 ble_aging_t aging_t;\r
 \r
@@ -122,6 +123,68 @@ errcode_t factorytest_protocol_replymsg(uint8_t mode, uint8_t submode,uint8_t te
     return ret;\r
 }\r
 \r
+static void pwr_button_callback_press(void)\r
+{\r
+    uint8_t send_data = 1;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x02,\r
+            &send_data,\r
+            1);\r
+}\r
+static void pwr_button_callback_click_2(void)\r
+{\r
+    uint8_t send_data = 3;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x02,\r
+            &send_data,\r
+            1);\r
+}\r
+static void pwr_button_callback_long_press_2s(void)\r
+{\r
+    uint8_t send_data = 2;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x02,\r
+            &send_data,\r
+            1);\r
+}\r
+\r
+static void func_button_callback_press(void)\r
+{\r
+    uint8_t send_data = 1;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x03,\r
+            &send_data,\r
+            1);\r
+}\r
+static void func_button_callback_click_2(void)\r
+{\r
+    uint8_t send_data = 3;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x03,\r
+            &send_data,\r
+            1);\r
+}\r
+static void func_button_callback_long_press_2s(void)\r
+{\r
+    uint8_t send_data = 2;\r
+\r
+    factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+            BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+            0x03,\r
+            &send_data,\r
+            1);\r
+}\r
+\r
 void ble_vibrator_check_timer_callback(void)\r
 {\r
     uapi_vibrationModeSet(3);\r
@@ -390,6 +453,33 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t
     printf("submode 0x%02X testitem 0x%02X\r\n",submode,testitem);\r
     switch(submode)\r
     {\r
+        case BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE:\r
+            if (testitem == 0x01)\r
+            {\r
+    \r
+                uint8_t send_data=0;\r
+\r
+                factorytest_mode_flag = 1;\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
+                        BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE,\r
+                        0x01,\r
+                        send_data,\r
+                        1);\r
+            } else if (testitem == 0x02)\r
+            {\r
+    \r
+                uint8_t send_data=0;\r
+\r
+                factorytest_mode_flag = 0;\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
+                        BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE,\r
+                        0x02,\r
+                        send_data,\r
+                        1);\r
+            }\r
+            break;\r
         case BLE_TEST_CMD_COMMON_SUB_MODE_SYSTEM_VERSION:\r
             if (testitem == 0x01)\r
             {\r
@@ -670,7 +760,46 @@ void factorytest_protocol_soft_test_decode(uint8_t submode,uint8_t testitem,uint
             break;\r
 \r
         case BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY:\r
-            //按键测试(未完成)\r
+            //清除按键测试结果\r
+            if(testitem == 0x01)\r
+            {\r
+                uint8_t send_data = 0;\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+                        0x01,\r
+                        &send_data,\r
+                        1);\r
+            } else if(testitem == 0x02)\r
+            {\r
+                //查询电源键测试结果\r
+                uint8_t send_data = 0;\r
+\r
+                uapi_button_register_event_cb(pwr_button_callback_press, 1);\r
+                uapi_button_register_event_cb(pwr_button_callback_click_2, 3);\r
+                uapi_button_register_event_cb(pwr_button_callback_long_press_2s, 5);\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+                        0x02,\r
+                        &send_data,\r
+                        1);\r
+            } else if(testitem == 0x03)\r
+            {\r
+                //查询功能键测试结果\r
+                uint8_t send_data = 0;\r
+\r
+                uapi_button_register_event_cb(func_button_callback_press, 24);\r
+                uapi_button_register_event_cb(func_button_callback_click_2, 26);\r
+                uapi_button_register_event_cb(func_button_callback_long_press_2s, 28);\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+                        BLE_TEST_CMD_SOFT_TEST_SUB_MODE_KEY,\r
+                        0x03,\r
+                        &send_data,\r
+                        1);\r
+            }\r
+\r
             break;\r
 \r
         case BLE_TEST_CMD_SOFT_TEST_SUB_MODE_RTC:\r
@@ -1516,6 +1645,8 @@ errcode_t factorytest_protocol_decode(uint8_t *buf, uint16_t event_size)
 \r
             //if( crc16 == crc16_2) //校验通过,开始正式解析\r
             {\r
+                if(factorytest_mode_flag == 0 && header.submod != BLE_TEST_CMD_COMMON_SUB_MODE_SWITCH_MODE)\r
+                    return ERRCODE_FAIL;\r
                 printf("mode %d\n",header.mode);\r
                 switch(header.mode)\r
                 {\r
index 39fe782..24d6e2b 100755 (executable)
 #define CONFIG_PM_SLEEP_INT_EN              NO
 
 // Double-click the key
-#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK  NO
+#define CONFIG_SUPPORT_BUTTON_DOUBLE_CLICK  YES
 
 // LCD VCI_EN
 #define VCI_LCD_GPIO                        S_AGPIO_L24
index 915139a..d24dab3 100644 (file)
@@ -45,7 +45,7 @@ void reburn_log_printf(const char* fmt, ...) {
 static int is_sec_empty(uint8_t* buf, uint32_t len) {\r
     for (int i = 0 ; i < len ; i++) {\r
         if (buf[i] != m_var.sec_empty_value) {\r
-            reburn_log_printf("is_sec_empty(): block %d not empty(0x%02x)\n", i, buf[i]);\r
+            printf("is_sec_empty(): block %d not empty(0x%02x)\n", i, buf[i]);\r
             return 0;\r
         }\r
     }\r
@@ -60,7 +60,7 @@ static void dump_sec(uint8_t* buf, uint32_t len) {
         return;\r
 \r
     while (remainBytes >= 16) {\r
-        reburn_log_printf("%08x  | %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", offset,\r
+        printf("%08x  | %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", offset,\r
             *(buf + (offset) + 0 ), *(buf + (offset) + 1 ), *(buf + (offset) + 2 ), *(buf + (offset) + 3 ),\r
             *(buf + (offset) + 4 ), *(buf + (offset) + 5 ), *(buf + (offset) + 6 ), *(buf + (offset) + 7 ),\r
             *(buf + (offset) + 8 ), *(buf + (offset) + 9 ), *(buf + (offset) + 10), *(buf + (offset) + 11),\r
index 630eea7..25a108e 100644 (file)
@@ -2184,4 +2184,17 @@ void uapi_check_spk(bool isopen)
     #ifdef FD230
         check_spk(isopen);
     #endif
+}
+
+void uapi_efuse_test(void)
+{
+    uint8_t writedata[8] = {1,2,3,4,5,6,7,8};
+    uint8_t readdata[8] = {0};
+
+    uapi_efuse_write_buffer(0x170, writedata, 8);
+
+    uapi_efuse_read_buffer(readdata, 0x170, 8);
+    for(int i = 0; i < 8; i++)
+        PRINT("readdata[%d] : %d \r\n",i,readdata[i]);
+
 }
\ No newline at end of file
index 574d8db..1b654cb 100644 (file)
@@ -200,6 +200,7 @@ void uapi_ppg_get_id(uint8_t *chip_id);
 
 void uapi_microhone_switch(bool isopen);
 void uapi_check_spk(bool isopen);
+void uapi_efuse_test(void);
 
 #include "custom_utilscpp.h"
 
index 851b4b1..f1c4963 100644 (file)
@@ -592,6 +592,16 @@ static uint32_t custom_test_sntp(uint8_t *para, uint32_t paraLen, char *strCommo
     return ERRCODE_SUCC;
 }
 
+static uint32_t custom_uapi_efuse_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+
+    UNUSED(strCommonCmd);
+
+    uapi_efuse_test();
+
+    return ERRCODE_SUCC;
+}
+
 static const at_cmd_table_t g_custom_utils_cmd[] = {
     { (char *)"AT^CUSTOM_SN",      custom_utils_setsn, (char *)"123456789ABCDEF2345678" },
     { (char *)"AT^CUSTOM_SN_REQ",  custom_utils_getsn, (char *)" " },
@@ -638,7 +648,7 @@ static const at_cmd_table_t g_custom_utils_cmd[] = {
     { (char *)"AT^TIMESYNC",      custom_test_time_synct, (char *)" " },
     { (char *)"AT^24HOUR",      custom_test_time_showtype, (char *)" " },
 
-    
+    { (char *)"AT^EFUSETEST",      custom_uapi_efuse_test, (char *)" " },
 
 };